-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
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
Prevent the GC task callback from segfaulting. #32088
Conversation
It is possible when marking task objects in the GC for the associated jl_ptls_t reference to be NULL. To determine whether a task is a root task, we therefore also have to check if that reference is valid.
Can this be backported? |
Yes, a backport to 1.2.x (and ideally also 1.1.x and 1.0.x) would be awesome. While we haven't seen a crash caused by this outside of |
Speaking of master, are you all caught up to the stack changes to tasking? That's caused a bit of a problem for other external language integrations. |
@Keno We had a couple of minor hiccups due to the stack changes, but seem to have everything in working order for now. |
Would backports to 1.1 and 1.0 also be possible? Or are those branch lines not going to receive further updates from here on? |
1.0 will be updated. 1.1 will likely not. |
It is possible when marking task objects in the GC for the associated jl_ptls_t reference to be NULL. To determine whether a task is a root task, we therefore also have to check if that reference is valid. (cherry picked from commit 25c33e4)
It is possible when marking task objects in the GC for the associated jl_ptls_t reference to be NULL. To determine whether a task is a root task, we therefore also have to check if that reference is valid.
It is possible when marking task objects in the GC for the associated
jl_ptls_t reference to be NULL. To determine whether a task is a root
task, we therefore also have to check if that reference is valid.
This is a fix for a bug in the old "GC Extensions" changes added last year that did not manifest until now, because it was triggered by a combination of unusual circumstances. It should be fairly straightforward, as it only adds a missing null pointer check.