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 — gh-149202: Implement PEP 831 – Frame Pointers Everywhere: Enabling System-Level Observability for Python by pablogsal · Pull Request #149201 · python/cpython

Conversation

@pablogsal

@pablogsal pablogsal commented Apr 30, 2026 •
edited
Loading

Uh oh!

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

Copy link
Copy Markdown
Member
  • Issue: Implement PEP 831 – Frame Pointers Everywhere: Enabling System-Level Observability for Python #149202

Closes: #96174 #149202

Sorry, something went wrong.

Uh oh!

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

emmatyping, gpshead, chris-eibl, johnslavik, sergey-miryanov, and korniltsev-grafanista reacted with rocket emoji
All reactions
  • 🚀 6 reactions
@pablogsal
pablogsal requested review from AA-Turner, corona10, emmatyping and erlend-aasland as code owners April 30, 2026 22:31
@bedevere-app bedevere-app Bot added the awaiting core review label Apr 30, 2026
@pablogsal pablogsal changed the title Implement PEP 831 – Frame Pointers Everywhere: Enabling System-Level Observability for Python gh-149202: Implement PEP 831 – Frame Pointers Everywhere: Enabling System-Level Observability for Python Apr 30, 2026
@bedevere-app bedevere-app Bot mentioned this pull request Apr 30, 2026
Implement PEP 831 – Frame Pointers Everywhere: Enabling System-Level Observability for Python #149202
Closed
@pablogsal

pablogsal commented Apr 30, 2026

Copy link
Copy Markdown
Member Author

CC: @savannahostrowski @Fidget-Spinner @diegorusso

savannahostrowski and Fidget-Spinner reacted with heart emoji
All reactions
  • ❤️ 2 reactions

Sorry, something went wrong.

Uh oh!

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

@pablogsal
Enable frame pointers by default for CPython builds
c1347c5
@pablogsal
pablogsal force-pushed the frame-pointers branch from 9d611e5 to c1347c5 Compare April 30, 2026 22:41
@read-the-docs-community

read-the-docs-community Bot commented Apr 30, 2026 •
edited
Loading

Uh oh!

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

Copy link
Copy Markdown

Documentation build overview

📚 cpython-previews | 🛠️ Build #32502418 | 📁 Comparing af6c75e against main (bdbb55c)

  🔍 Preview build  

21 files changed · ± 21 modified

± Modified

  • contents.html
  • download.html
  • genindex-B.html
  • genindex-C.html
  • genindex-E.html
  • genindex-H.html
  • genindex-I.html
  • genindex-L.html
  • genindex-O.html
  • genindex-P.html
  • and 11 more...
All reactions

Sorry, something went wrong.

Uh oh!

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

savannahostrowski added 2 commits April 30, 2026 16:25
@savannahostrowski
Add --without-frame-pointers flag and docs
fc6d6be
@savannahostrowski
Doc tweaks
166bf7e
@savannahostrowski

savannahostrowski commented Apr 30, 2026

Copy link
Copy Markdown
Member

I think this also closes out on #96174 👀

pablogsal reacted with thumbs up emoji
All reactions
  • 👍 1 reaction

Sorry, something went wrong.

Uh oh!

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

savannahostrowski added 3 commits April 30, 2026 16:30
@savannahostrowski
Merge branch 'main' into frame-pointers
4be8ac4
@savannahostrowski
being kinda particular in my wording here, sorry
0cebe81
@savannahostrowski
Merge branch 'frame-pointers' of https://github.com/pablogsal/cpython …
2efc0a2
…into frame-pointers
@pablogsal

pablogsal commented May 1, 2026

Copy link
Copy Markdown
Member Author

@savannahostrowski We need a what's new entry as well i can add one tomorrow if you don't beat me to it. Also we need to tell people to add the option in their custom build systems as well

All reactions

Sorry, something went wrong.

Uh oh!

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

Fidget-Spinner
Fidget-Spinner approved these changes May 1, 2026
View reviewed changes

@Fidget-Spinner Fidget-Spinner left a comment

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

I read the configure.ac code in detail, and looked at the docs as well.

Sorry, something went wrong.

Uh oh!

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

All reactions
@bedevere-app bedevere-app Bot added awaiting merge and removed awaiting core review labels May 1, 2026
corona10
corona10 approved these changes May 1, 2026
View reviewed changes

@corona10 corona10 left a comment

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

lgtm!

Sorry, something went wrong.

Uh oh!

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

All reactions
emmatyping
emmatyping reviewed May 1, 2026
View reviewed changes
Comment thread configure.ac Resolved

Uh oh!

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

emmatyping
emmatyping approved these changes May 1, 2026
View reviewed changes

@emmatyping emmatyping left a comment

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

One minor configure wording question, but otherwise looks good!

Sorry, something went wrong.

Uh oh!

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

savannahostrowski reacted with heart emoji
All reactions
  • ❤️ 1 reaction
hugovk
hugovk reviewed May 1, 2026
View reviewed changes
Comment thread Doc/whatsnew/3.15.rst Resolved

Uh oh!

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

savannahostrowski and others added 4 commits May 1, 2026 11:05
@savannahostrowski @hugovk
Apply suggestion from @hugovk
bc1cdfb
Co-authored-by: Hugo van Kemenade <[email protected]>
@savannahostrowski @emmatyping
Update configure.ac
d40aca5
Co-authored-by: Emma Smith <[email protected]>
@savannahostrowski
Add to release highlights
dd0f02c
@savannahostrowski
Add guidance
7695f4c
@savannahostrowski

savannahostrowski commented May 1, 2026

Copy link
Copy Markdown
Member

Thanks for the reviews, folks!

@pablogsal I've added a What's New and guidance for downstream folks too!

All reactions

Sorry, something went wrong.

Uh oh!

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

@savannahostrowski
Merge branch 'main' into frame-pointers
e606239
@hugovk

hugovk commented May 1, 2026

Copy link
Copy Markdown
Member

Updating main to include #149248 to fix CI.

savannahostrowski reacted with heart emoji
All reactions
  • ❤️ 1 reaction

Sorry, something went wrong.

Uh oh!

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

@hugovk
Merge branch 'main' into frame-pointers
af6c75e
@pablogsal
pablogsal merged commit 3236773 into python:main May 1, 2026
55 checks passed

Uh oh!

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

@pablogsal
pablogsal deleted the frame-pointers branch May 1, 2026 20:16
@bedevere-app bedevere-app Bot removed the awaiting merge label May 1, 2026
@hugovk

hugovk commented May 3, 2026 •
edited
Loading

Uh oh!

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

Copy link
Copy Markdown
Member

test_manual_unwind_respects_frame_pointers is failing on the S390x buildbots:

https://buildbot.python.org/#/release_status

test_manual_unwind_respects_frame_pointers (test.test_frame_pointer_unwind.FramePointerUnwindTests.test_manual_unwind_respects_frame_pointers) ... 
  test_manual_unwind_respects_frame_pointers (test.test_frame_pointer_unwind.FramePointerUnwindTests.test_manual_unwind_respects_frame_pointers) (env={'PYTHON_JIT': '0'}) ... FAIL

Stdout:
#00 0x3ff7fa759d0 -> other
{"length": 1, "python_frames": 0, "jit_frames": 0, "other_frames": 1, "jit_backend": null}

======================================================================
FAIL: test_manual_unwind_respects_frame_pointers (test.test_frame_pointer_unwind.FramePointerUnwindTests.test_manual_unwind_respects_frame_pointers) (env={'PYTHON_JIT': '0'})
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/var/lib/buildbot/worker/cstratak-fedora-stable-s390x/3.x.cstratak-fedora-stable-s390x/build/Lib/test/test_frame_pointer_unwind.py", line 205, in test_manual_unwind_respects_frame_pointers
    self.assertGreater(
    ~~~~~~~~~~~~~~~~~~^
        python_frames,
        ^^^^^^^^^^^^^^
        0,
        ^^
        f"expected to find Python frames on {self.machine} with env {env}",
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
AssertionError: 0 not greater than 0 : expected to find Python frames on s390x with env {'PYTHON_JIT': '0'}

Stdout:
#00 0x3ff7fa759d0 -> other
{"length": 1, "python_frames": 0, "jit_frames": 0, "other_frames": 1, "jit_backend": null}
All reactions

Sorry, something went wrong.

Uh oh!

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

@florianl florianl mentioned this pull request May 4, 2026
python: use frame pointer unwinding open-telemetry/opentelemetry-ebpf-profiler#1389
Open
@encukou

encukou commented May 4, 2026

Copy link
Copy Markdown
Member

It's also failing on ARM Raspbian (on aarch64 with env {'PYTHON_JIT': '0'}).

All reactions

Sorry, something went wrong.

Uh oh!

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

@diegorusso

diegorusso commented May 4, 2026 •
edited
Loading

Uh oh!

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

Copy link
Copy Markdown
Contributor

I've seen the failures. Today I cannot see what's going on. It's bank holiday in the UK. I think I can replicate a Raspbian OS. In case I need is there a way to login on the S390x?
What I notice though is that the classifications of the frames is broken on these platforms.

Stdout:
#00 0x3ff7fa759d0 -> other
{"length": 1, "python_frames": 0, "jit_frames": 0, "other_frames": 1, "jit_backend": null}
All reactions

Sorry, something went wrong.

Uh oh!

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

@encukou

encukou commented May 4, 2026

Copy link
Copy Markdown
Member

Are these the platforms without -mno-omit-leaf-frame-pointer?

checking whether C compiler accepts -mno-omit-leaf-frame-pointer... no

In case I need is there a way to login on the S390x?

That would be a question for @vstinner

I was able to reproduce in a container with QEMU (podman run --rm -it --arch s390x -v $PWD:/workspace:O fedora bash; install deps), but, it's late so I'll stop here today.

All reactions

Sorry, something went wrong.

Uh oh!

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

@pablogsal

pablogsal commented May 4, 2026

Copy link
Copy Markdown
Member Author

Pls check #149362 for an explanation of the problem and a fix

All reactions

Sorry, something went wrong.

Uh oh!

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

@pablogsal

pablogsal commented May 4, 2026

Copy link
Copy Markdown
Member Author

But long story short: a mix of the test is wrong and we are missing flags.

All reactions

Sorry, something went wrong.

Uh oh!

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

@hanshal101 hanshal101 mentioned this pull request May 9, 2026
fix: make use of frame pointer unwinding on python3.15 open-telemetry/opentelemetry-ebpf-profiler#1404
Closed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@hugovk hugovk hugovk left review comments
@corona10 corona10 corona10 approved these changes
@emmatyping emmatyping emmatyping approved these changes
@Fidget-Spinner Fidget-Spinner Fidget-Spinner approved these changes
@erlend-aasland erlend-aasland Awaiting requested review from erlend-aasland erlend-aasland is a code owner
@AA-Turner AA-Turner Awaiting requested review from AA-Turner AA-Turner is a code owner

Uh oh!

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

Assignees

No one assigned

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Build Python with frame pointers (-fno-omit-frame-pointer)

Uh oh!

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

8 participants

@pablogsal @savannahostrowski @hugovk @encukou @diegorusso @corona10 @emmatyping @Fidget-Spinner
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.