Skip to content

Commit 129b653

Browse files
fix(internal): bytecode wrapping for Python 3.11 [backport #7022 to 1.20] (#7049)
Backport of #7022 to 1.20 We fix the bytecode wrapping for generators and other types of special Python functions to ensure that the frame stack state remains unchanged. This prevents tools that inspect the stack, like the profiler, from finding invalid frame information which could have ultimately resulted in a segmentation fault. ## Testing strategy We have enhanced the existing tests to include frame stack assertion. These should prevent any regressions from occurring in the future that can leave the interpreter in an inconsistent state. ## Checklist - [x] Change(s) are motivated and described in the PR description. - [x] Testing strategy is described if automated tests are not included in the PR. - [x] Risk is outlined (performance impact, potential for breakage, maintainability, etc). - [x] Change is maintainable (easy to change, telemetry, documentation). - [x] [Library release note guidelines](https://ddtrace.readthedocs.io/en/stable/releasenotes.html) are followed. If no release note is required, add label `changelog/no-changelog`. - [x] Documentation is included (in-code, generated user docs, [public corp docs](https://github.com/DataDog/documentation/)). - [x] Backport labels are set (if [applicable](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting)) ## Reviewer Checklist - [x] Title is accurate. - [x] No unnecessary changes are introduced. - [x] Description motivates each change. - [x] Avoids breaking [API](https://ddtrace.readthedocs.io/en/stable/versioning.html#interfaces) changes unless absolutely necessary. - [x] Testing strategy adequately addresses listed risk(s). - [x] Change is maintainable (easy to change, telemetry, documentation). - [x] Release note makes sense to a user of the library. - [x] Reviewer has explicitly acknowledged and discussed the performance implications of this PR as reported in the benchmarks PR comment. - [x] Backport labels are set in a manner that is consistent with the [release branch maintenance policy](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting) - [x] If this PR touches code that signs or publishes builds or packages, or handles credentials of any kind, I've requested a review from `@DataDog/security-design-and-guidance`. - [x] This PR doesn't touch any of that. Co-authored-by: Emmett Butler <[email protected]>
1 parent 715c182 commit 129b653

File tree

7 files changed

+800
-555
lines changed

7 files changed

+800
-555
lines changed

0 commit comments

Comments
 (0)