MIT-LCP / MIT-LCP/wfdb-python

Continuous integration tests fail intermittently with no clear cause

Offen
#496 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Vorherrschende Sprache
Jupyter Notebook
Sterne
853
Forks
322
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

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.

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

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 tests/test_record.py bei test_dl_database_with_dat_file, überprüfe anschließend die pytest-Konfiguration in pyproject.toml und den verlinkten GitHub Actions-Lauf. Reproduziere den Windows-Fehler und ermittle, ob der intermittierende Fehler mit Multiprocessing oder Netzwerkdownloads zusammenhängt; abgeschlossen ist die Aufgabe, wenn der CI-Test zuverlässig ohne den gemeldeten Absturz durchläuft.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
github-actions, python
Bereich
ci-cd, testing-qa
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

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