The best debugging story I've ever heard (2010)
patrickthomson.tumblr.com
patrickthomson.tumblr.com
He took a stick and ran it down one row of cards in the IO processor, nothing happened, he ran it down the next row, bang! hours later we're up again, he runs it down half the row, bang! binary search with stick ensues, eventually he starts pulling cards one comes out and 3 small solder blobs fall off, they'd been sitting there on some chip's pins since it was manufactured years ago
http://www.chilton-computing.org.uk/acl/literature/reports/p...
(Sverdlovsk == modern Ekaterinburg)
The last person shot on the Berlin wall died in February 1989 [0].
https://web.archive.org/web/20060327191523/http://www.speedy...
There's an overarching theme of, "computers used to be much, much, much more sensitive to interference."
Love it!
We looked at our code and were rather stumped - a simple ACK/NAK serial RS232 protocol - replaced serial boards.
I got sent onsite (my fate as lead programmer) and sat in the office and waited - hours later it happened and when I looked at the offending muffin I looked down and noticed the barcode scanner was from another manufacturer (cheaper) we normally did not use.
I send some samples to manufacturer - few days later - turned out it was firmware issue.
I wanted to use an image, so I ended up writing it on Twitter: https://twitter.com/benji_york/status/1566421109255315458
We normally used NCR barcode scanners as they had some "3D" mirror scanning but were rather expensive and larger footprint in the frontline.
The reason turned out to be a ground fault. The computer used only a two prong plug for power. The printer used a three prong plug with proper ground and the centronics cable/connection between the two units had a grounded shell and shielding foil in the cable.
I can assure you there are plenty of readers here who have not heard of it. I shared the link at work recently and was interested that not a single person knew of it (they are fairly young though).
https://beza1e1.tuxen.de/lore/print_on_tuesday.html
(Date embedded in printjob and parsed by the wrong filter)
I came to own the "cursed" server, and it ran fine for me for several months in heavy but noncritical tasks. I put it in my DC and sure enough the odd errors begin happening again.
This was a 4U box with a row of drive bays in front and "onboard SCSI raid" and "hotplug backplane" and all those trimmings. So we had all been using the onboard built in SCSI controller this whole time, which included a large SCSI cable carefully routed through the folds and byways of this complicated case.
That was the fault: the SCSI cable connector to the backplane board had cracked; and when it was cold pulled apart enough to have poor connections on some pins, and result in (sometimes silent!) data corruption problems. Getting to it required stripping the machine down further than anybody had managed to that point. After that it served me well for several more years.
https://web.archive.org/web/20220904055009/https://patrickth...
Turns out the problem was an undocumented revision to a passive port cover. The new design introduced a short between pins without changing external markings. The only distinguishing mark was a slight color difference between different batches of plastic.
Turned out Hetzner were to cheap to pay for cooling for their cheapest server racks and they all failed like clockwork when it got hot enough outside.
I recall Raspberry PI's had an issue where certain types of flash photography would cause them to shut down :) https://www.raspberrypi.com/news/xenon-death-flash-a-free-ph...
It's always about the probability of a flip/error, not about whether they exist at all. They always exist.
So of course, the intuition was that there is some crash somewhere, maybe in the wireless stack that was being worked on.
Turned out, the application's disappearance wasn't a crash but an exit. The pointer happened to be hovering over the [X] window close button, and the RF interference from the wireless transmission was triggering a phantom tap on the screen.
Finally I put his whole set up on a cart with a giant extension cord and wheeled it out into the hallway. The problem went away.
Turned out his office had an insufficiently shielded fuse box that was causing magnetic interference.
One significant thing that has changed since then though is that in many cases, much of the RAM in use isn't doing something truly critical. Gigabytes are spent holding data, not behavior, so it manifests as a sightly miscolored pixel or a minor calculation difference. The odds of random flips changing something that'll be noticed are much lower.
And truly critical stuff often runs multiple machines simultaneously, to detect one of them disagreeing. Which is much better than ECC, as it'll catch all flips anywhere, at the point it becomes relevant. Assuming you're not truly unlucky, and have similar flips on multiple machines.