Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

at_jl_exit sometimes crashes

Abierto
#764 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
10/100
Tipo de issue
Error
Claridad
Necesita aclaración
Estado de actividad
Estancado
Stack tecnológico
julia, python
Área
backend

Línea de trabajo

Revisa jl_atexit_hook(0), Base._atexit(0) y jl_gc_run_all_finalizers para entender la secuencia de apagado descrita en el informe. Compara el comportamiento y las pruebas disponibles con la corrección en la pull request 763 de PythonCall.jl; este issue ya está marcado como corregido allí.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

bug

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

Lenguaje dominante
Julia
Estrellas
1.1k
Forks
89
Merge medio
2 d 15 h
PR fusionados (30 d)
7

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de JuliaPy/PythonCall.jl

Todos los issues de JuliaPy/PythonCall.jl

Issues similares

Más issues de Julia

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.