https://www.theverge.com/2024/7/25/24206203/sonos-ceo-apology-redesigned-app-controversy
#secondsystem #management #sonos #music #-
It's a race condition. We normally think of races in terms of racing against yourself - one part of the code does something, while another thread does something else that can cause problems if the timing lines up "right".
But it's still a race condition if the problematic action is caused by something else - a different program, a user's ill-timed command, etc.
Handling these sorts of things requires defensive programming and/or a lot of code for gracefully falling back. This is the sort of code that tends to accumulate in codebases over time, as edge cases are slowly and painfully found and worked around. It's also the kind of knowledge that doesn't exist in the original spec document, which is why ground-up rewrites of established systems tend to fail in ways that the original system experienced and fixed years before.
The Rust rewrite of coreutils exposed a bunch of exactly this kind of failure-to-understand why the original system was operating in the way it did, rather than the "obvious, correct, simple" way.
#CoreUtils #rewrite #SecondSystem #race #RaceCondition #TOCTTOU #EmbeddedKnowledge
In a cool turn of events at John Looney cool maker shed just before the talk