Skip to content
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

Julia GC assumes jl_task_t is always in the remembered set. #96

Open
qinsoon opened this issue Aug 30, 2023 · 0 comments
Open

Julia GC assumes jl_task_t is always in the remembered set. #96

qinsoon opened this issue Aug 30, 2023 · 0 comments
Labels
bug Something isn't working

Comments

@qinsoon
Copy link
Member

qinsoon commented Aug 30, 2023

Julia treats jl_task_t as a special case and assumes it will always reference young objects.
https://github.com/JuliaLang/julia/blob/f9792b4863230d638425b4f79ec5e109e12f77cc/src/gc.c#L2517-L2518

In this case, they may not have write barriers when updating references in jl_task_t. I encountered a case when I was debugging for #71, and described it here: #71 (comment). The missing write barrier was upstreamed in JuliaLang/julia#51096, and included in our fork in mmtk/julia#21. However, there might be more cases like this that we haven't found. We may encounter similar issues like this in the future.

We could consider treating jl_task_t as a special case.

@qinsoon qinsoon added the bug Something isn't working label Aug 30, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant