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.

Reply via email to