You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix: address incompatibilities between ddtrace and the builtin multiprocessing library [backport 1.18] (#6756)
Backport 68becb8 from #6566 to 1.18.
## Description
- Resolves an import error raised in
`ddtrace/appsec/iast/taint_sinks/_base.py` when module unloading is
enabled.
- Removes inlined import in
`ddtrace/internal/remoteconfig/_connectors.py`. This will allow us to
unload all ddtrace references to multiprocessing library when
ddtrace-run is used.
- One nice side-effect of this PR is that it makes gevent compatible
with iast (I hope 🤞)
## Motivation
Resolves: #6511
[multiprocess.set_start_method(...)](https://docs.python.org/3/library/multiprocessing.html#multiprocessing.set_start_method)
should only be called in a process ONCE. Calling this method more than
once raises a [runtime
error](#6511). Using module
unloading and refactoring imports allows the ddtrace library to have a
unique reference to the multiprocessing library.
## 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)
Co-authored-by: Munir Abdinur <[email protected]>
0 commit comments