[Linux-cluster] [PATCH V2] dumping the unknown address when got a connect from non cluster node
Masatake YAMATO
yamato at redhat.com
Mon Jul 4 03:25:51 UTC 2011
>> Another patch useful for debugging cluster.conf and network configuration.
>>
>> This is useful when you build a cluster with nodes connected each others with
>> a software bridge(virbrN). If you install wrong iptabels configuration, dlm
>> cannot establish connections. You will just see
>>
>> dlm: connect from non cluster node
>>
>> in demsg. It is difficult to understand what happens quickly.
>> This patch dumps the address of the non cluster node.
>>
>>
>> Signed-off-by: Masatake YAMATO <yamato at redhat.com>
>>
>> diff --git a/fs/dlm/lowcomms.c b/fs/dlm/lowcomms.c
>> index bffa1e7..90c1c2e 100644
>> --- a/fs/dlm/lowcomms.c
>> +++ b/fs/dlm/lowcomms.c
>> @@ -748,7 +748,12 @@ static int tcp_accept_from_sock(struct connection *con)
>> /* Get the new node's NODEID */
>> make_sockaddr(&peeraddr, 0, &len);
>> if (dlm_addr_to_nodeid(&peeraddr, &nodeid)) {
>> + int i;
>> + unsigned char *b=(unsigned char *)&peeraddr;
>> log_print("connect from non cluster node");
>> + for (i=0; i<sizeof(struct sockaddr_storage);i++)
>> + printk("%02x ", b[i]);
>> + printk("\n");
>> sock_release(newsock);
>> mutex_unlock(&con->sock_mutex);
>> return -1;
>
> Could you use print_hex_dump_bytes instead?
> Dave
Here is the revised version.
This patch is useful when you build a cluster with nodes connected
each others with a software bridge(virbrN). If you install wrong
iptabels configuration, dlm cannot establish connections. You will
just see
dlm: connect from non cluster node
in demsg. It is difficult to understand what happens quickly. This
patch dumps the address of the non cluster node with print_hex_dump_bytes
function:
dlm: connect from non cluster node
ss: 02 00 00 00 c0 a8 97 01 00 00 00 00 00 00 00 00 ................
....
Using print_hex_dump_bytes is sugested by David Teigland.
Signed-off-by: Masatake YAMATO <yamato at redhat.com>
diff --git a/fs/dlm/lowcomms.c b/fs/dlm/lowcomms.c
index bffa1e7..a762e9f 100644
--- a/fs/dlm/lowcomms.c
+++ b/fs/dlm/lowcomms.c
@@ -512,12 +512,10 @@ static void process_sctp_notification(struct connection *con,
}
make_sockaddr(&prim.ssp_addr, 0, &addr_len);
if (dlm_addr_to_nodeid(&prim.ssp_addr, &nodeid)) {
- int i;
unsigned char *b=(unsigned char *)&prim.ssp_addr;
log_print("reject connect from unknown addr");
- for (i=0; i<sizeof(struct sockaddr_storage);i++)
- printk("%02x ", b[i]);
- printk("\n");
+ print_hex_dump_bytes("ss: ", DUMP_PREFIX_NONE,
+ b, sizeof(struct sockaddr_storage));
sctp_send_shutdown(prim.ssp_assoc_id);
return;
}
@@ -748,7 +746,10 @@ static int tcp_accept_from_sock(struct connection *con)
/* Get the new node's NODEID */
make_sockaddr(&peeraddr, 0, &len);
if (dlm_addr_to_nodeid(&peeraddr, &nodeid)) {
+ unsigned char *b=(unsigned char *)&peeraddr;
log_print("connect from non cluster node");
+ print_hex_dump_bytes("ss: ", DUMP_PREFIX_NONE,
+ b, sizeof(struct sockaddr_storage));
sock_release(newsock);
mutex_unlock(&con->sock_mutex);
return -1;
More information about the Linux-cluster
mailing list