python / python/cpython

Items put on Queue in thread in child process sometimes not seen by parent process

Offen
#85,780 7 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

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

Beschreibung

BPO 41614
Nosy @alexmojaki
Files
  • queue_bug.py: A script you can run to observe this bug, with extensive comments
  • 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 2020-08-22.11:42:15.115>
    labels = ['3.7', '3.8', '3.10']
    title = 'Items put on Queue in thread in child process sometimes not seen by parent process'
    updated_at = <Date 2020-08-22.11:42:15.115>
    user = 'https://github.com/alexmojaki'
    

    bugs.python.org fields:

    activity = <Date 2020-08-22.11:42:15.115>
    actor = 'alexmojaki'
    assignee = 'none'
    closed = False
    closed_date = None
    closer = None
    components = []
    creation = <Date 2020-08-22.11:42:15.115>
    creator = 'alexmojaki'
    dependencies = []
    files = ['49422']
    hgrepos = []
    issue_num = 41614
    keywords = []
    message_count = 1.0
    messages = ['375795']
    nosy_count = 1.0
    nosy_names = ['alexmojaki']
    pr_nums = []
    priority = 'normal'
    resolution = None
    stage = None
    status = 'open'
    superseder = None
    type = None
    url = 'https://bugs.python.org/issue41614'
    versions = ['Python 3.6', 'Python 3.7', 'Python 3.8', 'Python 3.10']
    

    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 der Ausführung von queue_bug.py, dem bereitgestellten Reproduktionsskript, und folge dessen ausführlichen Kommentaren, um zu beobachten, wann Elemente, die von einem Thread eines Kindprozesses in eine Queue eingefügt werden, im Elternprozess fehlen. Verfolge das relevante Verhalten der multiprocessing-Queue und erstelle einen Regressionstest für den gemeldeten Fall; als erledigt gilt die Aufgabe, wenn der Elternprozess die eingereihten Elemente zuverlässig sieht. In der Issue wird keine Testdatei genannt.

    Vom Indexierungsmodell aus dem Issue-Text verfasst.

    Bewertung

    Tech-Stack
    python
    Bereich
    operating-systems
    Issue-Typ
    Bug
    Schwierigkeit
    4/5
    Geschätzter Aufwand
    3-5 Tage
    Aktivitätsstatus
    Veraltet
    Klarheit
    Größtenteils klar
    Anfängerfreundlichkeit
    28/100

    Neue Issues direkt in Ihr Postfach

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