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:
- Run user atexit hooks (Base._atexit(0)).
- Schedule + run ALL registered finalizers (jl_gc_run_all_finalizers).
- 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
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:
Additional context
jl_atexit_hook(0) does three things in sequence:
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 juliaatexit` lambdas are executedFixed by #763