Rewind uses Nix inputs to make race conditions replayable
Rewind runs a Nix build inside a deterministic virtual machine and deliberately changes thread scheduling to expose race conditions. Nix supplies the exact build inputs, sources and debug information; Rewind adds replay, comparisons and debugger access. The article follows a lost-update example to the scheduling step that separates a passing run from a failing one.
Farid Zakaria · Oct 7, 2026
Why it matters
Reproducible inputs become more valuable when they let another engineer inspect the same failure rather than merely rebuild the program.
More context
Try the linked example derivations in a suitable Nix environment. A recorded run can be forked at a chosen step for gdb inspection without changing the recording. Exported runs carry timeline bookmarks. This is an evolving developer project, not a newly established universal debugging standard.
Keep in mind
The demonstrated VM uses one CPU and perturbed schedules; the article does not establish coverage of every multicore failure. Published timings and examples are the author’s observations. We have not run the debugger.
Original read