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
There is inconsistency related to how invalid baggage entries are handled by some existing implementations (e.g java implementation ignores invalid entries on both inject/extract, and propagate valid ones; go implementation ignores all the propagated baggage entries on extract if any of them is invalid).
If a system determines that the value of a baggage entry is not in the format defined in this specification, it MAY remove that entry before propagating the baggage header as part of outgoing requests.
Baggage entries have key, value, and metadata.
Does "value" in the context quoted above mean baggage entry value specifically (in that case, what if key or metadata are invalid), or whole baggage entry?
The text was updated successfully, but these errors were encountered:
The quoted line specifies that "it MAY remove that entry" rather than all the propagated baggage entries.
I'm not familiar with the go library. The go implementation link in your description points to Parse, which looks like during inject. Can you help me point out where is the code that ignores all the propagated baggage entries?
I'm not familiar with the go library. The go implementation link in your description points to Parse, which looks like during inject. Can you help me point out where is the code that ignores all the propagated baggage entries?
It is my understanding of the go implementation that Parse is used in Extract part. If Parsereturns an error (if it fails to parse any of the members) then all the propagated baggage entries are ignored.
We discussed this in one of the recent working group meetings:
As far as the Baggage spec is concerned, if an invalid value (where any part of the baggage is invalid) is encountered, the behavior is undefined. If it is a goal to be consistent across different language implementations when an invalid value is encountered, we believe the OTel specification should address it.
There is inconsistency related to how invalid baggage entries are handled by some existing implementations (e.g java implementation ignores invalid entries on both
inject
/extract
, and propagate valid ones; go implementation ignores all the propagated baggage entries onextract
if any of them is invalid).There is a section in the spec that states:
Baggage entries have key, value, and metadata.
Does "value" in the context quoted above mean baggage entry value specifically (in that case, what if key or metadata are invalid), or whole baggage entry?
The text was updated successfully, but these errors were encountered: