Skip to content

[Distributed] error in running finalizer: ConcurrencyViolationError(msg="lock must be held") (any_gc_flag) #42126

@krynju

Description

@krynju

This is a concurrency violation on this condition

const any_gc_flag = Condition()

Happens when running tests on krynju/Dagger.jl@a5b5267 (DTable groupby tests with Dagger on processes)

Windows, Julia master

Seems like the notify needs to be wrapped in a while->trylock loop (because it's running in finalizer context), since the lock on that condition doesn't seem to be obtained anywhere and the docs say that the Condition structure is not threadsafe

Will look more into that and open a PR sometime next week

From worker 2:    error in running finalizer: ConcurrencyViolationError(msg="lock must be held")
From worker 2:    concurrency_violation at .\condition.jl:8
From worker 2:    assert_havelock at .\condition.jl:25 [inlined]
From worker 2:    assert_havelock at .\condition.jl:48 [inlined]
From worker 2:    assert_havelock at .\condition.jl:72 [inlined]
From worker 2:    notify at .\condition.jl:132
From worker 2:    #notify#564 at .\condition.jl:130 [inlined]
From worker 2:    notify at .\condition.jl:130 [inlined]
From worker 2:    notify at .\condition.jl:130 [inlined]
From worker 2:    process_worker at C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.8\Distributed\src\remotecall.jl:288 [inlined] 
From worker 2:    send_del_client_no_lock at C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.8\Distributed\src\remotecall.jl:280  
From worker 2:    finalize_ref at C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.8\Distributed\src\remotecall.jl:94
From worker 2:    jl_apply at /cygdrive/c/buildbot/worker/package_win64/build/src\julia.h:1771 [inlined]
From worker 2:    run_finalizer at /cygdrive/c/buildbot/worker/package_win64/build/src\gc.c:278
From worker 2:    jl_gc_run_finalizers_in_list at /cygdrive/c/buildbot/worker/package_win64/build/src\gc.c:365
From worker 2:    run_finalizers at /cygdrive/c/buildbot/worker/package_win64/build/src\gc.c:394 [inlined]
From worker 2:    run_finalizers at /cygdrive/c/buildbot/worker/package_win64/build/src\gc.c:372
From worker 2:    jl_gc_run_pending_finalizers at /cygdrive/c/buildbot/worker/package_win64/build/src\gc.c:405
From worker 2:    jl_mutex_unlock at /cygdrive/c/buildbot/worker/package_win64/build/src\locks.h:133 [inlined]
From worker 2:    jl_generate_fptr at /cygdrive/c/buildbot/worker/package_win64/build/src\jitlayers.cpp:357
From worker 2:    jl_compile_method_internal at /cygdrive/c/buildbot/worker/package_win64/build/src\gf.c:1978
From worker 2:    jl_compile_method_internal at /cygdrive/c/buildbot/worker/package_win64/build/src\gf.c:1932 [inlined]
From worker 2:    _jl_invoke at /cygdrive/c/buildbot/worker/package_win64/build/src\gf.c:2237 [inlined]
From worker 2:    jl_apply_generic at /cygdrive/c/buildbot/worker/package_win64/build/src\gf.c:2427
From worker 2:    jl_apply at /cygdrive/c/buildbot/worker/package_win64/build/src\julia.h:1771 [inlined]
From worker 2:    start_task at /cygdrive/c/buildbot/worker/package_win64/build/src\task.c:881

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugIndicates an unexpected problem or unintended behavior

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions