New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Setting a signal handler gets multiprocessing.Pool stuck #82408
Comments
Running It appears that if I stop setting that signal handler it doesn't get stuck. Unfortunately I need it to perform critical cleanup. This is what I got from gdb: (gdb) py-bt
Traceback (most recent call first):
File "/usr/lib/python3.8/multiprocessing/synchronize.py", line 95, in __enter__
return self._semlock.__enter__()
File "/usr/lib/python3.8/multiprocessing/queues.py", line 355, in get
with self._rlock:
File "/usr/lib/python3.8/multiprocessing/pool.py", line 370, in worker
`func` and (a, b) becomes func(a, b).
File "/usr/lib/python3.8/multiprocessing/process.py", line 108, in run
self._target(*self._args, **self._kwargs)
File "/usr/lib/python3.8/multiprocessing/process.py", line 569, in _bootstrap
File "/usr/lib/python3.8/multiprocessing/popen_fork.py", line 75, in _launch
code = process_obj._bootstrap(parent_sentinel=child_r)
File "/usr/lib/python3.8/multiprocessing/popen_fork.py", line 19, in __init__
self._launch(process_obj)
File "/usr/lib/python3.8/multiprocessing/context.py", line 276, in _Popen
return Popen(process_obj)
File "/usr/lib/python3.8/multiprocessing/process.py", line 633, in start
File "/usr/lib/python3.8/multiprocessing/pool.py", line 838, in _repopulate_pool_static
self._length = None
File "/usr/lib/python3.8/multiprocessing/pool.py", line 559, in _repopulate_pool
outqueue.put(None)
File "/usr/lib/python3.8/multiprocessing/pool.py", line 212, in __init__
self._repopulate_pool()
File "/usr/lib/python3.8/multiprocessing/context.py", line 375, in Pool
File "mp-bug-python2.8.py", line 21, in <module> And without the macros: #0 0x00007f51c79fb6d6 in futex_abstimed_wait_cancelable (private=128, abstime=0x0, expected=0, futex_word=0x7f51c7e29000) at ../sysdeps/unix/sysv/linux/futex-internal.h:205 This issue doesn't reproduce on python 3.7 or earlier. |
Several things here:
|
atexit proved time and time again to be unreliable, not really an option. Not all programs shutdown nicely enough for atexit. Should I tell users "use forkserver on 3.8 because broken stuff"? |
Looks like a duplicate of my previous issue https://bugs.python.org/issue29759 Unfortunately some frameworks like Gunicorn are extensively using signal handlers for their internal purposes. |
Reproducing issue with attached test (Python 3.8.2 on Ubuntu 16.04). |
Attached working patch. 2329a2330,2331
All passing. |
4662: Update pytest-mock requirement from ~=3.8.2 to ~=3.9.0 r=jenshnielsen a=dependabot[bot] Updates the requirements on [pytest-mock](https://github.com/pytest-dev/pytest-mock) to permit the latest version. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pytest-dev/pytest-mock/releases">pytest-mock's releases</a>.</em></p> <blockquote> <h2>v3.9.0</h2> <h1>Releases</h1> <h2>3.9.0 (2022-09-28)</h2> <ul> <li>Expose <code>NonCallableMagicMock</code> via the <code>mocker</code> fixture (<a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/pull/318">#318</a>).</li> </ul> <h2>3.8.2 (2022-07-05)</h2> <ul> <li>Fixed <code>AsyncMock</code> support for Python 3.7+ in <code>mocker.async_stub</code> (<a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/pull/302">#302</a>).</li> </ul> <h2>3.8.1 (2022-06-24)</h2> <ul> <li>Fixed regression caused by an explicit <code>mock</code> dependency in the code (<a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/issues/298">#298</a>).</li> </ul> <h2>3.8.0 (2022-06-24)</h2> <ul> <li>Add <code>MockerFixture.async_mock</code> method. Thanks <a href="https://github.com/PerchunPak"><code>`@PerchunPak</code></a>` for the PR (<a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/pull/296">#296</a>).</li> </ul> <h2>3.7.0 (2022-01-28)</h2> <ul> <li>Python 3.10 now officially supported.</li> <li>Dropped support for Python 3.6.</li> </ul> <h2>3.6.1 (2021-05-06)</h2> <ul> <li>Fix <code>mocker.resetall()</code> when using <code>mocker.spy()</code> (<a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/issues/237">#237</a>). Thanks <a href="https://github.com/blaxter"><code>`@blaxter</code></a>` for the report and <a href="https://github.com/shadycuz"><code>`@shadycuz</code></a>` for the PR.</li> </ul> <h2>3.6.0 (2021-04-24)</h2> <ul> <li>pytest-mock no longer supports Python 3.5.</li> <li>Correct type annotations for <code>mocker.patch.object</code> to also include the string form. Thanks <a href="https://github.com/plannigan"><code>`@plannigan</code></a>` for the PR (<a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/pull/235">#235</a>).</li> <li><code>reset_all</code> now supports <code>return_value</code> and <code>side_effect</code> keyword arguments. Thanks <a href="https://github.com/alex-marty"><code>`@alex-marty</code></a>` for the PR (<a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/pull/214">#214</a>).</li> </ul> <h2>3.5.1 (2021-01-10)</h2> <ul> <li>Use <code>inspect.getattr_static</code> instead of resorting to <code>object.__getattribute__</code> magic. This should better comply with objects which implement a custom descriptor protocol. Thanks <a href="https://github.com/yesthesoup"><code>`@yesthesoup</code></a>` for the PR (<a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/pull/224">#224</a>).</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pytest-dev/pytest-mock/blob/main/CHANGELOG.rst">pytest-mock's changelog</a>.</em></p> <blockquote> <h2>3.9.0 (2022-09-28)</h2> <ul> <li>Expose <code>NonCallableMagicMock</code> via the <code>mocker</code> fixture (<code>[#318](https://github.com/pytest-dev/pytest-mock/issues/318)</code>_).</li> </ul> <p>.. _<a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/issues/318">#318</a>: <a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/pull/318">pytest-dev/pytest-mock#318</a></p> <h2>3.8.2 (2022-07-05)</h2> <ul> <li>Fixed <code>AsyncMock</code> support for Python 3.7+ in <code>mocker.async_stub</code> (<code>[#302](https://github.com/pytest-dev/pytest-mock/issues/302)</code>_).</li> </ul> <p>.. _<a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/issues/302">#302</a>: <a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/pull/302">pytest-dev/pytest-mock#302</a></p> <h2>3.8.1 (2022-06-24)</h2> <ul> <li>Fixed regression caused by an explicit <code>mock</code> dependency in the code (<code>[#298](https://github.com/pytest-dev/pytest-mock/issues/298)</code>_).</li> </ul> <p>.. _<a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/issues/298">#298</a>: <a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/issues/298">pytest-dev/pytest-mock#298</a></p> <h2>3.8.0 (2022-06-24)</h2> <ul> <li>Add <code>MockerFixture.async_mock</code> method. Thanks <code>`@PerchunPak</code>_` for the PR (<code>[#296](https://github.com/pytest-dev/pytest-mock/issues/296)</code>_).</li> </ul> <p>.. _<a href="https://github.com/PerchunPak"><code>`@PerchunPak</code></a>:` <a href="https://github.com/PerchunPak">https://github.com/PerchunPak</a> .. _<a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/issues/296">#296</a>: <a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/pull/296">pytest-dev/pytest-mock#296</a></p> <h2>3.7.0 (2022-01-28)</h2> <ul> <li>Python 3.10 now officially supported.</li> <li>Dropped support for Python 3.6.</li> </ul> <h2>3.6.1 (2021-05-06)</h2> <ul> <li>Fix <code>mocker.resetall()</code> when using <code>mocker.spy()</code> (<code>[#237](https://github.com/pytest-dev/pytest-mock/issues/237)</code><em>). Thanks <code>`@blaxter</code></em>` for the report and <code>`@shadycuz</code>_` for the PR.</li> </ul> <p>.. _<a href="https://github.com/blaxter"><code>`@blaxter</code></a>:` <a href="https://github.com/blaxter">https://github.com/blaxter</a> .. _<a href="https://github.com/shadycuz"><code>`@shadycuz</code></a>:` <a href="https://github.com/shadycuz">https://github.com/shadycuz</a> .. _<a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/issues/237">#237</a>: <a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/issues/237">pytest-dev/pytest-mock#237</a></p> <h2>3.6.0 (2021-04-24)</h2> <ul> <li> <p>pytest-mock no longer supports Python 3.5.</p> </li> <li> <p>Correct type annotations for <code>mocker.patch.object</code> to also include the string form.</p> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/pytest-dev/pytest-mock/commit/64a34f64215d779dc0384acc3cdd5a164544a60a"><code>64a34f6</code></a> Update CHANGELOG for 3.9.0</li> <li><a href="https://github.com/pytest-dev/pytest-mock/commit/4e31630aad7dca66258f232e6b62754dadd79f2b"><code>4e31630</code></a> Add test for NonCallableMagicMock</li> <li><a href="https://github.com/pytest-dev/pytest-mock/commit/247b9d46e6fdfc696257c4daade9c08a195c45aa"><code>247b9d4</code></a> Expose NonCallableMagicMock in MockerFixture</li> <li><a href="https://github.com/pytest-dev/pytest-mock/commit/0fd7fea3eece2e2dd09affeed39f0e3a50295f0d"><code>0fd7fea</code></a> Update link to notes about usage as context manager (<a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/issues/313">#313</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-mock/commit/903b97283d1c8271596d748a9a8eef5038f96bb6"><code>903b972</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/issues/311">#311</a> from pytest-dev/pre-commit-ci-update-config</li> <li><a href="https://github.com/pytest-dev/pytest-mock/commit/a5a33ac9461e469736ed0d2ceae135f2cfb3fad0"><code>a5a33ac</code></a> [pre-commit.ci] pre-commit autoupdate</li> <li><a href="https://github.com/pytest-dev/pytest-mock/commit/d01b267622b8ae21f977115edc624638da0f2508"><code>d01b267</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/issues/309">#309</a> from pytest-dev/pre-commit-ci-update-config</li> <li><a href="https://github.com/pytest-dev/pytest-mock/commit/736f2ab0caa4a51544627773818d1ef4822ab31c"><code>736f2ab</code></a> [pre-commit.ci] pre-commit autoupdate</li> <li><a href="https://github.com/pytest-dev/pytest-mock/commit/59b60cb85116016e2e5e458d00b8ca3c5b267178"><code>59b60cb</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/issues/308">#308</a> from juliangilbey/add-static-dir</li> <li><a href="https://github.com/pytest-dev/pytest-mock/commit/305e0829c4100d1316dd30e91d978e56602cf893"><code>305e082</code></a> Add docs/_static directory to allow sphinx-build to work without warnings</li> <li>Additional commits viewable in <a href="https://github.com/pytest-dev/pytest-mock/compare/v3.8.2...v3.9.0">compare view</a></li> </ul> </details> <br /> You can trigger a rebase of this PR by commenting ``@dependabot` rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - ``@dependabot` rebase` will rebase this PR - ``@dependabot` recreate` will recreate this PR, overwriting any edits that have been made to it - ``@dependabot` merge` will merge this PR after your CI passes on it - ``@dependabot` squash and merge` will squash and merge this PR after your CI passes on it - ``@dependabot` cancel merge` will cancel a previously requested merge and block automerging - ``@dependabot` reopen` will reopen this PR if it is closed - ``@dependabot` close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - ``@dependabot` ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - ``@dependabot` ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - ``@dependabot` ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> 4663: Update pytest-cov requirement from ~=3.0.0 to ~=4.0.0 r=jenshnielsen a=dependabot[bot] Updates the requirements on [pytest-cov](https://github.com/pytest-dev/pytest-cov) to permit the latest version. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pytest-dev/pytest-cov/blob/master/CHANGELOG.rst">pytest-cov's changelog</a>.</em></p> <blockquote> <h2>4.0.0 (2022-09-28)</h2> <p><strong>Note that this release drops support for multiprocessing.</strong></p> <ul> <li> <p><code>--cov-fail-under</code> no longer causes <code>pytest --collect-only</code> to fail Contributed by Zac Hatfield-Dodds in <code>[#511](pytest-dev/pytest-cov#511) <https://github.com/pytest-dev/pytest-cov/pull/511></code>_.</p> </li> <li> <p>Dropped support for multiprocessing (mostly because <code>issue 82408 <https://github.com/python/cpython/issues/82408></code>_). This feature was mostly working but very broken in certain scenarios and made the test suite very flaky and slow.</p> <p>There is builtin multiprocessing support in coverage and you can migrate to that. All you need is this in your <code>.coveragerc</code>::</p> <p>[run] concurrency = multiprocessing parallel = true sigterm = true</p> </li> <li> <p>Fixed deprecation in <code>setup.py</code> by trying to import setuptools before distutils. Contributed by Ben Greiner in <code>[#545](pytest-dev/pytest-cov#545) <https://github.com/pytest-dev/pytest-cov/pull/545></code>_.</p> </li> <li> <p>Removed undesirable new lines that were displayed while reporting was disabled. Contributed by Delgan in <code>[#540](pytest-dev/pytest-cov#540) <https://github.com/pytest-dev/pytest-cov/pull/540></code>_.</p> </li> <li> <p>Documentation fixes. Contributed by Andre Brisco in <code>[#543](pytest-dev/pytest-cov#543) <https://github.com/pytest-dev/pytest-cov/pull/543></code>_ and Colin O'Dell in <code>[#525](pytest-dev/pytest-cov#525) <https://github.com/pytest-dev/pytest-cov/pull/525></code>_.</p> </li> <li> <p>Added support for LCOV output format via <code>--cov-report=lcov</code>. Only works with coverage 6.3+. Contributed by Christian Fetzer in <code>[#536](pytest-dev/pytest-cov#536) <https://github.com/pytest-dev/pytest-cov/issues/536></code>_.</p> </li> <li> <p>Modernized pytest hook implementation. Contributed by Bruno Oliveira in <code>[#549](pytest-dev/pytest-cov#549) <https://github.com/pytest-dev/pytest-cov/pull/549></code>_ and Ronny Pfannschmidt in <code>[#550](pytest-dev/pytest-cov#550) <https://github.com/pytest-dev/pytest-cov/pull/550></code>_.</p> </li> </ul> <h2>3.0.0 (2021-10-04)</h2> <p><strong>Note that this release drops support for Python 2.7 and Python 3.5.</strong></p> <ul> <li>Added support for Python 3.10 and updated various test dependencies. Contributed by Hugo van Kemenade in <code>[#500](pytest-dev/pytest-cov#500) <https://github.com/pytest-dev/pytest-cov/pull/500></code>_.</li> <li>Switched from Travis CI to GitHub Actions. Contributed by Hugo van Kemenade in <code>[#494](pytest-dev/pytest-cov#494) <https://github.com/pytest-dev/pytest-cov/pull/494></code>_ and <code>[#495](pytest-dev/pytest-cov#495) <https://github.com/pytest-dev/pytest-cov/pull/495></code>_.</li> <li>Add a <code>--cov-reset</code> CLI option. Contributed by Danilo Šegan in <code>[#459](pytest-dev/pytest-cov#459) <https://github.com/pytest-dev/pytest-cov/pull/459></code>_.</li> <li>Improved validation of <code>--cov-fail-under</code> CLI option. Contributed by ... Ronny Pfannschmidt's desire for skark in <code>[#480](pytest-dev/pytest-cov#480) <https://github.com/pytest-dev/pytest-cov/pull/480></code>_.</li> <li>Dropped Python 2.7 support.</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/pytest-dev/pytest-cov/commit/28db055bebbf3ee016a2144c8b69dd7b80b48cc5"><code>28db055</code></a> Bump version: 3.0.0 → 4.0.0</li> <li><a href="https://github.com/pytest-dev/pytest-cov/commit/57e9354a86f658556fe6f15f07625c4b9a9ddf53"><code>57e9354</code></a> Really update the changelog.</li> <li><a href="https://github.com/pytest-dev/pytest-cov/commit/56b810b91c9ae15d1462633c6a8a1b522ebf8e65"><code>56b810b</code></a> Update chagelog.</li> <li><a href="https://github.com/pytest-dev/pytest-cov/commit/f7fced579e36b72b57e14768026467e4c4511a40"><code>f7fced5</code></a> Add support for LCOV output</li> <li><a href="https://github.com/pytest-dev/pytest-cov/commit/1211d3134bb74abb7b00c3c2209091aaab440417"><code>1211d31</code></a> Fix flake8 error</li> <li><a href="https://github.com/pytest-dev/pytest-cov/commit/b077753f5d9d200815fe500d0ef23e306784e65b"><code>b077753</code></a> Use modern approach to specify hook options</li> <li><a href="https://github.com/pytest-dev/pytest-cov/commit/00713b3fec90cb8c98a9e4bfb3212e574c08e67b"><code>00713b3</code></a> removed incorrect docs on <code>data_file</code>.</li> <li><a href="https://github.com/pytest-dev/pytest-cov/commit/b3dda36fddd3ca75689bb3645cd320aa8392aaf3"><code>b3dda36</code></a> Improve workflow with a collecting status check. (<a href="https://github-redirect.dependabot.com/pytest-dev/pytest-cov/issues/548">#548</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-cov/commit/218419f665229d61356f1eea3ddc8e18aa21f87c"><code>218419f</code></a> Prevent undesirable new lines to be displayed when report is disabled</li> <li><a href="https://github.com/pytest-dev/pytest-cov/commit/60b73ec673c60942a3cf052ee8a1fdc442840558"><code>60b73ec</code></a> migrate build command from distutils to setuptools</li> <li>Additional commits viewable in <a href="https://github.com/pytest-dev/pytest-cov/compare/v3.0.0...v4.0.0">compare view</a></li> </ul> </details> <br /> You can trigger a rebase of this PR by commenting ``@dependabot` rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - ``@dependabot` rebase` will rebase this PR - ``@dependabot` recreate` will recreate this PR, overwriting any edits that have been made to it - ``@dependabot` merge` will merge this PR after your CI passes on it - ``@dependabot` squash and merge` will squash and merge this PR after your CI passes on it - ``@dependabot` cancel merge` will cancel a previously requested merge and block automerging - ``@dependabot` reopen` will reopen this PR if it is closed - ``@dependabot` close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - ``@dependabot` ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - ``@dependabot` ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - ``@dependabot` ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…ersion 4.0.0 Andre Brisco (1): removed incorrect docs on `data_file`. Arthur Rio (1): Update Changelog to reflect toml requirement change Ben Greiner (1): migrate build command from distutils to setuptools Bruno Oliveira (2): Use modern approach to specify hook options Fix flake8 error Christian Fetzer (1): Add support for LCOV output Colin O'Dell (1): Add sample error a user might encounter Delgan (1): Prevent undesirable new lines to be displayed when report is disabled Greg Smethells (1): Fix spelling error Ionel Cristian Mărieș (25): Add extra envs. Skip this on newer xdist. Parametrize the spawn method. Remove appveyor and update various skel things. Remove unnecessary parametrization. Fix statement count. Bump deps and trim deps to strictly necessary. Cleanup what can only be an accidental fatfinger copypasta. Remove another dupe entry. Fix `cannot import name 'environmentfilter' from 'jinja2'` issue. Remove our crummy multiprocessing hooks and work on some tests with the builtin mp support in coverage. Reveert this change that wastes me time typing up full paths. Throwing in the towel. I don't care anymore. I don't see any workarounds for python/cpython#82408. Fix bad refactor. Update changelog and remove last cruft. Fix pypy envs. Add an xfail. Give proper name to workflow. More xfails. More xfails. Even more xfails. Remove dupe workflow. Improve workflow with a collecting status check. (#548) Update chagelog. Really update the changelog. Bump version: 3.0.0 → 4.0.0 Kian-Meng, Ang (1): Fix typos Michał Górny (1): Update test_invalid_coverage_source for coverage-6.2 Zac-HD (1): --co disables --cov-fail-under pre-commit-ci[bot] (5): [pre-commit.ci] pre-commit autoupdate [pre-commit.ci] auto fixes from pre-commit.com hooks [pre-commit.ci] pre-commit autoupdate [pre-commit.ci] pre-commit autoupdate [pre-commit.ci] pre-commit autoupdate
Bumps [pytest-cov](https://github.com/pytest-dev/pytest-cov) from 3.0.0 to 4.0.0. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pytest-dev/pytest-cov/blob/master/CHANGELOG.rst">pytest-cov's changelog</a>.</em></p> <blockquote> <h2>4.0.0 (2022-09-28)</h2> <p><strong>Note that this release drops support for multiprocessing.</strong></p> <ul> <li> <p><code>--cov-fail-under</code> no longer causes <code>pytest --collect-only</code> to fail Contributed by Zac Hatfield-Dodds in <code>[#511](pytest-dev/pytest-cov#511) <https://github.com/pytest-dev/pytest-cov/pull/511></code>_.</p> </li> <li> <p>Dropped support for multiprocessing (mostly because <code>issue 82408 <https://github.com/python/cpython/issues/82408></code>_). This feature was mostly working but very broken in certain scenarios and made the test suite very flaky and slow.</p> <p>There is builtin multiprocessing support in coverage and you can migrate to that. All you need is this in your <code>.coveragerc</code>::</p> <p>[run] concurrency = multiprocessing parallel = true sigterm = true</p> </li> <li> <p>Fixed deprecation in <code>setup.py</code> by trying to import setuptools before distutils. Contributed by Ben Greiner in <code>[#545](pytest-dev/pytest-cov#545) <https://github.com/pytest-dev/pytest-cov/pull/545></code>_.</p> </li> <li> <p>Removed undesirable new lines that were displayed while reporting was disabled. Contributed by Delgan in <code>[#540](pytest-dev/pytest-cov#540) <https://github.com/pytest-dev/pytest-cov/pull/540></code>_.</p> </li> <li> <p>Documentation fixes. Contributed by Andre Brisco in <code>[#543](pytest-dev/pytest-cov#543) <https://github.com/pytest-dev/pytest-cov/pull/543></code>_ and Colin O'Dell in <code>[#525](pytest-dev/pytest-cov#525) <https://github.com/pytest-dev/pytest-cov/pull/525></code>_.</p> </li> <li> <p>Added support for LCOV output format via <code>--cov-report=lcov</code>. Only works with coverage 6.3+. Contributed by Christian Fetzer in <code>[#536](pytest-dev/pytest-cov#536) <https://github.com/pytest-dev/pytest-cov/issues/536></code>_.</p> </li> <li> <p>Modernized pytest hook implementation. Contributed by Bruno Oliveira in <code>[#549](pytest-dev/pytest-cov#549) <https://github.com/pytest-dev/pytest-cov/pull/549></code>_ and Ronny Pfannschmidt in <code>[#550](pytest-dev/pytest-cov#550) <https://github.com/pytest-dev/pytest-cov/pull/550></code>_.</p> </li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/pytest-dev/pytest-cov/commit/28db055bebbf3ee016a2144c8b69dd7b80b48cc5"><code>28db055</code></a> Bump version: 3.0.0 → 4.0.0</li> <li><a href="https://github.com/pytest-dev/pytest-cov/commit/57e9354a86f658556fe6f15f07625c4b9a9ddf53"><code>57e9354</code></a> Really update the changelog.</li> <li><a href="https://github.com/pytest-dev/pytest-cov/commit/56b810b91c9ae15d1462633c6a8a1b522ebf8e65"><code>56b810b</code></a> Update chagelog.</li> <li><a href="https://github.com/pytest-dev/pytest-cov/commit/f7fced579e36b72b57e14768026467e4c4511a40"><code>f7fced5</code></a> Add support for LCOV output</li> <li><a href="https://github.com/pytest-dev/pytest-cov/commit/1211d3134bb74abb7b00c3c2209091aaab440417"><code>1211d31</code></a> Fix flake8 error</li> <li><a href="https://github.com/pytest-dev/pytest-cov/commit/b077753f5d9d200815fe500d0ef23e306784e65b"><code>b077753</code></a> Use modern approach to specify hook options</li> <li><a href="https://github.com/pytest-dev/pytest-cov/commit/00713b3fec90cb8c98a9e4bfb3212e574c08e67b"><code>00713b3</code></a> removed incorrect docs on <code>data_file</code>.</li> <li><a href="https://github.com/pytest-dev/pytest-cov/commit/b3dda36fddd3ca75689bb3645cd320aa8392aaf3"><code>b3dda36</code></a> Improve workflow with a collecting status check. (<a href="https://github-redirect.dependabot.com/pytest-dev/pytest-cov/issues/548">#548</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-cov/commit/218419f665229d61356f1eea3ddc8e18aa21f87c"><code>218419f</code></a> Prevent undesirable new lines to be displayed when report is disabled</li> <li><a href="https://github.com/pytest-dev/pytest-cov/commit/60b73ec673c60942a3cf052ee8a1fdc442840558"><code>60b73ec</code></a> migrate build command from distutils to setuptools</li> <li>Additional commits viewable in <a href="https://github.com/pytest-dev/pytest-cov/compare/v3.0.0...v4.0.0">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…er (#1057) Bumps [pytest-cov](https://github.com/pytest-dev/pytest-cov) from 3.0.0 to 4.0.0. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pytest-dev/pytest-cov/blob/master/CHANGELOG.rst">pytest-cov's changelog</a>.</em></p> <blockquote> <h2>4.0.0 (2022-09-28)</h2> <p><strong>Note that this release drops support for multiprocessing.</strong></p> <ul> <li> <p><code>--cov-fail-under</code> no longer causes <code>pytest --collect-only</code> to fail Contributed by Zac Hatfield-Dodds in <code>[#511](pytest-dev/pytest-cov#511) <https://github.com/pytest-dev/pytest-cov/pull/511></code>_.</p> </li> <li> <p>Dropped support for multiprocessing (mostly because <code>issue 82408 <https://github.com/python/cpython/issues/82408></code>_). This feature was mostly working but very broken in certain scenarios and made the test suite very flaky and slow.</p> <p>There is builtin multiprocessing support in coverage and you can migrate to that. All you need is this in your <code>.coveragerc</code>::</p> <p>[run] concurrency = multiprocessing parallel = true sigterm = true</p> </li> <li> <p>Fixed deprecation in <code>setup.py</code> by trying to import setuptools before distutils. Contributed by Ben Greiner in <code>[#545](pytest-dev/pytest-cov#545) <https://github.com/pytest-dev/pytest-cov/pull/545></code>_.</p> </li> <li> <p>Removed undesirable new lines that were displayed while reporting was disabled. Contributed by Delgan in <code>[#540](pytest-dev/pytest-cov#540) <https://github.com/pytest-dev/pytest-cov/pull/540></code>_.</p> </li> <li> <p>Documentation fixes. Contributed by Andre Brisco in <code>[#543](pytest-dev/pytest-cov#543) <https://github.com/pytest-dev/pytest-cov/pull/543></code>_ and Colin O'Dell in <code>[#525](pytest-dev/pytest-cov#525) <https://github.com/pytest-dev/pytest-cov/pull/525></code>_.</p> </li> <li> <p>Added support for LCOV output format via <code>--cov-report=lcov</code>. Only works with coverage 6.3+. Contributed by Christian Fetzer in <code>[#536](pytest-dev/pytest-cov#536) <https://github.com/pytest-dev/pytest-cov/issues/536></code>_.</p> </li> <li> <p>Modernized pytest hook implementation. Contributed by Bruno Oliveira in <code>[#549](pytest-dev/pytest-cov#549) <https://github.com/pytest-dev/pytest-cov/pull/549></code>_ and Ronny Pfannschmidt in <code>[#550](pytest-dev/pytest-cov#550) <https://github.com/pytest-dev/pytest-cov/pull/550></code>_.</p> </li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/pytest-dev/pytest-cov/commit/28db055bebbf3ee016a2144c8b69dd7b80b48cc5"><code>28db055</code></a> Bump version: 3.0.0 → 4.0.0</li> <li><a href="https://github.com/pytest-dev/pytest-cov/commit/57e9354a86f658556fe6f15f07625c4b9a9ddf53"><code>57e9354</code></a> Really update the changelog.</li> <li><a href="https://github.com/pytest-dev/pytest-cov/commit/56b810b91c9ae15d1462633c6a8a1b522ebf8e65"><code>56b810b</code></a> Update chagelog.</li> <li><a href="https://github.com/pytest-dev/pytest-cov/commit/f7fced579e36b72b57e14768026467e4c4511a40"><code>f7fced5</code></a> Add support for LCOV output</li> <li><a href="https://github.com/pytest-dev/pytest-cov/commit/1211d3134bb74abb7b00c3c2209091aaab440417"><code>1211d31</code></a> Fix flake8 error</li> <li><a href="https://github.com/pytest-dev/pytest-cov/commit/b077753f5d9d200815fe500d0ef23e306784e65b"><code>b077753</code></a> Use modern approach to specify hook options</li> <li><a href="https://github.com/pytest-dev/pytest-cov/commit/00713b3fec90cb8c98a9e4bfb3212e574c08e67b"><code>00713b3</code></a> removed incorrect docs on <code>data_file</code>.</li> <li><a href="https://github.com/pytest-dev/pytest-cov/commit/b3dda36fddd3ca75689bb3645cd320aa8392aaf3"><code>b3dda36</code></a> Improve workflow with a collecting status check. (<a href="https://github-redirect.dependabot.com/pytest-dev/pytest-cov/issues/548">#548</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-cov/commit/218419f665229d61356f1eea3ddc8e18aa21f87c"><code>218419f</code></a> Prevent undesirable new lines to be displayed when report is disabled</li> <li><a href="https://github.com/pytest-dev/pytest-cov/commit/60b73ec673c60942a3cf052ee8a1fdc442840558"><code>60b73ec</code></a> migrate build command from distutils to setuptools</li> <li>Additional commits viewable in <a href="https://github.com/pytest-dev/pytest-cov/compare/v3.0.0...v4.0.0">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
ionelmc mannequin commentedSep 19, 2019
Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.
Show more details
GitHub fields:
bugs.python.org fields:
The text was updated successfully, but these errors were encountered: