You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 916ae2d
Browse filesBrowse the repository at this point in the historyBrowse files
99-mellanox: fix array skew and abort on degraded NIC
Three independent sysfs globs (infiniband_verbs, infiniband,
infiniband_mad) built the parallel arrays assuming equal counts and
aligned ordering. When a PCI function exposed a verbs device but no
infiniband/ class entry (BlueField DPU, SF/SR-IOV representor, down
port), ifaces[] ended up shorter than devices[]. The mount loop only
range-checked against ${#devices[@]}, so it dereferenced an unset
ifaces[id] and, under set -euo pipefail, aborted the hook:
/etc/enroot/hooks.d/99-mellanox.sh: line 88: ifaces[id]: unbound variable
[ERROR] /etc/enroot/hooks.d/99-mellanox.sh exited with return code 1
This killed every container launch on affected nodes. Observed breaking
NCCL alltoall_perf_mpi, all_gather_perf_mpi, all_reduce_perf_mpi, and
reduce_scatter_perf_mpi.
Fix: enumerate per PCI function anchored on infiniband_verbs and resolve
the iface and management nodes from the same <bdf> directory, so the
arrays are always index-aligned regardless of which sysfs sub-entries
are present. A missing iface is now an explicit common::err (degraded
NIC detected) rather than an unbound-variable crash, preserving the
job-blocking behavior with a clear message. umad/issm entries are
guarded with [ -n ] since their absence is less critical.
Signed-off-by: Eric Lordahl <elordahl@nvidia.com>
0 commit comments