Skip to content

[3.14] GH-139653: Only raise an exception (or fatal error) when the stack pointer is about to overflow the stack. (GH-141711)#141944

Merged
encukou merged 1 commit into
python:3.14from
encukou:backport-c25a070-3.14
Nov 26, 2025
Merged

[3.14] GH-139653: Only raise an exception (or fatal error) when the stack pointer is about to overflow the stack. (GH-141711)#141944
encukou merged 1 commit into
python:3.14from
encukou:backport-c25a070-3.14

Conversation

@encukou

@encukou encukou commented Nov 25, 2025

Copy link
Copy Markdown
Member

Only raises if the stack pointer is both below the limit and above the stack base. This prevents false positives for user-space threads, as the stack pointer will be outside those bounds if the stack has been swapped.

Cherry-picked from commit c25a070

I'm also including the whole page of internal documentation, rather than ignore the conflict there.

… the stack pointer is about to overflow the stack. (pythonGH-141711)

Only raises if the stack pointer is both below the limit *and* above the stack base.
This prevents false positives for user-space threads, as the stack pointer will be outside those bounds
if the stack has been swapped.

Cherry-picked from commit c25a070

@vstinner vstinner left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Good idea to backport the whole internal documentation.

@hroncok

hroncok commented Nov 25, 2025

Copy link
Copy Markdown
Contributor

Backporting this (together with #141661) makes KiCad work for me on Fedora 43.

@markshannon markshannon left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for doing this. Adding the docs is a good idea.

@markshannon markshannon added the 🔨 test-with-buildbots Test PR w/ buildbots; report in status section label Nov 25, 2025
@bedevere-bot

Copy link
Copy Markdown

🤖 New build scheduled with the buildbot fleet by @markshannon for commit 0728b62 🤖

Results will be shown at:

https://buildbot.python.org/all/#/grid?branch=refs%2Fpull%2F141944%2Fmerge

If you want to schedule another build, you need to add the 🔨 test-with-buildbots label again.

@bedevere-bot bedevere-bot removed the 🔨 test-with-buildbots Test PR w/ buildbots; report in status section label Nov 25, 2025
@encukou
encukou merged commit 69021e9 into python:3.14 Nov 26, 2025
126 checks passed
@encukou
encukou deleted the backport-c25a070-3.14 branch November 26, 2025 11:55
elliot-barn added a commit to ray-project/ray that referenced this pull request Jul 17, 2026
CPython 3.14.0/3.14.1 fatally crash Ray async actors running on boost
fiber stacks (python/cpython#141944, fixed upstream in 3.14.2), which
kills the JobSupervisor on every Anyscale job. The py3.14 images are
stuck on 3.14.0 for two reasons: the unpinned 'conda install
python=3.14' resolve is frozen in the wanda layer cache, and the
libffi=3.4.6 pin in base-deps forces conda to pick python 3.14.0 even
on a fresh build (newer 3.14.x conda-forge builds require libffi>=3.5).

Pin python 3.14.6 in base-deps and base-slim, and let 3.14 bring its
own libffi. Verified: the async-actor repro crashes in
rayproject/ray:nightly-py314-cpu (3.14.0) and passes with the same
nightly cp314 wheel on 3.14.6.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Signed-off-by: elliot-barn <elliot.barnwell@anyscale.com>
elliot-barn added a commit to ray-project/ray that referenced this pull request Jul 17, 2026
CPython 3.14.0/3.14.1 fatally crash Ray async actors running on boost
fiber stacks (python/cpython#141944, fixed upstream in 3.14.2), which
kills the JobSupervisor on every Anyscale job. The py3.14 base image
resolves python 3.14.0 because the exact libffi=3.4.6 pin, installed as
a separate conda step, re-solves the env and downgrades python to the
only 3.14 build compatible with libffi<3.5.

Replace the two-step install with a single solve using a libffi floor
(>=3.4.6, keeping the intent of the original pin): every python version
then resolves its newest patch release with a compatible libffi —
3.14.6 + libffi 3.5.2 for py3.14. Verified via dry-run for 3.10-3.14
and ctypes smoke tests on 3.10 (libffi 3.7.0) and 3.14 (libffi 3.5.2);
the async-actor repro crashes on 3.14.0 and passes with the same
nightly cp314 wheel on 3.14.6.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Signed-off-by: elliot-barn <elliot.barnwell@anyscale.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants