`test_threading` failing randomly on CI
オープン
まだ誰も着手していません。
tests
topic-free-threading
- 主要言語
- Python
- スター
- 77.2k
- フォーク
- 35.9k
- PR マージ指標
- PR 指標を取得中
説明
See https://github.com/python/cpython/actions/runs/12953185538/job/36134744339?pr=128869
test_reinit_tls_after_fork (test.test_threading.ThreadJoinOnShutdown.test_reinit_tls_after_fork) ... Warning -- Uncaught thread exception: AssertionError
Exception in thread Thread-34 (do_fork_and_wait):
Traceback (most recent call last):
File "/Users/admin/actions-runner/_work/cpython/cpython/Lib/threading.py", line 1054, in _bootstrap_inner
self.run()
~~~~~~~~^^
File "/Users/admin/actions-runner/_work/cpython/cpython/Lib/threading.py", line 996, in run
self._target(*self._args, **self._kwargs)
~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/admin/actions-runner/_work/cpython/cpython/Lib/test/test_threading.py", line 1438, in do_fork_and_wait
support.wait_process(pid, exitcode=50)
~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
File "/Users/admin/actions-runner/_work/cpython/cpython/Lib/test/support/__init__.py", line 2205, in wait_process
raise AssertionError(f"process {pid} is still running "
f"after {dt:.1f} seconds")
AssertionError: process 10953 is still running after 300.2 seconds
ok
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
調査の方向性
リンクされている CI 実行と Lib/test/test_threading.py から始め、特に ThreadJoinOnShutdown.test_reinit_tls_after_fork とその do_fork_and_wait ヘルパーを確認してください。Lib/test/support/init.py: wait_process の呼び出しを追跡し、子プロセスが 300 秒間ハングする問題を再現してください。テストが断続的に失敗せず、CI 上で子プロセスを実行したままにしなくなれば完了です。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- python
- 領域
- operating-systems, testing-qa
- issue の種類
- バグ
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 活発さ
- 停滞
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 35/100