Hacker News

New stories

Live mirror
30 storiesupdated just nowView source snapshot
  1. Show HN: Koi Editor Alpha(koieditor.com ↗)
    discuss
  2. Show HN: Learn divergently/chaotically with tree-learn(srijanshukla18.workers.dev ↗)
    discuss
  3. Berkshire Hathaway, Inc(berkshirehathaway.com ↗)
    discuss
  4. We Should Double-Check the AI Output: A Bug Which Wasn't(giodicanio.com ↗)
    discuss
  5. New Species of Cat Discovered for First Time in a Century(nytimes.com ↗)
    1comments
  6. Why isn't mutable a subtype of immutable, or vice versa?(crumbles.blog ↗)
    discuss
  7. Show HN: App Launch: GrabThat (NLP Launcher for Windows)(grabthat.ai ↗)
    discuss
  8. Persistent Databases in the Browser with DuckDB-WASM and OPFS(duckdb.org ↗)
    discuss
  9. DropSlim – Local and open-source image compressor built with Rust and Tauri(github.com/onza ↗)
    discuss
  10. Leave the Class Path in the Rearview Mirror(netflixtechblog.com ↗)
    1comments
  11. AI containment is a systems engineering problem(knaup.me ↗)
    discuss
  12. Some of All Fears(sharptext.net ↗)
    discuss
  13. You cry "AI generated" because you can't debunk the actual technical facts(medium.com/istokovicsgyorgy79 ↗)
    1comments
  14. Alea iacta non est: rerolling the LLM dice(rolisz.ro ↗)
    discuss
  15. Arrow heads at Obi-Rakhmat (Uzbekistan) 80K years ago?(plos.org ↗)
    discuss
  16. Testing whether a real fly connectome's wiring matters, using crypto as stimulus(github.com/mayombe67 ↗)
    discuss
  17. Ephemerals.dev – Disposable cloud dev environments(ephemerals.dev ↗)
    discuss
  18. The Headword(wiktionary.org ↗)
    discuss
  19. Lilo 0.2.2 – a Rust/egui Markdown notes app with widget and workspace modes(github.com/hellterenjoy ↗)
    discuss
  20. Court shines a further light on who was at fault in SVB implosion(ft.com ↗)
    discuss
  21. The Lamentable Later Life of Lemmings(filfre.net ↗)
    discuss
  22. Jev VC – Pitch Jev Your Startup(pitchjev.vercel.app ↗)
    1comments
  23. US Treasuries Have Become Unappetizing for Foreign Central Banks and Governments(wolfstreet.com ↗)
    4comments
  24. A systemd timer to log and lock kids out of their Linux accounts overnight(github.com/mowglixx ↗)
    discuss
  25. Knot: A CLI ticket tracker for solo developers(github.com/unisoma ↗)
    discuss
  26. How to run offline, local coding agents on Linux(ostechnix.com ↗)
    discuss
  27. From 2027 you must be at least 18 to use Dropbox(dropbox.com ↗)
    2comments
  28. Salesforce tracing without debug logs: every trigger, field write, and rollback(fidelic.dev ↗)
    discuss
  29. Awesome-tunneling – List of ngrok, Cloudflare Tunnel, Tailscale and related(github.com/anderspitman ↗)
    discuss
  30. Black Holes or Black Hole Stars? Astronomers Spar over 'Little Red Dots'(quantamagazine.org ↗)
    discuss

NATS publishes preliminary report on technical incident of 8 September

24 pointsby 2h agonats.aero
16 comments
1h agoHN ↗

Note: NATS the UK airspace manager, not NATS the pubsub system.

46m agoHN ↗

And here I was surprised they would use NATS in their implementation to assign squawk codes.

1h agoHN ↗

The incident was triggered by a valid manual request for a squawk code. This manual request was made correctly and there was nothing abnormal or invalid about the associated flight plan.

While this request was being processed, the NAS received a message for a higher priority activity to be undertaken which resulted in the squawk code allocation being paused while the system processed the higher priority message. Switching between different activities in response to prioritised requests is a normal function of the system; however, when the processing of the squawk allocation request resumed, the software defect meant it did not resume correctly and the resulting output was corrupted.

The reason this scenario has not occurred before is because:

1. The defect existed in a specific subsection of code within a software module, with an exposure window estimated as approximately one millisecond.

2. For the fault to occur, a higher-priority request had to arrive during that exact millisecond while the original request was part-way through updating a value.

3. Had the higher-priority request arrived even one millisecond earlier or later, the update would have completed normally.

Post-incident investigation has identified that when processing of the squawk allocation request resumed, the data associated with it had been corrupted and affected some subsequent flight data updates.

39m agoHN ↗

3. Had the higher-priority request arrived even one millisecond earlier or later, the update would have completed normally.

Well, that's comforting to know.

BBC: "Flight chaos caused by software defect in space of a millisecond, report says"

Sky: "'Millisecond' software error caused air traffic outage that grounded thousands of flights"

The Guardian: "Flight chaos for hundreds of thousands was caused in ‘millisecond’ by software error"

Sounds like pure bad luck.

30m agoHN ↗

Testing isn't an effective way to catch most race conditions. Code reviews, static analysis, and rigorous enforcement of concurrent coding standards is usually a better approach.

20m agoHN ↗

Perhaps something like what TigerBeetle does: deterministic simulation testing.

27m agoHN ↗

Or maybe even just reviewing logic that is subject to pre-emption.

Maybe I'm being too harsh.. on the plus side the system has at least failed hard every time there's been a fault. Nobody has died. But it's been 3 times now in the past couple of years, and two of those times resulted in over 2000 flights cancelled and days of backlog, and misery for hundreds of thousands. It's really not acceptable.

17m agoHN ↗

the system has at least failed hard every time there's been a fault

You don't know that.

10m agoHN ↗

Safety critical systems demand formal verification. This wasn't bad luck, this was poor craft.

18m agoHN ↗

Therac-25 called and wants its bug back.

Seriously, for 2026 this is pure amateur hour with no excuse.

1h agoHN ↗

Interesting! Looks like a race condition (with a 1ms window) during squawk allocation (the process that gives each aircraft a 4 digit identifier for ATC purposes) caused data corruption. They present that window as being small but 1ms is a decent chunk of time in our work lol

42m agoHN ↗

More specifically: it sounds like something which was supposed to be an atomic operation was split into two by the preempting task, with corruption happening because that task also interacted with the same piece of (now-temporarily-invalid) data.

47m agoHN ↗

Would be interesting if the report actually got into the details. The curiously specific "approx. 1ms window" sounds like an off-the-shelf memory race condition in combination with a preempting thread, for which 1ms is an absolute eternity and Guaranteed To Happen By Tuesday This Week™. But the "database corruption" sounds like database IDs being generated from timestamps with 1ms granularity.

18m agoHN ↗

They might have to switch to ULID or similar.