Segfault launching ipykernel on Python 3.12.3 in VS Code Jupyter (works on Python 3.11)

Abierto
#1,512 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
35/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Tranquilo
Stack tecnológico
jupyter, jupyter-notebook, python
Área
backend, devtools

Línea de trabajo

Reproduce el fallo con python3 -X faulthandler -m ipykernel_launcher -f /tmp/test_kernel.json y compáralo después con el comando de Python 3.11 que funciona. Empieza por ipykernel_launcher.py, ipykernel/kernelapp.py y las extensiones nativas indicadas; la tarea estará terminada cuando Python 3.12 inicie el kernel y cree su archivo de conexión sin un segmentation fault.

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

Descripción

Summary

Summary

A Jupyter kernel startup failure occurs when launching ipykernel under Python 3.12.3 inside the project virtual environment. The process crashes with Segmentation fault during IPKernelApp initialization. The same kernel startup works correctly on Python 3.11.15.

This appears to be a bug in the ipykernel / IPython startup path for Python 3.12 rather than a notebook-specific issue.


Reproduction Steps

  1. Open the project directory:

    cd /home/alvaritogsg/personalProjects/nuclioShool/nuclio_charlas
    
  2. Activate the virtual environment:

    . .venv/bin/activate
    
  3. Run the kernel launcher directly with faulthandler:

    python3 -X faulthandler -m ipykernel_launcher -f /tmp/test_kernel.json
    
  4. Observe the crash:

    • Segmentation fault (core dumped)
    • No /tmp/test_kernel.json file is created.
  5. Compare with Python 3.11:

    python3.11 -X faulthandler -m ipykernel_launcher -f /tmp/test_kernel_py311.json
    
  6. The Python 3.11 kernel starts successfully and remains alive.


Actual Behavior

The kernel process crashes immediately with a segmentation fault while initializing the IPython kernel application.

The stack trace includes:

  • logging/__init__.py
  • IPython/core/application.py
  • ipykernel/kernelapp.py
  • traitlets/config/application.py
  • ipykernel_launcher.py

Loaded native extension modules at the time of the crash:

  • zmq.backend.cython._zmq
  • tornado.speedups
  • psutil._psutil_linux

VS Code reports:

The error displaed by VS Code was:

Error: El kernel ha muerto. Error: ... Vea Jupyter [log](command:jupyter.viewOutput) para obtener más detalles.

  • The execution that is falling is: ~python -m ipykernel_launcher
  • The check command python -c "import ipykernel; print(...)" works correctly.

Expected Behavior

The kernel should start normally and create a connection file such as /tmp/test_kernel.json. Jupyter frontends should be able to connect to the kernel without the process dying.


Environment

  • OS: Linux (WSL/Remote VS Code)
  • VS Code Jupyter extension: 2025.9.1
  • Python 3.12.3 virtualenv: /home/alvaritogsg/personalProjects/nuclioShool/nuclio_charlas/.venv
Package Versions in .venv
  • ipython 9.12.0
  • ipykernel 7.2.0
  • jupyter-client 8.8.0
  • jupyter-core 5.9.1
  • traitlets 5.14.3
  • tornado 6.5.5
  • pyzmq 27.1.0
  • psutil 7.2.2
Python Version Comparison
  • Python 3.12.3: fails
  • Python 3.11.15: works

The working Python 3.11 environment was tested using a temporary venv and a similar ipykernel_launcher command.


Additional Notes

  • python3 -m IPython --help works and even python3 -m ipykernel_launcher --help succeeds, but actual kernel startup still crashes.
  • The crash appears to happen before any frontend-level Jupyter communication begins, so this is likely not a VS Code issue.
  • The failing path is likely in the ipykernel / IPython initialization logic, possibly specific to Python 3.12 in this environment.
Lenguaje dominante
Python
Estrellas
734
Forks
411
Merge medio
1 d 5 h
PR fusionados (30 d)
8

Guía de contribución

Abrir la guía de contribución

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 ipython/ipykernel

Todos los issues de ipython/ipykernel

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.