MIT-LCP / MIT-LCP/wfdb-python

Continuous integration tests fail intermittently with no clear cause

オープン
#496 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

主要言語
Jupyter Notebook
スター
853
フォーク
322
PR マージ指標
30日以内にマージされた PR はありません

説明

Tests often fail with no apparent cause. For example, in the following case, tests were passing on the pull request but they failed on merge to main: https://github.com/MIT-LCP/wfdb-python/actions/runs/9784161262/attempts/1

After re-running the failed tests, they passed without error: https://github.com/MIT-LCP/wfdb-python/actions/runs/9784161262. The original error is shown below:

Run pytest
============================= test session starts =============================
platform win32 -- Python 3.11.9, pytest-8.2.2, pluggy-1.5.0
rootdir: D:\a\wfdb-python\wfdb-python
configfile: pyproject.toml
plugins: xdist-3.6.1
collected 67 items

tests\io\test_convert.py ..                                              [  2%]
tests\test_annotation.py .....                                           [ [10](https://github.com/MIT-LCP/wfdb-python/actions/runs/9784161262/job/27014444605#step:6:11)%]
tests\test_datasource.py ........                                        [ 22%]
tests\test_multi_record.py .....                                         [ 29%]
tests\test_plot.py .......                                               [ 40%]
Windows fatal exception: code 0x80000003

Thread 0x000017ac (most recent call first):
  File "C:\hostedtoolcache\windows\Python\3.[11](https://github.com/MIT-LCP/wfdb-python/actions/runs/9784161262/job/27014444605#step:6:12).9\x64\Lib\multiprocessing\pool.py", line 579 in _handle_results
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\threading.py", line 982 in run
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\threading.py", line 1045 in _bootstrap_inner
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\threading.py", line 1002 in _bootstrap

Thread 0x000007e8 (most recent call first):
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\multiprocessing\pool.py", line 531 in _handle_tasks
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\threading.py", line 982 in run
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\threading.py", line 1045 in _bootstrap_inner
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\threading.py", line 1002 in _bootstrap

Thread 0x000010d8 (most recent call first):
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\multiprocessing\connection.py", line 828 in _exhaustive_wait
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\multiprocessing\connection.py", line 896 in wait
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\multiprocessing\pool.py", line 502 in _wait_for_updates
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\multiprocessing\pool.py", line 522 in _handle_workers
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\threading.py", line 982 in run
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\threading.py", line 1045 in _bootstrap_inner
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\threading.py", line 1002 in _bootstrap

Thread 0x00000f64 (most recent call first):
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\ssl.py", line 1166 in read
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\ssl.py", line 1314 in recv_into
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\socket.py", line 706 in readinto
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\http\client.py", line 473 in read
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\site-packages\urllib3\response.py", line 856 in _fp_read
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\site-packages\urllib3\response.py", line 873 in _raw_read
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\site-packages\urllib3\response.py", line 949 in read
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\site-packages\urllib3\response.py", line 1060 in stream
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\site-packages\requests\models.py", line 820 in generate
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\site-packages\wfdb\io\_url.py", line 330 in iter_chunks
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\site-packages\wfdb\io\_url.py", line 498 in _read_range
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\site-packages\wfdb\io\_url.py", line 581 in read
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\site-packages\wfdb\io\download.py", line 473 in dl_full_file
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\site-packages\wfdb\io\download.py", line 451 in dl_pn_file
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\multiprocessing\pool.py", line 48 in mapstar
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\multiprocessing\pool.py", line [12](https://github.com/MIT-LCP/wfdb-python/actions/runs/9784161262/job/27014444605#step:6:13)5 in worker
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\threading.py", line 982 in run
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\threading.py", line 1045 in _bootstrap_inner
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\threading.py", line 1002 in _bootstrap

Current thread 0x00001b10 (most recent call first):
  Garbage-collecting
  File "<frozen _collections_abc>", line 774 in get
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\site-packages\urllib3\response.py", line 452 in _init_decoder
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\site-packages\urllib3\response.py", line 936 in read
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\site-packages\urllib3\response.py", line 1060 in stream
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\site-packages\requests\models.py", line 820 in generate
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\site-packages\wfdb\io\_url.py", line 330 in iter_chunks
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\site-packages\wfdb\io\_url.py", line 498 in _read_range
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\site-packages\wfdb\io\_url.py", line 581 in read
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\site-packages\wfdb\io\download.py", line 473 in dl_full_file
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\site-packages\wfdb\io\download.py", line 451 in dl_pn_file
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\multiprocessing\pool.py", line 48 in mapstar
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\multiprocessing\pool.py", line 125 in worker
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\threading.py", line 982 in run
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\threading.py", line 1045 in _bootstrap_inner
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\threading.py", line 1002 in _bootstrap

Thread 0x0000142c (most recent call first):
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\threading.py", line 327 in wait
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\threading.py", line 629 in wait
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\multiprocessing\pool.py", line 765 in wait
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\multiprocessing\pool.py", line 768 in get
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\multiprocessing\pool.py", line 367 in map
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\site-packages\wfdb\io\record.py", line 3121 in dl_database
  File "D:\a\wfdb-python\wfdb-python\tests\test_record.py", line 1150 in test_dl_database_with_dat_file
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\unittest\case.py", line 579 in _callTestMethod
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\unittest\case.py", line 623 in run
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\unittest\case.py", line 678 in __call__
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\site-packages\_pytest\unittest.py", line 344 in runtest
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\site-packages\_pytest\runner.py", line 173 in pytest_runtest_call
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\site-packages\pluggy\_callers.py", line 103 in _multicall
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\site-packages\pluggy\_manager.py", line 120 in _hookexec
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\site-packages\pluggy\_hooks.py", line 5[13](https://github.com/MIT-LCP/wfdb-python/actions/runs/9784161262/job/27014444605#step:6:14) in __call__
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\site-packages\_pytest\runner.py", line 241 in <lambda>
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\site-packages\_pytest\runner.py", line 341 in from_call
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\site-packages\_pytest\runner.py", line 240 in call_and_report
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\site-packages\_pytest\runner.py", line 135 in runtestprotocol
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\site-packages\_pytest\runner.py", line 1[16](https://github.com/MIT-LCP/wfdb-python/actions/runs/9784161262/job/27014444605#step:6:17) in pytest_runtest_protocol
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\site-packages\pluggy\_callers.py", line 103 in _multicall
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\site-packages\pluggy\_manager.py", line 120 in _hookexec
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\site-packages\pluggy\_hooks.py", line 513 in __call__
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\site-packages\_pytest\main.py", line 364 in pytest_runtestloop
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\site-packages\pluggy\_callers.py", line 103 in _multicall
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\site-packages\pluggy\_manager.py", line 120 in _hookexec
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\site-packages\pluggy\_hooks.py", line 513 in __call__
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\site-packages\_pytest\main.py", line 339 in _main
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\site-packages\_pytest\main.py", line 285 in wrap_session
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\site-packages\_pytest\main.py", line 332 in pytest_cmdline_main
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\site-packages\pluggy\_callers.py", line 103 in _multicall
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\site-packages\pluggy\_manager.py", line 120 in _hookexec
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\site-packages\pluggy\_hooks.py", line 513 in __call__
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\site-packages\_pytest\config\__init__.py", line [17](https://github.com/MIT-LCP/wfdb-python/actions/runs/9784161262/job/27014444605#step:6:18)8 in main
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Lib\site-packages\_pytest\config\__init__.py", line 206 in console_main
  File "C:\hostedtoolcache\windows\Python\3.11.9\x64\Scripts\pytest.exe\__main__.py", line 7 in <module>
  File "<frozen runpy>", line 88 in _run_code
  File "<frozen runpy>", line [19](https://github.com/MIT-LCP/wfdb-python/actions/runs/9784161262/job/27014444605#step:6:20)8 in _run_module_as_main
tests\test_record.py .....................................
Error: Process completed with exit code 1.

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

調査の方向性

tests/test_record.py の test_dl_database_with_dat_file から始め、次に pyproject.toml の pytest 設定と、リンクされた GitHub Actions の実行を確認してください。Windows での失敗を再現し、断続的な失敗が Multiprocessing に起因するのか、ネットワークダウンロードに起因するのかを判断してください。CI テストが報告されたクラッシュなしに安定して完了すれば完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
github-actions, python
領域
ci-cd, testing-qa
issue の種類
バグ
難易度
4/5
見積もり時間
3〜5日
活発さ
停滞
明瞭さ
説明が足りない
初心者へのやさしさ
35/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。