Whamcloud - gitweb
LU-18899 o2iblnd: handle RDMA_CM_EVENT_ESTABLISHED gracefully 11/58711/2
authorSerguei Smirnov <ssmirnov@whamcloud.com>
Mon, 7 Apr 2025 23:20:11 +0000 (16:20 -0700)
committerOleg Drokin <green@whamcloud.com>
Wed, 16 Apr 2025 20:45:52 +0000 (20:45 +0000)
Modify kiblnd_cm_callback() to handle RDMA_CM_EVENT_ESTABLISHED
gracefully: report an error with relevant details and ignore
the event rather than just cause a crash with LBUG
if the connection state is not RDMA_CM_EVENT_ESTABLISHED or
IBLND_CONN_PASSIVE_WAIT as expected.

Test-Parameters: trivial testlist=sanity-lnet
Signed-off-by: Serguei Smirnov <ssmirnov@whamcloud.com>
Change-Id: I8ddde6786eac99699665a71eb0587165e6552ea6
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/58711
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Cyril Bordage <cbordage@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
lnet/klnds/o2iblnd/o2iblnd_cb.c

index 09c5e70..b362c0d 100644 (file)
@@ -3499,7 +3499,10 @@ kiblnd_cm_callback(struct rdma_cm_id *cmid, struct rdma_cm_event *event)
                conn = cmid->context;
                switch (conn->ibc_state) {
                default:
-                       LBUG();
+                       CERROR("%s: ESTABLISHED (ignored): %d cm_id %p conn %p ibc_state: %d\n",
+                               libcfs_nidstr(&conn->ibc_peer->ibp_nid),
+                               event->status, cmid, conn, conn->ibc_state);
+                       return 0;
 
                case IBLND_CONN_PASSIVE_WAIT:
                        CDEBUG(D_NET, "ESTABLISHED (passive): %s cm_id %p conn %p\n",