Skip to content
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 our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support 3.13rc2 #207

Merged
merged 2 commits into from
Sep 11, 2024
Merged

Support 3.13rc2 #207

merged 2 commits into from
Sep 11, 2024

Conversation

godlygeek
Copy link
Contributor

New fields were added to _Py_DebugOffsets in 3.13rc2 which make make us unable to recognize the interpreter's data structures in memory. This PR contains two commits: one to update our static offsets to account for the newly added fields so that we can correctly attach to 3.13rc2 processes (at the cost that we're no longer able to attach to 3.13rc1 or earlier), and one to begin utilizing the new fields that were added to the offsets to remove assumptions that we were making in PyStack in favor of known correct answers from the interpreter.

Marking as draft for now because this will fail until 3.13rc2 is available.

Note that after this change, we're no longer able to decode stacks for
earlier versions of Python 3.13.

Signed-off-by: Matt Wozniski <[email protected]>
Some offsets that we previously needed to infer or make assumptions
about are now provided by the interpreter itself. Start using them.

Signed-off-by: Matt Wozniski <[email protected]>
@godlygeek godlygeek marked this pull request as ready for review September 10, 2024 19:57
@godlygeek
Copy link
Contributor Author

OK, this passes CI now. The problem wasn't cibuildwheel still using rc1: it still is, but that doesn't matter to us because we never run any tests with the Python version provided by cibuildwheel. We use it only for building, and it's fine to build our extension with 3.13rc1 as long as you only attach to processes using 3.13rc2 or higher. The problem was that actions/setup-python hadn't yet picked up rc2, but now it has, and so CI passed on a rerun.

I've marked this as skip news; the news entry added in #206 covers it:

Support debugging free-threading (a.k.a. "nogil") Python 3.13 builds. Note that PyStack can't itself be run with python3.13t, it can only attach to a python3.13t process or core file from another interpreter.

@godlygeek
Copy link
Contributor Author

And, once we get this landed, we can cut a release. We don't expect any more changes to affect our 3.13 support from this point forward.

@pablogsal pablogsal merged commit c77eb4f into bloomberg:main Sep 11, 2024
24 of 25 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants