Live data from Hacker News

After Alaska Airlines planes bump runway, a scramble to ‘pull the plug’

seattletimes.com

91–100 of 189 posts

Re: After Alaska Airlines planes bump runway, a scramble to ‘pull the plug’

#91

Earlier quoted context omitted.

Concurrency is hard. Thread unsafe operations that end up getting executed in multi-threaded contexts are a huge source of heisenbugs

Should have used Rust.

A proper transactional database would suffice. You could do this safely and performantly on '00s hardware in PHP3 for crying out loud, serving thousands of planes per second.

Re: After Alaska Airlines planes bump runway, a scramble to ‘pull the plug’

#92
post #62

> Bret Peyton, Alaska’s on-duty director of operations, immediately ordered no more planes were to take off across the airline’s network. All Alaska flights not already airborne were stopped nationwide. An absolute pro. There's a hundred variations of this story, to varying degrees of criticality and impact; seeing a pattern out of two data points, connecting the dots, making the tremendous call to immediately pull t…

Yes. Even better if there are situations declared in advance to be automatic halts so no call needs to be made in the moment.

Re: After Alaska Airlines planes bump runway, a scramble to ‘pull the plug’

#93
post #22

Curious about the actual bug: > the update to the DynamicSource software had been tested over an extended period, the bug was missed because it only presented when many aircraft at the same time were using the system > the data was on the order of 20,000 to 30,000 pounds light. With the total weight of those jets at 150,000 to 170,000 pounds, the error was enough to skew the engine thrust and speed settings. Multithr…

Could be something as simple as the first concurrency 101 example: atomic addition. The += operator behaves poorly on concurrent access.

We had that error in an application at work. Essentially data was coming in on multiple threads, but there was a shared value between them that was being incremented and decremented. Without a lock and without using atomics, the tally could be incorrect. But under low load this didn't appear because the odds of interrupting +=/-=/++/-- was low. Under high load, however, the odds of a thread being interrupted mid-operation increased and so it appeared in production. At least in our case it was just an annoyance (no critical decisions were based on the value, it was merely informative).

If there are multiple data streams feeding in weight data per aircraft, under a low aircraft load (the scenarios they apparently tested) the odds of interruption during an operation like += can be low enough to not see the issue. Under high load, though, the odds of interruption and incorrect tallying increases substantially.

Re: After Alaska Airlines planes bump runway, a scramble to ‘pull the plug’

#94

Curious about the actual bug: > the update to the DynamicSource software had been tested over an extended period, the bug was missed because it only presented when many aircraft at the same time were using the system > the data was on the order of 20,000 to 30,000 pounds light. With the total weight of those jets at 150,000 to 170,000 pounds, the error was enough to skew the engine thrust and speed settings. Multithr…

I'm surprised there wasn't any human or general guardrail around the calculation that would have flagged such a significant weight difference. No one looked at the passenger count and the weight calculation and thought "whoa, that doesn't look right?"

> The bug was identified quickly in part because some flight crews noticed the weights didn’t seem right and asked for manual validation of the figures.

Actually there were such guardrails, so the system had multiple manual checks built in.

Re: After Alaska Airlines planes bump runway, a scramble to ‘pull the plug’

#95
post #38

Earlier quoted context omitted.

That’s a feature of engineering. Figuring out what performance and safety requirements are and then optimizing the resources required to meet those requirements is what engineering is for. The influence of capitalism would be on the requirements. But assuming the requirements are well-considered trying to minimize fuel and engine usage to meet those requirements is a good thing.

I think this is pretty subjective. You could also say that engineering should be used to increase the margin of safety (what is often labeled over-engineering). If the engineering requirement is “do something that brings you close to the margin of safety in order to save resources”, is that not an influence of capitalism?

No, again the decision on where to draw the line is a political decision. It’s produced by humans making values decisions. There’s no absence of risk situations so there are always trade offs.

How to hit that line precisely and with confidence is where engineering takes over.

Re: After Alaska Airlines planes bump runway, a scramble to ‘pull the plug’

#96

Earlier quoted context omitted.

Concurrency is hard. Thread unsafe operations that end up getting executed in multi-threaded contexts are a huge source of heisenbugs

I refuse to believe that summing up weights for each of 300 planes is so hard that it can't be made correct by a team of moderately competent developers operating under sane management. There might be some complexity, but it's 2023 and we have enough knowledge and tools to solve that kind of stuff routinely and reliably. Somebody fucked up big time and should be fired never to work in software again.

I agree that it's hard to see from the outside how calculating weight figures for an airplane could be software load-dependent. But this all smacks of the point that Brooks makes in 'The Mythical Man Month' all those years ago. Two guys in a garage can make a program that does 'x', but to make a programming system product that does 'x' is more than an order of magnitude more work. The complexities introduced don't relate to the 'x', but the intricacies of large systems. Deciding that 'someone has fucked up and should never work again'? Sorry, competent and conscientious people regularly make such mistakes. Which is why we need tests, software review, engineering processes et al to catch those mistakes.

Re: After Alaska Airlines planes bump runway, a scramble to ‘pull the plug’

#97
I don't understand why an airplane being heavier than what was estimated by the software would cause the tail to drag. I would assume it would cause the plane to not have sufficient thrust to take off, or to use more runway. But having the tail drag makes it seem like it had too much thrust, which translated to a steeper take off than anticipated... Can somebody explain?

Re: After Alaska Airlines planes bump runway, a scramble to ‘pull the plug’

#98
post #79

Earlier quoted context omitted.

That's still an architecture defect. Software's accuracy being affected by load is completely unacceptable.

Please let us know where these software magicians are that write perfect, bug-free code.

Who said anything about that? You're arguing against a straw man nobody has set up but yourself..

There's no such thing as perfect software, but there is definitely software that doesn't make up a false value if it can't work.

Re: After Alaska Airlines planes bump runway, a scramble to ‘pull the plug’

#99
post #63
post #33

Earlier quoted context omitted.

>Interesting that someone cited divorce and sleep examples as emotional pleas , reassuring us they are only human. Huh? FAA spends a huge amount of time and energy focusing on human factors, tasks saturation rates and crew resource management. Nothing to do with with argumentum ad passiones, just prudent risk mitigation.

I thought a lot of safety thinking was built around acknowledging that humans don't do everything perfectly all the time.

It does, and one class of mitigation is to improve automation, which airlines (and their regulators) do all the time.

But another class of mitigations is to make the human less error-prone in the first place. This is especially important in preventing failures that were caused by improper management of the automation. Hence the emphasis on rest periods, training, and other mitigations on the human side.

In the "swiss cheese" model, a disaster needs to slip through both the human's defenses and the automation's defenses to actually happen. It makes sense to improve both of those layers of defense against disaster, while acknowledging that humans will never be perfect. But at least they can be awake and knowledgable.

Post reply on HN