-
-
Notifications
You must be signed in to change notification settings - Fork 474
Description
Describe the bug
Pytest hangs when coverage is collected with coverage==7.13.3 on Windows under specific conditions: run with tox and exercising some code that starts a lot of threads, processes, etc in non-trivial Python projects -- not clear what exactly triggers it. The issue is reliably reproduced on my system.
To Reproduce
At https://github.com/uellue/reprocoverage you find a repository that helps reproduce the issue, with instructions in the README.md.
coverage debug sys
(reprotest313) PS C:\Users\weber\Documents\src\reprocoverage> .\.tox\py313\Scripts\coverage.exe debug sys
-- sys -------------------------------------------------------
coverage_version: 7.13.3
coverage_module: C:\Users\weber\Documents\src\reprocoverage\.tox\py313\Lib\site-packages\coverage\__init__.py
core: -none-
CTracer: available from C:\Users\weber\Documents\src\reprocoverage\.tox\py313\Lib\site-packages\coverage\tracer.cp313-win_amd64.pyd
plugins.file_tracers: -none-
plugins.configurers: -none-
plugins.context_switchers: -none-
configs_attempted: C:\Users\weber\Documents\src\reprocoverage\.coveragerc
C:\Users\weber\Documents\src\reprocoverage\.coveragerc.toml
C:\Users\weber\Documents\src\reprocoverage\setup.cfg
configs_read: C:\Users\weber\Documents\src\reprocoverage\setup.cfg
config_file: C:\Users\weber\Documents\src\reprocoverage\setup.cfg
config_contents: b"[flake8]\r\nmax-line-length = 100\r\nignore = E24,E121,E123,E126,E128,E133,E226,E241,E242,E704,W503\r\nexclude = .git,__pycache__,.tox,build,dist,node_modules,TOXENV\r\n\r\n[coverage:run]\r\nbranch = True\r\ninclude = src/\r\n\r\n[coverage:report]\r\n# Regexes for lines to exclude from consideration\r\nexclude_lines =\r\n # Have to re-enable the standard pragma\r\n pragma: no cover\r\n\r\n # Don't complain about missing debug-only code:\r\n def __repr__\r\n if self\\.debug\r\n\r\n # Don't complain about typing branches:\r\n if TYPE_CHECKING\r\n if typing.TYPE_CHECKING\r\n\r\n # Don't complain if tests don't hit defensive assertion code:\r\n raise AssertionError\r\n raise NotImplementedError\r\n\r\n # Don't complain if non-runnable code isn't run:\r\n if 0:\r\n if False:\r\n if __name__ == .__main__.:\r\n\r\n# note: pytest config moved to pytest.ini beause of https://github.com/pypa/pip/issues/5182 and https://github.com/pytest-dev/pytest/issues/3062\r\n"
data_file: -none-
python: 3.13.11 | packaged by conda-forge | (main, Jan 26 2026, 23:43:44) [MSC v.1944 64 bit (AMD64)]
platform: Windows-2025Server-10.0.26100-SP0
implementation: CPython
build: ('main', 'Jan 26 2026 23:43:44')
gil_enabled: True
executable: C:\Users\weber\Documents\src\reprocoverage\.tox\py313\Scripts\python.EXE
pth_files: C:\Users\weber\Documents\src\reprocoverage\.tox\py313\Lib\site-packages\a1_coverage.pth
def_encoding: utf-8
fs_encoding: utf-8
pid: 22684
cwd: C:\Users\weber\Documents\src\reprocoverage
path: C:\Users\weber\Documents\src\reprocoverage\.tox\py313\Scripts\coverage.exe
C:\Users\weber\.conda\envs\reprotest313\python313.zip
C:\Users\weber\.conda\envs\reprotest313\DLLs
C:\Users\weber\.conda\envs\reprotest313\Lib
C:\Users\weber\.conda\envs\reprotest313
C:\Users\weber\Documents\src\reprocoverage\.tox\py313
C:\Users\weber\Documents\src\reprocoverage\.tox\py313\Lib\site-packages
C:\Users\weber\Documents\src\reprocoverage\.tox\py313\Lib\site-packages\win32
C:\Users\weber\Documents\src\reprocoverage\.tox\py313\Lib\site-packages\win32\lib
C:\Users\weber\Documents\src\reprocoverage\.tox\py313\Lib\site-packages\Pythonwin
environment: CONDA_PYTHON_EXE = C:\ProgramData\Miniconda3\python.exe
TEMP = C:\Users\weber\AppData\Local\Temp\3
TMP = C:\Users\weber\AppData\Local\Temp\3
command_line: C:\Users\weber\Documents\src\reprocoverage\.tox\py313\Scripts\coverage debug sys
time: 2026-02-04 18:01:15
What commands should we run to reproduce the problem? Be specific. Include everything, even
git clone,pip > install, and so on. Explain like we're five!
Clone the repo linked above, change into the repo's main folder and follow the instructions in the README.md:
- On Windows (tested with Windows Server 2025 Standard) create and activate a Python 3.13 environment, e.g.
conda create -n reprocoverage313 python=3.13conda activate reprocoverage313
- Install tox:
pip install tox - Run tox:
tox -e py313
What happens
pytest hangs on the second test.
What should happen
pytest runs through.
How to make it not hang
a) Pin the coverage version in pyproject.toml to coverage<7.13.3
b) Remove the --cov=libertem in tox.ini
CC @sk1p