How? Last week's Christmas travel nightmare for Delta/Comair passengers were ultimately frustrated by a overloaded 16-bit integer. The Cincinnati Post has an article about how a series of three events caused the downfall:
- A bad holida storm forced the airport to close runways for 15-30 minutes for clearning (not that big of a deal) and forced a ton of de-icing. The airlines realized they were going to run out of the de-icer so they ordered 13 tankers to arrive Wednesday night.
- The holiday storm worsened and the Ohio Highway Patrol had to close the roads, delaying the de-icers. Eventually the airlines ran dry and had to start delaying and cancelling flights. What does that do? It forces airline crews to be changed around. And...
- The app the airlines used only allowed for 32,000 crew changes in one calendar day, and thus, when they got the de-icing fluid and started changing crews around to get planes off the ground, the system crashed when someone entered that 32,001 change in. Track where crews are, how long they've been in the air, and what aircraft they were assigned to by hand? That's why we saw the cancellations.
What do you learn from this? It's not that bad to use Int32 instead of Int16 in very critical apps... or at least trap the error!!!