Repository navigation
Conversation
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
📥 Pull Request
📘 Description
Closes #1473.
An instrumented executor reused across requests keeps the context captured when the pool was created. Worker spans can therefore attach to an old trace instead of the request active at submission. A task's ContextVar writes also remain visible to the next task on the same worker.
Capture a fresh context on each
submitand execute the callable through that context'srun. This fixes request parentage and isolates task-local writes, including after an exception. Existing executor initialization, argument forwarding and Future behavior are preserved. No dependency or public API changes.🧪 Testing
python -m pytest tests/unit/sdk -q— 155 passed, including the new five cases (Python 3.12.14, OpenTelemetry 1.31.1, pytest 8.4.1).pre-commit run --all-files— Ruff lint and formatting pass (repository-pinned Ruff 0.12.9).git diff --cached --check— pass.An initial broader run with pytest 9 / OpenTelemetry 1.45.1 hit exporter failures and a pytest-depends internal error. After aligning the SDK to the repository's locked OpenTelemetry version and using compatible pytest 8, the SDK suite above passed. This is not a claim that the full repository or live-provider integration tests passed.
Prepared with AI assistance; the reproductions and checks reported here were executed locally.