You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The actual error message is unlock count must match lock count when we try to set an atomic int in SpinLock to 0, but found the old value was already 0.
As this is related with copying, it is likely that the SpinLock accessed was moved. In our debug build, we zero the memory for a moved object. So if we follow the old reference, we will find an object with 0.
I am not sure how this is possible, as the SpinLock is the donenotify field of Task, and it should be traced.
This is undeterministic.
The text was updated successfully, but these errors were encountered:
This PR adds a few more pining for types in the native heap, and exposes globally rooted symbols so we can trace them in the MMTk binding. With this PR, we can run moving Immix without transitively pinning `global_roots_table`. See mmtk/mmtk-julia#170.
* Add `jl_gc_pin`
* Use `jl_gc_pin` to pin `BigFloat` for MPFR
* Rename `PTR_PIN` to `OBJ_PIN`. Additionally add `PTR_PIN` which handles cases for internal pointers.
* Pin objects that are used as key in `jl_codectx_t.global_targets`
* Pin objects that are stored in `jl_codectx_t.PhiNodes`
* Pin objects that are referred to by `jl_cgval_t`
* Disable GC before doing perm alloc in `jl_get_layout` (see mmtk/mmtk-julia#172)
* Pin weak references and the referee (see mmtk/mmtk-julia#176)
* Pin objects that are used in `libuv`'s handle.
* Pin `jl_task_t.completion_future` (see mmtk/mmtk-julia#179)
* Pin all `jl_codeinst_t` objects.
* Pin all `jl_method_instance_t` objects.
* Pin all `jl_module_t` objects.
* Pin all `jl_task_t` objects.
* Expose some `JL_GLOBALLY_ROOTED` symbols, such as `newly_inferred`, `task_done_hook_func`.
First seen in https://github.com/mmtk/mmtk-julia/actions/runs/11097983519/job/30830015431?pr=170 in #170 when running
test/threads
.The actual error message is
unlock count must match lock count
when we try to set an atomic int inSpinLock
to 0, but found the old value was already 0.As this is related with copying, it is likely that the
SpinLock
accessed was moved. In our debug build, we zero the memory for a moved object. So if we follow the old reference, we will find an object with 0.I am not sure how this is possible, as the
SpinLock
is thedonenotify
field ofTask
, and it should be traced.This is undeterministic.
The text was updated successfully, but these errors were encountered: