Trace ID leakage in reactive Kafka consumer concatMap operations
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- java, kafka
Línea de trabajo
Comienza con la reproducción enlazada de reactive-kafka-consumer y ejecútala con las versiones 1.43.0 y 1.53.0 de dd-java-agent. Compara los Trace IDs dentro del procesamiento secuencial de concatMap con la cadena externa y con flatMap. Se considera terminado cuando cada mensaje consumido conserva su propia Kafka-header trace ID durante todo el procesamiento de concatMap, sin gestión manual del contexto.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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
- Lenguaje dominante
- Java
- Estrellas
- 737
- Forks
- 361
- Merge medio
- 3 d 20 h
- PR fusionados (30 d)
- 173
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de DataDog/dd-trace-java
-
type: feature request
Dificultad 1/5 1-3 horas Aptitud para principiantes 70/100
DataDog/dd-trace-java#10245 · 1 comentario ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 62/100
DataDog/dd-trace-java#12608 ·
-
type: bug report
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
DataDog/dd-trace-java#12597 ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
DataDog/dd-trace-java#12540 · 3 comentarios · 1 asignado ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 25/100
DataDog/dd-trace-java#12480 ·
Todos los issues de DataDog/dd-trace-java
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
elastic/gradle-plugins#157 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
cryptomator/hub#497 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
johanhaleby/occurrent#1120 ·