Skip to content

Commit 6d91bdc

Browse files
adinauerclaude
andcommitted
fix(spring-jakarta): Guard entire span lifecycle in Kafka producer interceptor
Wrap all span operations (startChild, setData, injectHeaders, finish) in a single try-catch so instrumentation can never break the customer's Kafka send. The record is always returned regardless of any exception in Sentry code. Co-Authored-By: Claude <noreply@anthropic.com>
1 parent 320e805 commit 6d91bdc

File tree

1 file changed

+14
-13
lines changed

1 file changed

+14
-13
lines changed

sentry-spring-jakarta/src/main/java/io/sentry/spring/jakarta/kafka/SentryProducerInterceptor.java

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -53,25 +53,26 @@ public SentryProducerInterceptor(final @NotNull IScopes scopes) {
5353
return record;
5454
}
5555

56-
final @NotNull SpanOptions spanOptions = new SpanOptions();
57-
spanOptions.setOrigin(TRACE_ORIGIN);
58-
final @NotNull ISpan span = activeSpan.startChild("queue.publish", record.topic(), spanOptions);
59-
if (span.isNoOp()) {
60-
return record;
61-
}
56+
try {
57+
final @NotNull SpanOptions spanOptions = new SpanOptions();
58+
spanOptions.setOrigin(TRACE_ORIGIN);
59+
final @NotNull ISpan span =
60+
activeSpan.startChild("queue.publish", record.topic(), spanOptions);
61+
if (span.isNoOp()) {
62+
return record;
63+
}
6264

63-
span.setData(SpanDataConvention.MESSAGING_SYSTEM, "kafka");
64-
span.setData(SpanDataConvention.MESSAGING_DESTINATION_NAME, record.topic());
65+
span.setData(SpanDataConvention.MESSAGING_SYSTEM, "kafka");
66+
span.setData(SpanDataConvention.MESSAGING_DESTINATION_NAME, record.topic());
6567

66-
try {
6768
injectHeaders(record.headers(), span);
69+
70+
span.setStatus(SpanStatus.OK);
71+
span.finish();
6872
} catch (Throwable ignored) {
69-
// Header injection must not break the send
73+
// Instrumentation must never break the customer's Kafka send
7074
}
7175

72-
span.setStatus(SpanStatus.OK);
73-
span.finish();
74-
7576
return record;
7677
}
7778

0 commit comments

Comments
 (0)