GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — [3.14] gh-155109: Run tests exhausting the C stack with a limited C stack (GH-155120) by serhiy-storchaka · Pull Request #155165 · python/cpython

Conversation

@serhiy-storchaka

@serhiy-storchaka serhiy-storchaka commented Aug 4, 2026

Copy link
Copy Markdown
Member

Add the @support.run_with_limited_c_stack(depth) decorator: it runs the test in a thread with an 8 MiB C stack, so that the outcome does not depend on RLIMIT_STACK. If the thread stack size cannot be limited, it falls back to the old behavior — run in the current thread and skip if the C stack is too large.

Use it in tests which recurse to a fixed depth. @support.skip_if_huge_c_stack() estimates the remaining stack in interpreter loop frames (~328 bytes), so it fails to skip tests which recurse with much smaller C frames (~100 bytes) — they fail with a 16 MiB stack. It is kept for tests with unbounded recursion and for test_call.test_super_deep(), which needs a deep stack.

(cherry picked from commit ce5ae29)

Co-authored-by: Serhiy Storchaka [email protected]

  • Issue: skip_if_huge_c_stack underestimates available C recursion depth #155109

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@serhiy-storchaka @claude
pythongh-155109: Run tests exhausting the C stack with a limited C st…
ee04e43
…ack (pythonGH-155120)

Add the @support.run_with_limited_c_stack() decorator which runs the test
in a thread with a 8 MiB C stack, so that the outcome does not depend on
RLIMIT_STACK. Use it in tests which recurse to a fixed depth --
@support.skip_if_huge_c_stack() failed to skip them with a 16 MiB stack.

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
(cherry picked from commit ce5ae29)
@serhiy-storchaka
serhiy-storchaka requested review from AlexWaygood, Eclips4, JelleZijlstra and iritkatriel as code owners August 4, 2026 09:49
@bedevere-app bedevere-app Bot mentioned this pull request Aug 4, 2026
skip_if_huge_c_stack underestimates available C recursion depth #155109
Closed
@serhiy-storchaka serhiy-storchaka added the tests Tests in the Lib/test dir label Aug 4, 2026
@bedevere-app bedevere-app Bot added the awaiting core review label Aug 4, 2026
@bedevere-app bedevere-app Bot mentioned this pull request Aug 4, 2026
gh-155109: Run tests exhausting the C stack with a limited C stack #155120
Merged
@serhiy-storchaka
serhiy-storchaka enabled auto-merge (squash) August 4, 2026 10:04
@serhiy-storchaka
serhiy-storchaka merged commit b669be3 into python:3.14 Aug 4, 2026
90 of 92 checks passed

Uh oh!

There was an error while loading. Please reload this page.

@bedevere-app bedevere-app Bot removed the awaiting core review label Aug 4, 2026
deadlovelll pushed a commit to deadlovelll/cpython that referenced this pull request Aug 5, 2026
@serhiy-storchaka @claude @deadlovelll
[3.14] pythongh-155109: Run tests exhausting the C stack with a limit…
f161c35
…ed C stack (pythonGH-155120) (pythonGH-155165)

Add the @support.run_with_limited_c_stack() decorator which runs the test
in a thread with a 8 MiB C stack, so that the outcome does not depend on
RLIMIT_STACK. Use it in tests which recurse to a fixed depth --
@support.skip_if_huge_c_stack() failed to skip them with a 16 MiB stack.

(cherry picked from commit ce5ae29)

Co-authored-by: Claude Opus 5 (1M context) <[email protected]>
@serhiy-storchaka
serhiy-storchaka deleted the backport-ce5ae29-3.14 branch August 27, 2026 12:14
@doko42 doko42 mentioned this pull request Sep 28, 2026
[3.14 Regression] test_typing.GenericTests.test_parameters_deep_recursion fails on arm-linux-gnueabihf #158314
Open
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@JelleZijlstra JelleZijlstra Awaiting requested review from JelleZijlstra JelleZijlstra is a code owner
@AlexWaygood AlexWaygood Awaiting requested review from AlexWaygood AlexWaygood is a code owner
@Eclips4 Eclips4 Awaiting requested review from Eclips4 Eclips4 is a code owner
@iritkatriel iritkatriel Awaiting requested review from iritkatriel iritkatriel is a code owner

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

tests Tests in the Lib/test dir

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

1 participant

@serhiy-storchaka
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.