-
Bug
-
Resolution: Fixed
-
Medium
-
None
-
None
-
9223372036854775807
sanity-lnet test_238 fails with:
Expect 'Multi-Rail: false', found False
lnetctl renders the Multi-Rail field from two paths that disagree on case:
- Netlink: liblnetconfig_netlink.c:708, NLA_FLAG -> "true"/"false"
- legacy cYAML: liblnetconfig.c:4204 -> "True"/"False"
jt_show_peer() (lnetctl.c:6076) falls back to the legacy path on -EOPNOTSUPP, i.e. whenever the
kernel lacks the LNet genl peer command. That command landed in 8a0fdfa0b2 (LU-10391, 2023-08-07),
so b2_16 and master have it and b2_15 does not.
test_238 reads the flag from ${ROUTERS[0]} and compares it exactly against lowercase 'false', so it
fails whenever the router node runs < 2.16. In the run below the router onyx-159vm113 was running
Lustre 2.15.8.
sanity-lnet.sh:3055 parses the same field and compares against 'False' instead, so the file already
disagrees with itself; that site fails open (it skips wrongly) which is why only 238 is visible.
Pre-existing: test_238 was added by bb6237483d (LU-19827, 2025-11-19). It passes in most configs
because whether a <2.16 node lands in the router slot is a node-allocation lottery.
Suggested fix: compare case-insensitively (${mr,,}) at both sites in lustre/tests/sanity-lnet.sh.
Example: https://testing.whamcloud.com/test_sets/a65cae94-5d3b-4b85-b01e-4643435cdfb4