ipython / ipython/ipykernel

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

Đang mở
#1,512 0 bình luận 0 reaction 0 người được giao Xem trên GitHub
Ngôn ngữ chính
Python
Star
734
Fork
412
Merge trung bình
1 ngày 5 giờ
Pull request đã merge (30 ngày)
8

Mô tả

### **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:
```bash
cd /home/alvaritogsg/personalProjects/nuclioShool/nuclio_charlas
```
2. Activate the virtual environment:
```bash
. .venv/bin/activate
```
3. Run the kernel launcher directly with faulthandler:
```bash
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:
```bash
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.

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.