MIT-LCP / MIT-LCP/wfdb-python

Continuous integration tests fail intermittently with no clear cause

Ouverte
#496 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Langage dominant
Jupyter Notebook
Étoiles
853
Forks
322
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

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.

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez par tests/test_record.py au niveau de test_dl_database_with_dat_file, puis examinez la configuration de pytest dans pyproject.toml et l’exécution GitHub Actions liée. Reproduisez l’échec sous Windows et déterminez si l’échec intermittent est lié à Multiprocessing ou aux téléchargements réseau ; le travail est terminé lorsque le test CI s’exécute de manière fiable sans le plantage signalé.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
github-actions, python
Domaine
ci-cd, testing-qa
Type d'issue
Bug
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
À clarifier
Accessibilité débutants
35/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.