open-telemetry / open-telemetry/opentelemetry-python

Current context is empty with baggage.get_all

Open
#2,432 7 comments 7 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

api doc good first issue help wanted
Dominant language
Python
Stars
2.6k
Forks
1k
Avg merge
4d 15h
Merged PRs (30d)
19

Description

Describe your environment

  • Python 3.9.2
  • opentelemetry-api == 1.9.1

Steps to reproduce

from opentelemetry import baggage, trace

tracer = trace.get_tracer(__name__)

global_ctx = baggage.set_baggage("context", "global")
with tracer.start_as_current_span(name="root span") as root_span:
    parent_ctx = baggage.set_baggage("context", "parent")
    with tracer.start_as_current_span(
        name="child span", context=parent_ctx
    ) as child_span:
        child_ctx = baggage.set_baggage("context", "child")
        print(baggage.get_all())
    print(baggage.get_all())
print(baggage.get_all())

print(baggage.get_all(global_ctx))
print(baggage.get_all(parent_ctx))
print(baggage.get_all(child_ctx))

What is the expected behavior?

{'context': 'child'}
{'context': 'parent'}
{'context': 'global'}
{'context': 'global'}
{'context': 'parent'}
{'context': 'child'}

What is the actual behavior?

{}
{}
{}
{'context': 'global'}
{'context': 'parent'}
{'context': 'child'}

Additional context
Add any other context about the problem here.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by running the Python reproduction from the issue with opentelemetry-api 1.9.1 and inspect the baggage.get_all() behavior inside nested current spans. Compare those results with the explicit global_ctx, parent_ctx, and child_ctx calls. Done means the implicit calls return child, parent, and global baggage in the shown order while the explicit-context results remain correct.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
observability
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
68/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.