Three X540 NICs die in one week, three different reasons
- date
- 20260907 to 20260910
- what happened
- fw2's add-in X540-AT2 dropped carrier on both ports twice and was replaced after a third drop. di5's onboard X540 port silently negotiated 100 Mb instead of 10 Gb while still reporting the link as up. ceph9's riser, carrying four onboard X540s, ran its NIC temperature sensor 15 to 20 degrees C hotter than every identical sibling chassis and was replaced whole.
- what it cost
- Three physical swaps inside one week, and on di5 a bond that ran at half its intended bandwidth with no redundancy for an unknown period.
- what changed
- A bond showing two different LACP aggregator IDs became its own fleet-wide alert, written the day the fault was found. A documented per-host fan-floor exception is now allowed where one chassis runs hot on otherwise-identical hardware.
- the check now
- Alert on two different aggregator IDs on a bond rather than on per-port link state, and compare a NIC's temperature against its siblings on identical hardware and fan duty, not against one fleet-wide threshold.
The same NIC chip failed on three different hosts inside four days, and treating that as one story would have been a mistake. It was handling damage on the first, a silent speed downgrade on the second, and a thermal design problem on the third.
The firewall’s add-in card lost carrier on both ports twice, once after physical handling and once 360 seconds after an otherwise untouched reboot, and was replaced after a third drop. The last one is the clean case: nobody touched it, and it still let go.
The middle case is the instructive one. A port that should have run at 10 Gb negotiated 100 Mb and reported itself up the entire time. Nothing watching link state could see anything wrong, because nothing was wrong with the link, only with its speed. What caught it was Linux’s own 802.3ad bonding refusing to aggregate two slaves running at different speeds, which showed up as two different LACP aggregator IDs on one bond. Without that, a host quietly running at half bandwidth and zero redundancy would have kept working, just more slowly, indefinitely.
The third was thermal. One chassis’s riser ran its NIC sensor 15 to 20 degrees C hotter than identical siblings under the same fan duty. A heatsink re-pad did not fix it and the riser was replaced.
The lesson is not about X540s. It is that “link up” is a much weaker claim than it sounds, and that identical symptoms across nominally identical hardware are not evidence of one shared cause.
Source: node0 lessons v0.1, lesson 1.7. Sanitized: checklist v0.1, 20260921; MACs, switch port identifiers; voice pass 20260921. Part of oznog.com/node0.
