From 8ae2d9fac2ab3711f67283a3b49dfbf9b7809a57 Mon Sep 17 00:00:00 2001 From: Artem Blagodarenko Date: Tue, 25 Aug 2020 06:01:11 -0400 Subject: [PATCH] LU-13950 lnet: do not crash if lnet_sock_getaddr returns error Some issues with network lead to panic in ksocknal_accept rc = lnet_sock_getaddr(sock, true, &peer_ip, &peer_port); LASSERT(rc == 0); /* we succeeded before */ Let's pass this error to the caller. Lustre-change: https://review.whamcloud.com/39834 Lustre-commit: 48a9ea82eb30bbbf66cce527c1205d13fbd4eb58 Test-Parameters: trivial testlist=sanity-lnet Change-Id: I34d43c19b4e75422db50e7abb02cac3510882b0d hpe-bug-id: LUS-9256 Signed-off-by: Artem Blagodarenko Reviewed-on: https://review.whamcloud.com/48443 Tested-by: jenkins Tested-by: Maloo Reviewed-by: Artem Blagodarenko Reviewed-by: Andreas Dilger --- lnet/klnds/socklnd/socklnd.c | 5 ++++- lnet/lnet/acceptor.c | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/lnet/klnds/socklnd/socklnd.c b/lnet/klnds/socklnd/socklnd.c index 91b19fd..78272ba 100644 --- a/lnet/klnds/socklnd/socklnd.c +++ b/lnet/klnds/socklnd/socklnd.c @@ -784,7 +784,10 @@ ksocknal_accept(struct lnet_ni *ni, struct socket *sock) int peer_port; rc = lnet_sock_getaddr(sock, true, &peer_ip, &peer_port); - LASSERT(rc == 0); /* we succeeded before */ + if (rc != 0) { + CERROR("Can't determine new connection's address\n"); + return rc; + } LIBCFS_ALLOC(cr, sizeof(*cr)); if (cr == NULL) { diff --git a/lnet/lnet/acceptor.c b/lnet/lnet/acceptor.c index 2fb84c8..db6cb99 100644 --- a/lnet/lnet/acceptor.c +++ b/lnet/lnet/acceptor.c @@ -219,7 +219,10 @@ lnet_accept(struct socket *sock, __u32 magic) LASSERT(sizeof(cr) <= 16); /* not too big for the stack */ rc = lnet_sock_getaddr(sock, true, &peer_ip, &peer_port); - LASSERT(rc == 0); /* we succeeded before */ + if (rc != 0) { + CERROR("Can't determine new connection's address\n"); + return rc; + } if (!lnet_accept_magic(magic, LNET_PROTO_ACCEPTOR_MAGIC)) { -- 1.8.3.1