Linux: Fix another group of rare crashes that could occur when shutting down an
interpeter running multiple threads. See issue 325 <https://github.com/python-greenlet/greenlet/issues/325>_.
2.0.0rc4 (2022-10-30)
Linux: Fix a rare crash that could occur when shutting down an
interpreter running multiple threads, when some of those threads are
in greenlets making calls to functions that release the GIL.
2.0.0rc3 (2022-10-29)
Python 2: Fix a crash that could occur when raising an old-style
instance object.
2.0.0rc2 (2022-10-28)
Workaround a CPython 3.8 bug <https://github.com/python/cpython/issues/81308>_ that could cause
the interpreter to crash during an early phase of shutdown with the
message "Fatal Python error: Python memory allocator called without
holding the GI." This only impacted CPython 3.8a3 through CPython
3.9a5; the fix is only applied to CPython 3.8 releases (please don't
use an early alpha release of CPython 3.9).
2.0.0rc1 (2022-10-27)
Deal gracefully with greenlet switches that occur while deferred
deallocation of objects is happening using CPython's "trash can"
mechanism. Previously, if a large nested container held items that
switched greenlets during delayed deallocation, and that second
greenlet also invoked the trash can, CPython's internal state could
become corrupt. This was visible as an assertion error in debug
builds. Now, the relevant internal state is saved and restored
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 commands and options
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)
Bumps greenlet from 0.4.17 to 2.0.0.
Changelog
Sourced from greenlet's changelog.
... (truncated)
Commits
f9c29d9
Preparing release 2.0.04ba1df6
Back to development: 2.0.0rc669f4cfc
Preparing release 2.0.0rc57514666
Merge pull request #326 from python-greenlet/issue3250d16498
FIx 325 by more careful manual handling of a reference.c9c27c9
Back to development: 2.0.0rc54ad72bb
Preparing release 2.0.0rc423f9123
Merge pull request #324 from python-greenlet/noexcept-crashing-on-linuxbb19adf
win32: simplify the test matrix.8956216
Win32: Using /EHr, annotate inner_bootstrap again as noexcept to try to force...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 commands and options
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)