4 ms·
Ah yes: - An OS would write the "please wake me up on the next interrupt" to a hardware register, then a shadow RAM location. Interrupt happened between the tw
by kabdib 11y ago
Ah yes:
- An OS would write the "please wake me up on the next interrupt" to a hardware register, then a shadow RAM location. Interrupt happened between the two writes, so the task scheduler wrote the wrong value to the register and stopped. Finding the problem: Two weeks. Fixing the problem: Swapped two instructions and rebuilt. Write-only registers are evil badness.
- USB controller with a temperature problem: It would also work first thing in the morning, and after lunch. After maybe four days of correlating this the "Aha!" was visible on my face at lunch and I left the table rather abruptly. The initial fix was a bag of ice on the chip. Real fix took several weeks of increasingly loud conversations with the chip vendor.
- Cache on a disk drive had a bad bit, occasionally corrupting file contents or (even more fun) directory structures. Memo: All the ECC in the world won't help you if your I/O system is flappin' in the breeze. End-to-end checksum anything you truly care about (in fact, we caught this one with a Merkle tree).
Never mind the heap corruptions by code you don't even have source for, the async callbacks that fire long after you've nuked the objects and assumed everything was dead, the DMAs that came from outer space because you set them up hours ago and they finally fired, wiping out something random every time, the incoherent cache coherency systems, the serial ports that drop bytes if you send too fast . . . it's amazing anything sufficiently complex actually works.
- tonyarkles 11y agoI think I would love your job. That's the kind of stuff I love chasing down.
- soft_dev_person 11y agoThank you for being. Both of you.
- jovdg 11y agoAgreed. Also, I usually blame the hardware quite fast... Have seen enough faulty gbics, or wrongly plugged cables. But then that's what you see as a sysadmin, not as a (game) developer...
- digi_owl 11y agoYep. If it was one thing a networking (the wires and cards kind) teacher drilled into me was to check wiring first and then work my way up the stack.
- digi_owl 11y agoWar stories from the server rack?
- kabdib 11y agoNo, these were some embedded systems (mostly in consumer products) that I've worked on over the years. I've been doing server racks for a couple of years, kind of as a hobby. Don't get me started about server in racks :-)