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.13
conda 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
Describe the bug
Pytest hangs when coverage is collected with
coverage==7.13.3on Windows under specific conditions: run withtoxand 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 sysClone the repo linked above, change into the repo's main folder and follow the instructions in the README.md:
conda create -n reprocoverage313 python=3.13conda activate reprocoverage313pip install toxtox -e py313What happens
pytesthangs on the second test.What should happen
pytestruns through.How to make it not hang
a) Pin the
coverageversion inpyproject.tomltocoverage<7.13.3b) Remove the
--cov=libertemintox.iniCC @sk1p