Skip to content

Commit d4e5161

Browse files
fix(internal): bytecode wrapping for Python 3.11 [backport 2.0] (#7040)
Backport 4997cab from #7022 to 2.0. 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: Gabriele N. Tornetta <[email protected]>
1 parent b0ba3eb commit d4e5161

File tree

7 files changed

+1037
-556
lines changed

7 files changed

+1037
-556
lines changed

0 commit comments

Comments
 (0)