Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

gh-131338: Disable new stack size code for non-glibc on linux.#134336

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 ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Open
bitdancer wants to merge3 commits intopython:main
base:main
Choose a base branch
Loading
frombitdancer:revert_new_stack_check_for_non_glibc-131338

Conversation

bitdancer
Copy link
Member

@bitdancerbitdancer commentedMay 20, 2025
edited by bedevere-appbot
Loading

MUSL claims to support pthread_getattr_np, but the response returned is off by at least an order of magnitude compared to reality. This is apparently a long standing problem. MUSL also does not provide any way to detect directly that it is the libc. It would be possible to add things to configure to detect that MUSL is the compiler, but since this code has apparently caused problems for a lot of non-glibc platforms, it seems easier to just restrict it to glibc.

MUSL claims to support pthread_getattr_np, but the response returned isoff by at least an order of magnitude compared to reality.  This isapparently a long standing problem.  MUSL also does not provide any wayto detect directly that it is the libc.  It would be possible to addthings to configure to detect that MUSL is the compiler, but since thiscode has caused problems for a lot of non-glibc platforms, it seemseasier to just restrict it to glibc.
@@ -442,7 +442,8 @@ _Py_InitializeRecursionLimits(PyThreadState *tstate)
_tstate->c_stack_soft_limit = _tstate->c_stack_hard_limit + PYOS_STACK_MARGIN_BYTES;
#else
uintptr_t here_addr = _Py_get_machine_stack_pointer();
# if defined(HAVE_PTHREAD_GETATTR_NP) && !defined(_AIX) && !defined(__NetBSD__)
# if defined(HAVE_PTHREAD_GETATTR_NP) && !defined(_AIX) && \
!defined(__NetBSD__) && defined(__GLIBC__)
Copy link
Member

Choose a reason for hiding this comment

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

I don't think that this call is correct. It disables the call on FreeBSD.

Maybe check for "glibc or not Linux"?

Copy link
MemberAuthor

Choose a reason for hiding this comment

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

That would fix it for alpine, but not for emscripten or wasi (but I don't know what they actually need). I'drather see it as if glibc or freebsd, and get rid of the rest, but glibc or not linux would work for my immediate concern.

Copy link
Member

Choose a reason for hiding this comment

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

Well, let's start with fixing Alpine Linux.

Copy link
MemberAuthor

Choose a reason for hiding this comment

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

OK, done. Also added an XXX comment, since I think this needs more investigation. I'll put it on my todo list to post to the musl mailing list about it.

This exempts alpine but doesn't affect, eg, FreeBSD.
@bitdancerbitdancer changed the titlegh-131338: Disable new stack size code for non-glibc.gh-131338: Disable new stack size code for non-glibc on linux.Jun 15, 2025
Copy link
Member

@vstinnervstinner left a comment

Choose a reason for hiding this comment

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

LGTM

Comment on lines 445 to 447
/// XXX musl supports HAVE_PTHRED_GETATTR_NP, but the resulting stack size
/// (on alpine at least) is much smaller than expected and imposes undue limits
/// compared to the old stack size estimation.
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
/// XXX musl supports HAVE_PTHRED_GETATTR_NP, but the resulting stack size
/// (onalpine at least) is much smaller than expected and imposes undue limits
/// compared to the old stack size estimation.
// gh-131338: musl supports HAVE_PTHRED_GETATTR_NP, but the resulting stack size
// (onLinux Alpine at least) is much smaller than expected and imposes undue limits
// compared to the old stack size estimation.

You may mention that__GLIBC__ is used to detect musl support.

Copy link
MemberAuthor

Choose a reason for hiding this comment

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

Updated comment. If that clarification doesn't feel like enough I'll rewrite the whole comment.

@@ -444,7 +444,7 @@ _Py_InitializeRecursionLimits(PyThreadState *tstate)
uintptr_t here_addr = _Py_get_machine_stack_pointer();
/// XXX musl supports HAVE_PTHRED_GETATTR_NP, but the resulting stack size
/// (on alpine at least) is much smaller than expected and imposes undue limits
/// compared to the old stack size estimation.
/// compared to the old stack size estimation. (We assume musl if not glibc.)
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
/// compared to the old stack size estimation. (We assume muslif not glibc.)
/// compared to the old stack size estimation. (We assume muslis not glibc.)

@kumaraditya303kumaraditya303 added the needs backport to 3.14bugs and security fixes labelJun 21, 2025
@kumaraditya303
Copy link
Contributor

This looks good but it needs a news entry as it is a bugfix and needs to be backported to 3.14.

@kumaraditya303kumaraditya303 added the interpreter-core(Objects, Python, Grammar, and Parser dirs) labelJun 25, 2025
Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment
Reviewers

@vstinnervstinnervstinner approved these changes

@markshannonmarkshannonAwaiting requested review from markshannonmarkshannon is a code owner

@hoodmanehoodmaneAwaiting requested review from hoodmane

Assignees
No one assigned
Labels
awaiting mergeinterpreter-core(Objects, Python, Grammar, and Parser dirs)needs backport to 3.14bugs and security fixes
Projects
None yet
Milestone
No milestone
Development

Successfully merging this pull request may close these issues.

3 participants
@bitdancer@kumaraditya303@vstinner

[8]ページ先頭

©2009-2025 Movatter.jp