-
-
Notifications
You must be signed in to change notification settings - Fork 5.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Attempting to add debug logs for ENQUEUING an invalid object #49741
Conversation
Fixed some compiler warnings and inserted the On the example from #21590 (with a = Ref(1)
ptr = pointer_from_objref(a) - 8
unsafe_store!(Ptr{Int}(ptr), ptr)
GC.gc()
The performance of keeping |
We were seeing GC Corruption when _popping_ an invalid object, but we don't know how we got this invalid pointer. (And we can't repro on linux so can't use RR.) This is an attempt to check for the object's validity _before enqueuing_ so that we can hopefully give a more useful error message (which object's pointer was corrupted). But for some reason it's currently complaining about the very first push....
- Remove JL_NORETURN - Account for changes in #49556
d5bd127
to
9fdc2d1
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Awesome. Thanks again for picking this up and carrying it forward, @d-netto!! :)
The hardest part to me will be ensuring that we don't ever miss a spot and push an object without including this assertion there. (Whereas before, when it was on the pop side, it was easier to ensure it always happens.) But I think it should be pretty doable.
Thanks!
…ng#49741) * Attempting to add debug logs for ENQUEUING an invalid object Check for the object's validity _before enqueuing_ so that we can hopefully give a more useful error message (which object's pointer was corrupted). --------- Co-authored-by: Diogo Netto <[email protected]>
…ng#49741) * Attempting to add debug logs for ENQUEUING an invalid object Check for the object's validity _before enqueuing_ so that we can hopefully give a more useful error message (which object's pointer was corrupted). --------- Co-authored-by: Diogo Netto <[email protected]> show mark-queue on GC critical error (JuliaLang#49902)
We were seeing GC Corruption when popping an invalid object, but we don't know how we got this invalid pointer. (And we can't repro on linux so can't use RR.)
This is an attempt to check for the object's validity before enqueuing so that we can hopefully give a more useful error message (which object's pointer was corrupted).
But for some reason it's currently complaining about the very first push....