coveragepy
coveragepy copied to clipboard
(Python 3.14) 7.11.1-7.11.3 performance 2x slower than 7.11.0
Describe the bug Running our tests with coverage 7.11.3 is taking about twice as long as 7.11.0. This only occurs on Python 3.14.
To Reproduce How can we reproduce the problem? Please be specific. Don't link to a failing CI job. Think about the time it will take us to recreate your situation: the easier you make it, the more likely your issue will be addressed.
Sorry, only have link to CI for now: https://github.com/MetRonnie/cylc-flow/actions/runs/19274020446/workflow
Answer the questions below:
What version of Python are you using?
3.14.0 (h32b2ec7_102_cp314 conda-forge)
What version of coverage.py shows the problem? The output of
coverage debug sysis helpful.
7.11.1+
coverage debug sys output
-- sys -------------------------------------------------------
coverage_version: 7.11.3
coverage_module: /home/runner/micromamba/envs/cylc-functional-test/lib/python3.14/site-packages/coverage/__init__.py
core: -none-
CTracer: available from /home/runner/micromamba/envs/cylc-functional-test/lib/python3.14/site-packages/coverage/tracer.cpython-314-x86_64-linux-gnu.so
plugins.file_tracers: -none-
plugins.configurers: -none-
plugins.context_switchers: -none-
configs_attempted: /home/runner/work/cylc-flow/cylc-flow/.coveragerc
configs_read: /home/runner/work/cylc-flow/cylc-flow/.coveragerc
config_file: /home/runner/work/cylc-flow/cylc-flow/.coveragerc
config_contents: b"# This is the Coverage.py configuration file. This is used by CI when running\n# the tests and collecting coverage\n\n[run]\nbranch = True\ncover_pylib = False\nconcurrency = thread\ndata_file = .coverage\ndisable_warnings =\n trace-changed\n module-not-python\n module-not-imported\n no-data-collected\n module-not-measured\nomit =\n tests/*\n */cylc/flow/*_pb2.py\n cylc/flow/etc/*\n cylc/flow/scripts/report_timings.py\nparallel = True\nsource = ./cylc\ntimid = False\n\n[report]\nexclude_lines =\n pragma: no cover\n\n # Don't complain if tests don't hit defensive assertion code:\n raise NotImplementedError\n return NotImplemented\n\n # Ignore type checking code:\n if (typing\\.)?TYPE_CHECKING:\n @overload( |$)\n\n # Don't complain about ellipsis (exception classes, typing overloads etc):\n \\.\\.\\.\n\n # Ignore abstract methods\n @(abc\\.)?abstractmethod\n\nfail_under=0\nignore_errors = False\nomit =\n tests/*\n
data_file: -none-
python: 3.14.0 | packaged by conda-forge | (main, Oct 22 2025, 23:24:08) [GCC 14.3.0]
platform: Linux-6.11.0-1018-azure-x86_64-with-glibc2.39
implementation: CPython
build: main
Oct 22 2025 23:24:08
gil_enabled: True
executable: /home/runner/micromamba/envs/cylc-functional-test/bin/python3.14
def_encoding: utf-8
fs_encoding: utf-8
pid: 2819
cwd: /home/runner/work/cylc-flow/cylc-flow
path: /home/runner/micromamba/envs/cylc-functional-test/bin
/home/runner/micromamba/envs/cylc-functional-test/lib/python314.zip
/home/runner/micromamba/envs/cylc-functional-test/lib/python3.14
/home/runner/micromamba/envs/cylc-functional-test/lib/python3.14/lib-dynload
/home/runner/micromamba/envs/cylc-functional-test/lib/python3.14/site-packages
__editable__.cylc_flow-8.7.0.dev0.finder.__path_hook__
environment: CYLC_COVERAGE = 1
HOME = /home/runner
command_line: /home/runner/micromamba/envs/cylc-functional-test/bin/coverage debug sys
time: 2025-11-11 18:02:14
What versions of what packages do you have installed? The output of
pip freezeis helpful.
pip freeze output
aiosmtpd==1.4.6
ansimarkup==2.1.0
async-generator==1.10
atpublic==6.0.2
attrs==25.4.0
bandit==1.8.6
certifi==2025.10.5
charset-normalizer==3.4.4
classify-imports==4.2.0
click==8.3.0
colorama==0.4.6
contourpy==1.3.3
coverage==7.11.3
cycler==0.12.1
-e git+https://github.com/MetRonnie/cylc-flow@89989f5619ebd709222c62cebfa938c9173ce59d#egg=cylc_flow
execnet==2.1.1
flake8==7.3.0
flake8-broken-line==1.0.0
flake8-bugbear==25.10.21
flake8-builtins==3.1.0
flake8-comprehensions==3.17.0
flake8-debugger==4.1.2
flake8-implicit-str-concat==0.6.0
flake8-mutable==1.2.0
flake8-type-checking==3.0.0
fonttools==4.60.1
graphene==3.4.3
graphql-core==3.2.7
graphql-relay==3.2.0
idna==3.11
iniconfig==2.3.0
Jinja2==3.0.3
kiwisolver==1.4.9
markdown-it-py==4.0.0
MarkupSafe==3.0.3
matplotlib==3.10.7
mccabe==0.7.0
mdurl==0.1.2
metomi-isodatetime==1!3.1.0
mypy==1.18.2
mypy_extensions==1.1.0
numpy==2.3.4
packaging==25.0
pathspec==0.12.1
pillow==12.0.0
pluggy==1.6.0
protobuf==6.33.0
psutil==7.1.3
pycodestyle==2.14.0
pyflakes==3.4.0
Pygments==2.19.2
Pympler==1.1
pyparsing==3.2.5
pytest==9.0.0
pytest-asyncio==1.3.0
pytest-cov==7.0.0
pytest-mock==3.15.1
pytest-xdist==3.8.0
python-dateutil==2.9.0.post0
PyYAML==6.0.3
pyzmq==27.1.0
requests==2.32.5
rich==14.2.0
six==1.17.0
sqlparse==0.5.3
stevedore==5.5.0
testfixtures==10.0.0
towncrier==25.8.0
types-Jinja2==2.11.9
types-MarkupSafe==1.1.10
types-protobuf==6.32.1.20251105
typing_extensions==4.15.0
urllib3==2.5.0
urwid==3.0.3
wcwidth==0.2.14
What code shows the problem? Give us a specific commit of a specific repo that we can check out. If you've already worked around the problem, please provide a commit before that fix.
https://github.com/cylc/cylc-flow/tree/2d33667a78ee256b3d263ad3dbeb1d65a3019212
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!
Steps listed in https://github.com/MetRonnie/cylc-flow/actions/runs/19274020446/workflow
Expected behavior Performance should not be slower than 7.11.0. From the release notes, it should be faster, if anything.
Additional context
https://github.com/MetRonnie/cylc-flow/actions/runs/19274020446/usage