[LU-12413] Lustre don't able to start if one interface down. Created: 10/Jun/19  Updated: 10/Jun/19  Resolved: 10/Jun/19

Status: Resolved
Project: Lustre
Component/s: None
Affects Version/s: Lustre 2.13.0
Fix Version/s: None

Type: Bug Priority: Blocker
Reporter: Alexey Lyashkov Assignee: WC Triage
Resolution: Duplicate Votes: 0
Labels: None

Issue Links:
Duplicate
duplicates LU-12381 o2iblnd uses wrong IB interface Resolved
Severity: 3
Rank (Obsolete): 9223372036854775807

 Description   

Landing upstream code related to interface scan broke a starting lustre in case one or more interfaces in down.

[ 2969.530212] LNetError: 15492:0:(o2iblnd.c:2892:kiblnd_create_dev()) Can’t query IPoIB interface eth2: it’s down

attached fix works for me.

diff --git a/lnet/klnds/o2iblnd/o2iblnd.c b/lnet/klnds/o2iblnd/o2iblnd.c
index 6da280e..f831a46 100644
--- a/lnet/klnds/o2iblnd/o2iblnd.c
+++ b/lnet/klnds/o2iblnd/o2iblnd.c
@@ -2888,16 +2888,16 @@ kiblnd_create_dev(char *ifname)

                flags = dev_get_flags(netdev);
                if (!(flags & IFF_UP)) {
-                       CERROR("Can't query IPoIB interface %s: it's down\n",
+                       CWARN("Can't query IPoIB interface %s: it's down\n",
                               netdev->name);
-                       goto unlock;
+                       continue;
                }

                in_dev = __in_dev_get_rtnl(netdev);
                if (!in_dev) {
                        CWARN("Interface %s has no IPv4 status.\n",
                              netdev->name);
-                       goto unlock;
+                       continue;
                }

                for_ifa(in_dev)
@@ -2916,6 +2916,7 @@ kiblnd_create_dev(char *ifname)
                        }
                endfor_ifa(in_dev);
        }
+unlock:
        rtnl_unlock();

        if (!dev) {
@@ -2938,8 +2939,7 @@ kiblnd_create_dev(char *ifname)

        list_add_tail(&dev->ibd_list, &kiblnd_data.kib_devs);
        return dev;
-unlock:
-       rtnl_unlock();
+
 free_dev:
        LIBCFS_FREE(dev, sizeof(*dev));
        return NULL;


 Comments   
Comment by James A Simmons [ 10/Jun/19 ]

This is duplicate of LU-12381.  https://review.whamcloud.com/#/c/35098

Generated at Sat Feb 10 02:52:22 UTC 2024 using Jira 9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c.