`check_extension_modules.py` hangs build due to SIGTTIN
Personne n'a encore pris cette issue.
- Langage dominant
- Python
- Étoiles
- 77.2k
- Forks
- 35.9k
- Métriques de merge des PR
- Métriques de PR en attente
Description
Bug description:
When building Python on macOS with stdin a tty and linking against GNU readline, the build hangs indefinitely.
This is because during the build, python.exe -E check_extension_modules.py is run, which attempts to import the readline module.
At import time of the readline module
- it runs
PyInit_readline - which calls
get_tty_settingsfromlibreadline.dylib, - which ultimately runs an
ioctlsyscall - which immediately suspends the Python process thanks to a SIGTTIN signal.
The Python process isn't supposed to run ioctl syscalls from the background.
I don't know where the fix should go, but I would say it's two separate issues:
- importing modules during the build sounds like a bad idea due to possible side-effects
- the readline module running an
ioctlcall during import risking the process to be suspended when backgrounded sounds bad too.
CPython versions tested on:
3.14, main branch at commit 2c8f26cf5c6ff2398f1e1ed8bfe18e9938bbdebd
Operating systems tested on:
macOS
Linked PRs
- gh-148279
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par check_extension_modules.py et le chemin d’importation de readline décrit dans le rapport, notamment PyInit_readline et get_tty_settings. Reproduisez le build macOS avec stdin connecté à un tty, puis inspectez la PR liée gh-148279. C’est terminé lorsque le build ne se bloque plus et ne suspend plus le processus Python dans ce scénario.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- python
- Domaine
- build-system, operating-systems
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- À clarifier
- Accessibilité débutants
- 25/100