How the heck do you end up with a concurrency bug in a system where the calculations appear to be logically independent?
How the heck do you end up with a concurrency bug in a system where the calculations appear to be logically independent?
> That morning, a software bug in an update to the DynamicSource tool caused ...
This says when the bug happened, not when the update was made.
Would have thought lower than ideal safety margins on takeoff speed (the calculations were apparently <20% off the true value) were a more concerning problem
And 90% of those sources are ancient balls of mud that spit out stuff that looks like
!ORD 06/001 ORD RWY 04L/22R CLSD 2106231700-2106232300
or KAUS 092135Z 26018G25KT 8SM -TSRA BR SCT045CB BKN060 OVC080 30/21 A2992 RMK FQT LTGICCCCG OHD-W MOVG E RAB25 TSB32 CB ALQDS SLP132 P0035 T03020210 =The fact that a lot of this output is almost complete inscrutable means you have to build a tool or something to translate it from that back to something a human can quickly read/grasp... and translation mistakes can happen there too :/
TaaS -> Tailstrikes as a Service...
`KAUS 092135Z 26018G25KT 8SM -TSRA BR SCT045CB BKN060 OVC080 30/21 A2992`
That is a very concise way of conveying a lot of information about the weather. It doesn't take long to learn it, and at a glance I can tell you that the weather is kind of shitty for flying at KAUS, and I can plug it into any flight app and read it in plain text if I really want.
Both were lighter than expected (so if it was a swap with another aircraft we wouldn't necessarily know - possible that 4 aircraft got the wrong data and we don't know the other two).
But it feels more likely that the sums just failed and they incorrectly caught the failures instead of letting it fall out. catch(e){} is a bug factory for sure.
Also this would mean some other aircraft had a particularly powerful departure, since both aircraft had lower-than-true weight calcs.
There is still the matter of dealing with mutable stores like databases, but well-written code would make that impossible as well, plus permit tests to run concurrently