_PyInterpreterState_DeleteExceptMain() May Cause Problems During Fork
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Anfängerfreundlichkeit
- 38/100
- Issue-Typ
- Bug
- Klarheit
- Größtenteils klar
- Aktivitätsstatus
- Veraltet
- Tech-Stack
- python
- Bereich
- operating-systems
Rechercherichtung
Beginne in Python/pystate.c um die Zeilen 930–932 und verfolge PyInterpreterState_DeleteExceptMain(), wie es von PyOS_AfterFork_Child() aufgerufen wird. Reproduziere den vermuteten Fehler mit test__xxsubinterpreters und den test_multiprocessing*-Tests oder untersuche ihn. Als abgeschlossen gilt die Aufgabe, wenn fork mit mehreren Interpretern nicht mehr den gemeldeten Absturz oder intermittierende Fehler verursacht, einschließlich einer Regressionstestabdeckung, falls das Verhalten bestätigt wird.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
_PyInterpreterState_DeleteExceptMain() first sets the "current" thread state to NULL (while still holding the GIL) but then calls PyInterpreterState_Clear() on any other interpreter, even though it depends on there being a "current" thread set. I would expect this to cause crashes when a process with multiple interpreters if forked, since PyOS_AfterFork_Child() calls _PyInterpreterState_DeleteExceptMain(). This might explain some intermittent CI failures (e.g. with test__xxsubinterpreters or test_multiprocessing_*)
See https://github.com/python/cpython/blob/main/Python/pystate.c#L930-L932.
- Vorherrschende Sprache
- Python
- Sterne
- 77.2k
- Forks
- 36k
- Ø Merge
- 1 T. 9 Std.
- Gemergte PRs (30 T.)
- 558
Beitragsleitfaden
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus python/cpython
-
docs pending
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
-
stdlib type-feature
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
-
stdlib type-feature
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
-
build type-bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
-
stdlib topic-email type-feature
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100
Ähnliche Issues
-
link-check link-check:sphinx-theme
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 65/100
qgis/QGIS-Documentation#11275 ·
-
bug priority:normal ready-for-dev
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
OpenHands/extensions#626 · 1 Kommentar ·
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 90/100
CSCfi/sd-search-api#39 ·
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 90/100