attempt to base64 decode invalid DDIds #1656
Merged
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.
This one comes from a support issue where Kafka Mirrormaker was reportedly base64 encoding Kafka headers, and the user was complaining that we wouldn't parse the trace IDs. I've investigated and there is no way to detect that this has happened, except trying to base64 decode the headers. Doing this "just in case" in the Kafka instrumentation would give other users a significant performance regression so we don't want to do this unless absolutely necessary. This isn't really the tracer's fault and the user needs to prevent infrastructure from mangling header data, but attempting to base64 decode in a catch block in
DDId.from
helps the user diagnose and fix their problem, avoids breaking trace lineage if they can't fix it right away, whilst preventing other users from paying for it.