-
Notifications
You must be signed in to change notification settings - Fork 468
Commit d4e5161
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 d4e5161Copy full SHA for d4e5161
File tree
Expand file treeCollapse file tree
7 files changed
+1037
-556
lines changedOpen diff view settings
Filter options
- ddtrace/internal
- wrapping
- releasenotes/notes
- tests/internal
Expand file treeCollapse file tree
7 files changed
+1037
-556
lines changedOpen diff view settings
0 commit comments