]> git.ipfire.org Git - thirdparty/Python/cpython.git/commit
[3.13] gh-123022: Fix crash with `Py_Initialize` in background thread (GH-123052...
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Sat, 17 Aug 2024 20:38:02 +0000 (22:38 +0200)
committerGitHub <noreply@github.com>
Sat, 17 Aug 2024 20:38:02 +0000 (20:38 +0000)
commitff58c3cb48a68949b2058f3642c9088b7d498e36
treee688091cdeac181a0c2bf6fae0bb52b779baa4e0
parent6001deacb73e10e6f4b6fc16286cfda2babeb59e
[3.13] gh-123022: Fix crash with  `Py_Initialize` in background thread (GH-123052) (#123114)

Check that the current default heap is initialized in
`_mi_os_get_aligned_hint` and `mi_os_claim_huge_pages`.

The mimalloc function `_mi_os_get_aligned_hint` assumes that there is an
initialized default heap. This is true for our main thread, but not for
background threads. The problematic code path is usually called during
initialization (i.e., `Py_Initialize`), but it may also be called if the
program allocates large amounts of memory in total.

The crash only affected the free-threaded build.
(cherry picked from commit d061ffea7b408861d0a9d311e92c363da284971d)

Co-authored-by: Sam Gross <colesbury@gmail.com>
Lib/test/test_embed.py
Misc/NEWS.d/next/Core_and_Builtins/2024-08-15-19-28-43.gh-issue-123022.m3EF9E.rst [new file with mode: 0644]
Objects/mimalloc/os.c
Programs/_testembed.c