python / python/cpython

Deadlock in multiprocessing.pool.Pool on terminate

Offen
#73,945 5 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

3.7 (EOL) stdlib topic-multiprocessing type-bug
Vorherrschende Sprache
Python
Sterne
77.2k
Forks
36k
PR-Merge-Kennzahlen
PR-Kennzahlen ausstehend

Beschreibung

BPO 29759
Nosy @pitrou, @applio

Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.

Show more details

GitHub fields:

assignee = None
closed_at = None
created_at = <Date 2017-03-08.17:50:46.188>
labels = ['3.7', 'type-bug', 'library']
title = 'Deadlock in multiprocessing.pool.Pool on terminate'
updated_at = <Date 2020-05-06.13:48:01.640>
user = 'https://bugs.python.org/mapozyan'

bugs.python.org fields:

activity = <Date 2020-05-06.13:48:01.640>
actor = 'ionelmc'
assignee = 'none'
closed = False
closed_date = None
closer = None
components = ['Library (Lib)']
creation = <Date 2017-03-08.17:50:46.188>
creator = 'mapozyan'
dependencies = []
files = []
hgrepos = []
issue_num = 29759
keywords = []
message_count = 5.0
messages = ['289248', '289249', '297215', '297733', '297735']
nosy_count = 4.0
nosy_names = ['pitrou', 'ionelmc', 'davin', 'mapozyan']
pr_nums = []
priority = 'normal'
resolution = None
stage = None
status = 'open'
superseder = None
type = 'behavior'
url = 'https://bugs.python.org/issue29759'
versions = ['Python 2.7', 'Python 3.5', 'Python 3.6', 'Python 3.7']

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne mit dem Beendigungspfad von multiprocessing.pool.Pool in der Bibliotheksimplementierung von Python und untersuche den gemeldeten Deadlock während terminate. Reproduziere das Verhalten mit einem fokussierten multiprocessing-Beispiel und ermittle anschließend den betroffenen Synchronisierungspfad. Erledigt ist die Aufgabe, wenn Pool.terminate() ohne Deadlock abgeschlossen wird und das Verhalten durch einen Regressionstest abgedeckt ist.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
python
Bereich
backend, operating-systems
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
25/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.