mailbox: other programs' messages can vanish without trace

未關閉
#44,251 52 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視

還沒有人認領這個 Issue。

評估

難度
4/5
預估耗時
3-5 天
新手友好度
25/100
Issue 類型
缺陷
描述清晰度
需要釐清
活躍度
停滯
技術堆疊
python
領域
backend

研究方向

Start by reviewing mailbox-unified.patch, mailbox-unified2-test.diff, and the later mailbox-tests-2.7 patches, then run the mailbox tests they modify or reference. Done means the reported concurrent single-file mailbox scenario no longer allows other programs' messages to disappear, with regression coverage preserved.

由索引模型根據 Issue 內容生成。

描述

3.10 3.11 3.9 (EOL) stdlib topic-email type-bug
BPO 1599254
Nosy @loewis, @warsaw, @terryjreedy, @devdanzin, @jwilk, @bitdancer, @akheron, @jimjjewett, @iritkatriel
Files
  • mailbox-copy-back.diff: Rewrite single-file mailbox by copying
  • mailbox-test.patch: Adds a test showing problem
  • length-checking.diff: Add length-checking to single-file mailboxes
  • mailbox-update-toc.diff: Update _toc on locking
  • mailbox-test-lock.diff: Lock/unlock around message count in test case
  • mailbox-docs.diff: Doc patch
  • mailbox-update-toc-fixed.diff: Return correct key from add()
  • mailbox-copy-back-53287.diff: Update to be against current version
  • mailbox-copy-back-new.diff: Rewrite single-file mailbox by copying
  • mailbox-fcntl-warn.diff: Warn when flush() may release lock
  • mailbox-pending-lock.diff: Small diff
  • mailbox-unified-patch.diff: Unified patch that fixes everything.
  • mailbox-unified2-test.diff: New version (test part)
  • mailbox-unified2-module.diff: New version (module part, semi-broken)
  • mailbox-update-toc-new.diff: Preserve message keys when rereading
  • mailbox-update-toc-again.diff: New version of _update_toc()
  • test_mailbox-reread.diff: Tests for concurrency/rereading _toc
  • mailbox-babyl-fix.diff: In Babyl class, write preamble before adding messages to an empty file
  • mailbox-copy-back-2.7.diff
  • mailbox-all-tests-2.7.diff
  • mailbox-tests-2.7-part1-for-copy-back.diff
  • mailbox-tests-2.7-part2.diff
  • 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 2006-11-19.16:03:08.000>
    labels = ['type-bug', 'library', '3.9', '3.10', '3.11']
    title = "mailbox: other programs' messages can vanish without trace"
    updated_at = <Date 2021-12-12.16:08:57.605>
    user = 'https://bugs.python.org/baikie'
    

    bugs.python.org fields:

    activity = <Date 2021-12-12.16:08:57.605>
    actor = 'iritkatriel'
    assignee = 'none'
    closed = False
    closed_date = None
    closer = None
    components = ['Library (Lib)']
    creation = <Date 2006-11-19.16:03:08.000>
    creator = 'baikie'
    dependencies = []
    files = ['2219', '2220', '2221', '2222', '2223', '2224', '2225', '2226', '2227', '2228', '2229', '2230', '2231', '2232', '2233', '2234', '2235', '2236', '34596', '34597', '34672', '34673']
    hgrepos = []
    issue_num = 1599254
    keywords = ['patch']
    message_count = 52.0
    messages = ['30590', '30591', '30592', '30593', '30594', '30595', '30596', '30597', '30598', '30599', '30600', '30601', '30602', '30603', '30604', '30605', '30606', '30607', '30608', '30609', '30610', '30611', '30612', '30613', '30614', '30615', '30616', '30617', '30618', '30619', '30620', '30621', '30622', '30623', '30624', '30625', '30626', '30627', '30628', '30629', '84585', '116185', '138216', '164004', '213979', '214007', '214043', '214648', '215207', '217378', '217713', '408393']
    nosy_count = 12.0
    nosy_names = ['loewis', 'barry', 'nnorwitz', 'terry.reedy', 'baikie', 'ajaksu2', 'peter.ll', 'jwilk', 'r.david.murray', 'petri.lehtinen', 'Jim.Jewett', 'iritkatriel']
    pr_nums = []
    priority = 'normal'
    resolution = None
    stage = 'patch review'
    status = 'open'
    superseder = None
    type = 'behavior'
    url = 'https://bugs.python.org/issue1599254'
    versions = ['Python 3.9', 'Python 3.10', 'Python 3.11']
    

    主要語言
    Python
    星號
    77.2k
    分支
    36k
    平均合併
    1 天 9 小時
    30 天內合併 PR
    558

    貢獻指南

    開啟貢獻指南

    從這裡開始

    1. 先讀完整個 Issue,再讀專案的貢獻指南。
    2. 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
    3. Fork 儲存庫,在一個分支上完成修改。
    4. 送出 Pull Request,並在描述裡引用這個 Issue 編號。

    python/cpython 的其他 Issue

    查看 python/cpython 的全部 Issue

    相似的 Issue

    更多 Python Issue

    把新 issue 寄到你的電子郵件信箱

    精選適合新手參與的 GitHub issue 摘要。