Software Engineering · Performance
A bug where the program's outcome depends on the unpredictable ordering of concurrent operations, producing different results depending on timing.
Example: Two requests both read a counter as 0, both increment it to 1, and both write back 1 — the counter should be 2.
In practice: Hard to reproduce reliably because the timing window is usually small, which is exactly what makes them dangerous — they often lurk in production for months before coincidental timing triggers them.