Diagnose nondeterministic Symbol comparisons in tests #143
Labels
No labels
Area/build-packaging
Area/cli
Area/evaluator
Area/fetching
Area/flakes
Area/language
Area/profiles
Area/protocol
Area/releng
Area/remote-builds
Area/repl
Area/store
bug
crash 💥
Cross Compilation
devx
docs
Downstream Dependents
E/easy
E/hard
E/help wanted
E/reproducible
E/requires rearchitecture
imported
Needs Langver
OS/Linux
OS/macOS
performance
regression
release-blocker
RFD
stability
Status
blocked
Status
invalid
Status
postponed
Status
wontfix
testing
testing/flakey
ux
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: lix-project/lix#143
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
We reproduced the below bug in building from a different nixpkgs, where the ordering of the attr sets from the debugger changed. Although the answer to that is "sort the debugger output", we should have a way to ferret out similar sorts of nondeterminism due to Symbol pointer comparisons in a way that will cause it to fail way earlier.
Specific implementation might look like something like XORing a random value into symbols during comparisons if a specific diagnostic option is enabled. Or maybe https://github.com/NixOS/nix/pull/8711, but that implementation is somewhat of a hack.
fwiw, this is not fixed, in that we still want to diagnose it in other cases