Importing ctypes results in extra open libffi file descriptor since 3.14
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Python
- Estrellas
- 77.2k
- Forks
- 36k
- Métricas de merge de PR
- Métricas de PR pendientes
Descripción
Bug report
Bug description:
On python 3.13 (Fedora), importing ctypes results in the following output from lsfd:
python3 893377 daandemeyer mem r-x--- REG 0:37 0 304862113 /usr/lib64/libffi.so.8.1.4
python3 893377 daandemeyer mem r----- REG 0:37 0 304862113 /usr/lib64/libffi.so.8.1.4
python3 893377 daandemeyer mem r----- REG 0:37 0 304862113 /usr/lib64/libffi.so.8.1.4
python3 893377 daandemeyer mem rw---- REG 0:37 0 304862113 /usr/lib64/libffi.so.8.1.4
On python 3.14 (Fedora), importing ctypes results in the following output from lsfd:
python3 892407 daandemeyer 5 r----- REG 0:238 1342 7553 /usr/lib64/libffi.so.8.2.0
This ended up breaking https://github.com/systemd/mkosi because it relied on the fact that no new regular file descriptors were opened by importing ctypes (on python 3.14 the file descriptor shows up in /proc/self/fd whereas on python 3.13 the file descriptors are memory maps which don't show up in /proc/self/fd). I searched through the commit list and couldn't find the commit that introduced this change. It also didn't seem to be documented in the release notes. Can anyone point me to the commit introducing this change and the reasoning behind it?
CPython versions tested on:
3.14
Operating systems tested on:
Linux
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Empieza comparando las importaciones de ctypes en Python 3.13 y 3.14 en Linux, usando lsfd y /proc/self/fd como en el informe. Rastrea el historial de commits de CPython para encontrar el cambio que hace que libffi aparezca como un descriptor de archivo normal; después, determina su justificación y si el comportamiento requiere una corrección de regresión o documentación en las notas de la versión. Se considera terminado cuando el cambio y el razonamiento están claramente identificados y verificados.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- python
- Área
- operating-systems
- Tipo de issue
- Error
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Tranquilo
- Claridad
- Bastante claro
- Aptitud para principiantes
- 52/100