The hard drives were hiding their worst counters, and a reboot's letter shuffle paged seven false alarms
- date
- 20260910
- what happened
- A fleet-wide survey on 20260910 found that the standard SMART attribute table has no field for read-retry and uncorrectable-read counts on the site's dominant hard drive model; those numbers live only in a separate device-statistics log nothing had been reading. Separately, growth alerts had been keyed to a drive's operating-system device path rather than its identity, so unrelated reboots that reshuffled the paths paged seven false alarms, three of them critical.
- what it cost
- A blind spot on the fleet's most common drive model for an unknown period, plus a burst of false critical pages that could have trained the reader to distrust the whole disk-health channel.
- what changed
- A dedicated collector for the hidden device-statistics log, and every growth alert rewritten to key on the drive's own permanent identity and to compare against a retained high-water mark rather than an absolute level.
- the check now
- A coverage alert fires if any drive that should report the hidden log stops doing so. Growth alerts compare an identity-keyed high-water mark against its own value 24 hours earlier, never an absolute count.
Two unrelated mistakes compounded into one class of failure on the same day. The first: on the fleet’s most common hard drive model, the SMART attribute table that everyone reads simply does not carry a field for read retries or uncorrectable reads. Those counters exist, in a separate ATA device-statistics log that most tooling never asks for, and one drive in the fleet turned out to be carrying hundreds of thousands of hidden read retries behind an attribute table that looked spotless. The data had always been there; nothing had ever queried it.
The second: the growth-based rules meant to catch a counter climbing were keyed to the drive’s operating-system device path. A set of unrelated reboots reshuffled which path mapped to which physical drive. Every rule then compared one drive’s counter to a different drive’s history, and seven alarms fired for drives whose condition had not changed at all.
The fix to the first was to collect more data. The fix to the second is a design principle worth generalising well past disks. Whenever a fleet alert can be triggered by identity churn rather than a genuine change of state, key it on the object’s own permanent identity, not on a name the operating system is free to reassign at boot. Then compare against a value that only ever ratchets upward. A transient dip, a letter swap, a collector glitch, or a momentary zero reading can then never read as a recovery, and a transient recovery can never manufacture a false page. Only sustained growth against a retained high-water mark is left to alert on, which is the only thing you wanted to know about in the first place.
Source: node0 lessons v0.1, lesson 2.8. Sanitized: checklist v0.1, 20260921; drive model, serials, counts; voice pass 20260921. Part of oznog.com/node0.
