Crash in Lix 2.91.0 in debugger mode #592
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
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: lix-project/lix#592
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?
Crash report:
Binaries:
/nix/store/93ni93d5g2v62kz9a0v3cwn5p0qrq8nl-lix-2.91.0/bin/lix
(should be in https://cache.lix.systems).Annotated disassembly of faulting function
Crashing function sources:
Analysis
The program crashed with SEGV since x8 was a null pointer. This corresponds to:
Specifically,
env.values[0]->attrs
isnullptr
, so calling->begin()
on it crashes when trying to read the bindings object's size.Do I have any idea why attrs was nullptr? no lol. I would like a reproducer, but I am not sure if we are getting one of those.
cc @rbt as reporter
Though I am sure this file was in the process of being changed when Lix blew up, here is the approximate Nix code involved:
5f00003fc2/ghc.nix
reproducer:
the
!isThunk
check in mapStaticEnvBindings is insufficient, it must be isAttrsOh yeah, from the crash report we can observe that it was actually a bool since x9, which still should have the internal type as of the crash, is 2.