Skip to content

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

@qinsoon

Description

@qinsoon

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions