[Cluster-devel] [PATCH] dlm: prompt the user SCTP is experimental
Steven Whitehouse
swhiteho at redhat.com
Mon Apr 9 09:02:50 UTC 2018
Hi,
On 09/04/18 06:02, Gang He wrote:
> Hello David,
>
> If the user sets "protocol=tcp" in the configuration file /etc/dlm/dlm.conf under two-rings cluster environment,
> DLM kernel module will not work with the below error message,
> [ 43.696924] DLM installed
> [ 149.552039] ocfs2: Registered cluster interface user
> [ 149.559579] dlm: TCP protocol can't handle multi-homed hosts, try SCTP <<== here, failed
> [ 149.559589] dlm: cannot start dlm lowcomms -22
> [ 149.559612] (mount.ocfs2,2593,3):ocfs2_dlm_init:3120 ERROR: status = -22
> [ 149.559629] (mount.ocfs2,2593,3):ocfs2_mount_volume:1845 ERROR: status = -22
>
> Then, could we modify the code, let this case still work via only using one ring address? or the code is written by purpose.
> in lowcomms.c
> 1358 static int tcp_listen_for_all(void)
> 1359 {
> 1360 struct socket *sock = NULL;
> 1361 struct connection *con = nodeid2con(0, GFP_NOFS);
> 1362 int result = -EINVAL;
> 1363
> 1364 if (!con)
> 1365 return -ENOMEM;
> 1366
> 1367 /* We don't support multi-homed hosts */
> 1368 if (dlm_local_addr[1] != NULL) { <<== here, could we get ride of this limitation?
> 1369 log_print("TCP protocol can't handle multi-homed hosts, "
> 1370 "try SCTP");
> 1371 return -EINVAL;
> 1372 }
> 1373
> 1374 log_print("Using TCP for communications");
> 1375
> 1376 sock = tcp_create_listen_sock(con, dlm_local_addr[0]);
> 1377 if (sock) {
> 1378 add_sock(sock, con);
> 1379 result = 0;
> 1380 }
> 1381 else {
> 1382 result = -EADDRINUSE;
> 1383 }
>
>
> Thanks
> Gang
>
There is already a patch set to allow multi-homing for TCP. Mark and
Dave can comment on the current status and how far from merging it
currently is,
Steve.
More information about the Cluster-devel
mailing list