Categorie
Domande di Internet

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

One of our engineers when writing some custom scripting for a customer made the decision to use what’s called a wildcard character in the delete statements. For those who don’t know what these characters do is let you do comparisons that do not need to be an exact match, such as using “*ing” which would then match any value that ends in “ing”. Besides the already WTF of using a wildcard when trying to delete they also did not validate that the data being supplied was present. So basically what ended up happening is the customer processed an order where this data was empty causing the wildcard to be all by it’s lonesome and matching with literally anything. The end result was about 6 months worth of orders being deleted.

I read about a programmer in Russia’s space agency who added a ” – ” before a numeric that he/she shouldn’t have. This caused a gyroscope to believe that its orientation was the exact opposite of its actual orientation. The rocket took off and immediately tried to do a U-turn because it thought it was flying in the wrong direction. It blew up obviously.

I wrote a function that created a new user and set their password in the database. I wrote it really really as some basic logic. Unfortunately, I messed it up subtly, and it took us a year to find. The first time we actually created a user for real, it overwrote all of the existing users’ password hashes with an empty string.

We learned how to restore the users table from a database backup that day.

This might not exactly qualify, but its a decent story. I used to work for a company that got people (mainly Americans) online and sent out tons of CDs as ways to sell their service. There were a bunch of scripted jobs that you could use to restart servers, as our naming conventions were pretty good (so if you wanted to restart all the webproxy servers, you could run `./script webproxy*` and have all those servers restarted. Good for code upgrades or patches, or whatnot. Script worked off of a big inventory list and could restart multiple “classes” of servers in case you were doing work on an entire subsystem.

Someone ran it like so:

script webproxy *

Notice the space. The script began restarting every host everywhere. One of the VPs was in the war room trying to fix things, was offered a chair (as he was kneeling in front of a keyboard) to which he responded “No, I’m praying” and kept on working.

I’m not really a programmer, but last night my master thesis which is written in Latex decided it could no longer compile all of a sudden. To make it worse, the deadline for the thesis is today, meaning I had no time to rewrite it in any other program. So I have been pulling my hair out since yesterday trying to save 6 months of work while the deadline grew closer, hour by hour. And now after not sleeping since yesterday, it finally compiled.

Turns out you can’t do a linebreak () inside a caption. Which in turn crashed a 80 page dokument…the day before it was due. I am going to sleep now.