Whamcloud - gitweb
LU-13950 lnet: do not crash if lnet_sock_getaddr returns error
authorArtem Blagodarenko <artem.blagodarenko@hpe.com>
Tue, 25 Aug 2020 10:01:11 +0000 (06:01 -0400)
committerAndreas Dilger <adilger@whamcloud.com>
Fri, 9 Sep 2022 01:39:30 +0000 (01:39 +0000)
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 <artem.blagodarenko@hpe.com>
Reviewed-on: https://review.whamcloud.com/48443
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Artem Blagodarenko <ablagodarenko@ddn.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
lnet/klnds/socklnd/socklnd.c
lnet/lnet/acceptor.c

index 91b19fd..78272ba 100644 (file)
@@ -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) {
index 2fb84c8..db6cb99 100644 (file)
@@ -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)) {