This is part 3 of my blog posts about the UK air traffic control meltdown. You
might want to read part one and part two.
Having had some time to process some of the comments about my first post, I
realise now that I was not clear in communicating my thoughts about the
programming style, and how that contributed to the existence of the bug. I will
have another go now. The point I was trying to make was:
With a better programming style, the bug might not have been made even if the
code is only meant for flight plans with no duplicate waypoints.
UPDATE: The flight plan which triggered the chaos (but was valid) has been
identified!
On 28 August 2023 NATS, the UK's air traffic control operator, suffered a
major technical incident. The BBC reports that more than 2000 flights were
cancelled and the cost has been estimated
at over £100 million GBP. The incident probably affected hundreds of thousands
of people.
The press initially reported the cause was a faulty flight plan: "UK air traffic
control: inquiry into whether French error caused failure" (The Times) and in
typical Mail Online reporting style: "Did blunder by French airline spark air
traffic control issues? Officials probe if a single badly filed travel plan
caused UK's entire flight-control system to collapse in worst outage for a
decade - with 1,000 flights cancelled and chaos set to last DAYS".
So what happened? These are notes on my reading of the incident report:
One of the points made in this thread, is that there is a sizeable class of Python programmers for which the trope "Python programmers will be scared of monads!" doesn't apply. I thought I would ask some of the people I know that use Python why they don't use Haskell.