python / python/cpython

Email header with ;;;; stuffing takes very long to parse

Offen
#87,075 3 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

3.12 performance topic-email
Vorherrschende Sprache
Python
Sterne
77.2k
Forks
36k
Ø Merge
1 T. 9 Std.
Gemergte PRs (30 T.)
558

Beschreibung

BPO 42909
Nosy @warsaw, @bitdancer, @akulakov, @eriker-fsc
Files
  • repro.py: Simple self-contained repro script - should take less than 1s but takes more than 30
  • 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 2021-01-12.13:13:10.953>
    labels = ['3.8', 'expert-email', '3.10', 'performance', '3.7', '3.9']
    title = 'Email header with ;;;; stuffing takes very long to parse'
    updated_at = <Date 2021-07-09.22:18:24.963>
    user = 'https://github.com/eriker-fsc'
    

    bugs.python.org fields:

    activity = <Date 2021-07-09.22:18:24.963>
    actor = 'andrei.avk'
    assignee = 'none'
    closed = False
    closed_date = None
    closer = None
    components = ['email']
    creation = <Date 2021-01-12.13:13:10.953>
    creator = 'eriker'
    dependencies = []
    files = ['49736']
    hgrepos = []
    issue_num = 42909
    keywords = []
    message_count = 3.0
    messages = ['384931', '384938', '397228']
    nosy_count = 4.0
    nosy_names = ['barry', 'r.david.murray', 'andrei.avk', 'eriker']
    pr_nums = []
    priority = 'normal'
    resolution = None
    stage = None
    status = 'open'
    superseder = None
    type = 'resource usage'
    url = 'https://bugs.python.org/issue42909'
    versions = ['Python 3.6', 'Python 3.7', 'Python 3.8', 'Python 3.9', '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 dem verknüpften Skript repro.py und führe es aus, um die Verlangsamung beim Parsen von E-Mail-Headern zu reproduzieren. Verfolge den Parsing-Pfad der E-Mail-Komponente, um die Ursache zu identifizieren, verifiziere anschließend, dass das Repro in weniger als einer Sekunde abgeschlossen wird, und füge einen Regressionstest hinzu oder aktualisiere ihn, falls sich die relevante Teststelle finden lässt.

    Vom Indexierungsmodell aus dem Issue-Text verfasst.

    Bewertung

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

    Neue Issues direkt in Ihr Postfach

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