fix(eap): Add defensive null-safety for contexts extraction in producer#110866
Draft
cursor[bot] wants to merge 1 commit intomasterfrom
Draft
fix(eap): Add defensive null-safety for contexts extraction in producer#110866cursor[bot] wants to merge 1 commit intomasterfrom
cursor[bot] wants to merge 1 commit intomasterfrom
Conversation
Fixes SENTRY-5KRQ Add defensive null-safety to trace_id extraction in produce_processing_errors_to_eap function to handle cases where event_data fields may be None due to upstream validation failures or corruption. - Update trace_id extraction to use 'or {}' fallback pattern when contexts is None - Add inline comment explaining why defensive null-checks are necessary - Add test coverage for contexts=None case - Add test coverage for sdk=None case to verify existing defensive handling The issue occurred when event.data.get('contexts') returned None (instead of missing key) due to the contexts field being invalid and stripped during validation, causing chained .get() calls to fail. Co-authored-by: Armen Zambrano G. <armenzg@users.noreply.github.com>
Contributor
|
This issue has gone three weeks without activity. In another week, I will close it. But! If you comment or otherwise update it, I will reset the clock, and if you remove the label "A weed is but an unloved flower." ― Ella Wheeler Wilcox 🥀 |
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.
Problem
When processing events with invalid
contextsfield values, theproduce_processing_errors_to_eapfunction would crash with anAttributeErrorbecauseevent.data.get('contexts')can returnNone(when the key exists but has an invalid value that was stripped during validation), and the code attempted to chain.get()calls onNone.Solution
Added defensive null-safety using the
or {}fallback pattern to handle cases whereevent_datafields may beNonedue to upstream validation failures or corruption.Changes:
(event_data.get("contexts") or {})patterncontexts=Nonecasesdk=Nonecase to verify existing defensive handlingTesting
All existing tests pass, plus two new tests:
test_skips_when_contexts_is_none: Verifies graceful handling when contexts is Nonetest_handles_none_sdk_gracefully: Verifies sdk=None is handled correctlyFixes SENTRY-5KRQ