JuliaPy / JuliaPy/PythonCall.jl
at_jl_exit sometimes crashes
- Ngôn ngữ chính
- Julia
- Star
- 1.1k
- Fork
- 86
- Merge trung bình
- 1 ngày 22 giờ
- Pull request đã merge (30 ngày)
- 3
Mô tả
**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 https://github.com/JuliaPy/PythonCall.jl/pull/763
Hướng dẫn đóng góp
Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này
Hướng nghiên cứu
Review jl_atexit_hook(0), Base._atexit(0), and jl_gc_run_all_finalizers to understand the shutdown sequence described in the report. Compare the behavior and available tests with the fix in PythonCall.jl pull request 763; this issue is already marked as fixed there.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- julia, python
- Lĩnh vực
- backend
- Loại issue
- Lỗi
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Cần làm rõ
- Mức phù hợp với người mới
- 10/100