From: Artem Blagodarenko Date: Tue, 25 Aug 2020 10:01:11 +0000 (-0400) Subject: LU-13950 lnet: do not crash if lnet_sock_getaddr returns error X-Git-Tag: 2.14.52~31 X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=commitdiff_plain;h=48a9ea82eb30bbbf66cce527c1205d13fbd4eb58 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. Change-Id: I34d43c19b4e75422db50e7abb02cac3510882b0d hpe-bug-id: LUS-9256 Signed-off-by: Artem Blagodarenko Reviewed-on: https://es-gerrit.dev.cray.com/157753 Reviewed-by: Andriy Skulysh Reviewed-by: Alexander Zarochentsev Tested-by: Alexander Lezhoev Reviewed-by: Chris Horn Reviewed-on: https://review.whamcloud.com/39834 Tested-by: jenkins Reviewed-by: Chris Horn Tested-by: Maloo Reviewed-by: Neil Brown Reviewed-by: Oleg Drokin --- diff --git a/lnet/klnds/socklnd/socklnd.c b/lnet/klnds/socklnd/socklnd.c index 35d12d9..e9053fb 100644 --- a/lnet/klnds/socklnd/socklnd.c +++ b/lnet/klnds/socklnd/socklnd.c @@ -743,7 +743,10 @@ ksocknal_accept(struct lnet_ni *ni, struct socket *sock) struct sockaddr_storage peer; rc = lnet_sock_getaddr(sock, true, &peer); - 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 aa8d2e3..f287ae6 100644 --- a/lnet/lnet/acceptor.c +++ b/lnet/lnet/acceptor.c @@ -205,7 +205,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); - 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)) {