Trace ID leakage in reactive Kafka consumer concatMap operations
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 35/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- java, kafka
- Ambito
- distributed-systems, observability-sre
Direzione di ricerca
Inizia con la riproduzione collegata di reactive-kafka-consumer ed eseguila con le versioni 1.43.0 e 1.53.0 di dd-java-agent. Confronta i Trace ID all'interno dell'elaborazione sequenziale di concatMap con la catena esterna e con flatMap. Il lavoro è completato quando ogni messaggio consumato mantiene il proprio Kafka-header trace ID per tutta l'elaborazione di concatMap, senza gestione manuale del contesto.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Tracer Version(s)
1.43.0, 1.53.0
Java Version(s)
17.0.15
JVM Vendor
Oracle JDK
Bug Report
When using dd-java-agent's automatic instrumentation with reactor-kafka, trace IDs from the first consumed Kafka message incorrectly leak into subsequent messages within concatMap operators. No manual span creation or context management is being used - this occurs purely with automatic instrumentation.
Actual Behavior
- First message: Trace ID is correctly set (e.g., trace_id=123)
- Second message: The outer reactive chain has a new trace ID (e.g., trace_id=456) - this is correct
Operations inside concatMap still show the first message's trace ID (trace_id=123) - here expected trace_id=456
Issue does not occur with flatMap - only with concatMap (sequential processing)
Is manual context propagation required for concatMap scenarios, or is this a bug in automatic instrumentation?
Expected Behavior
- First message: Trace ID is correctly extracted from Kafka headers (e.g., trace_id=123) and maintained throughout the processing chain
- Second and subsequent messages: Each message's trace ID from its Kafka headers is properly extracted and maintained throughout the entire chain processing, independent of previous messages
Reproduction Code
- Lingua principale
- Java
- Stelle
- 737
- Fork
- 361
- Merge medio
- 3g 20h
- PR unite (30g)
- 173
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di DataDog/dd-trace-java
-
type: feature request
Difficoltà 1/5 1-3 ore Idoneità per principianti 70/100
DataDog/dd-trace-java#10245 · 1 commento ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 62/100
DataDog/dd-trace-java#12608 ·
-
type: bug report
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
DataDog/dd-trace-java#12597 ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
DataDog/dd-trace-java#12540 · 3 commenti · 1 assegnatario ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 25/100
DataDog/dd-trace-java#12480 ·
Tutte le issue di DataDog/dd-trace-java
Issue simili
-
certification
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 80/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
-
[BUG] ECR GetAuthorizationToken returns a proxyEndpoint for the default region, not the request's Apertabug ecr
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
-
Needs: Triage Type: Feature request
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
AntennaPod/AntennaPod#8794 ·
-
agentic-workflows
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
github/copilot-sdk#2760 ·