Skip to content

at_jl_exit sometimes crashes #764

@dpinol

Description

@dpinol

Affects: JuliaCall

Describe the bug
When running multithreaded julia, python sometimes causes segmentation fault at exit.

Your system
Please provide detailed information about your system:

  • Ubuntu 25.10
  • Julia 1.12.6, Python 3.14.4, PythonCall 0.9.31, JuliaCall 0.9.31

Additional context

jl_atexit_hook(0) does three things in sequence:

  1. Run user atexit hooks (Base._atexit(0)).
  2. Schedule + run ALL registered finalizers (jl_gc_run_all_finalizers).
  3. Tear down threads, set jl_gc_disable_counter = 1.

Finalizers are best-effort, and running them during shutdown with multiple threads is probably where the crashes come from. Since the process is exiting, the finalizers don't semantically need to run — they're unsafe and not useful.
I tested that with only Base._atexit(0), my custom julia atexit` lambdas are executed

Fixed by #763

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions