Categorie
Domande di Internet

Programmers, what is the biggest fuck up you’ve ever seen caused by a tiny mistake in the code?

Back in the 1990s, I saw a software distribution system (an application used in a corporate network to distribute and install software on the end-user workstations) with a bug that ended up taking out about 1400 workstations in a matter of hours. Someone had created an update for an application, but instructed the system to delete the old application directory before installing the new one. The problem was that they used a variable for the directory name, and that variable wasn’t defined in the productive environment. The software distribution system took the command “delete directory [null]” and instead of failing, it just started deleting the directory C:. This was back in the day of Windows NT 4.0, and this command succeeded in deleting critical Windows DLL files and causing the system to crash.

The recovery from this bug ended up costing something like $4 mio dollars …

I had originally designed the desktop system and was involved in the selection of the software distribution tool, but the system was in operation and managed by others by the time this event happened…

Tom Scott inspiration?

I wrote a code to skim fractions of pennies off of transactions, they usually would get rounded off but I had them deposited into a bank account. I misplaced a decimal and ended up taking thousands of dollars. My buddy I was working with tried to return it but the building ended up burning down and we didn’t get caught

One tiny, little mistake: I overwrote a production database with a week old copy.

One other tiny, little mistake: I was configuring the backup system from an HP tape system to Veeam. The database I overwrote was not yet configured for auto backup.

Chaos reigned. 🙁

I was on call for a retail company when, early one morning, we had a problem where inventory couldn’t be taken in any of our stores. Tracked the problem down to 25-year-old code written for the hand scanners that wasn’t in source control. Turns out, the startup code did a check to validate the database connection; the way it did this is by looking up employee #1. She’d retired a week earlier and removed from the database the previous evening.