JdkHttpSender passes CompletionException instead of the original exception to onError
Los mantenedores suelen responder en 2 días
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 76/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- java
- Área
- backend, observability
Línea de trabajo
Empieza en JdkHttpSender.java, alrededor de las líneas 181–190, donde supplyAsync y whenComplete pasan el error a onError; compara esa ruta con el tratamiento existente de RejectedExecutionException. Comprueba en HttpExporterTest el tipo de error IOException esperado y reproduce el problema usando el emisor JDK con una conexión rechazada. Se considera terminado cuando onError recibe la excepción de transporte original y el exportador informa de su tipo.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Describe the bug
JdkHttpSender.send() passes a CompletionException wrapping an UncheckedIOException wrapping the real IOException to onError, instead of the original exception. HttpExporter then records error.type=java.util.concurrent.CompletionException for every transport failure, and the wrapper becomes the top-level exception in the SEVERE log and the cause of FailedExportException.
Steps to reproduce
- Use
OtlpHttpSpanExporterwithopentelemetry-exporter-sender-jdkandsetInternalTelemetryVersion(InternalTelemetryVersion.LATEST). - Point it at an endpoint with no listener (connection refused) and export a span.
- Inspect
error.typeonotel.sdk.exporter.span.exported, orFailedExportException.getCause().
What did you expect to see?
The real exception, e.g. java.net.ConnectException, as with OkHttpHttpSender, which passes the IOException from onFailure to onError. HttpExporterTest also expects error.type=java.io.IOException when the sender reports an IOException.
What did you see instead?
java.util.concurrent.CompletionException. supplyAsync wraps the UncheckedIOException thrown at JdkHttpSender.java line 181 in a CompletionException, and whenComplete (line 185-190) forwards it unchanged. The RejectedExecutionException path in the same method already passes the unwrapped exception.
What version and what artifacts are you using?
Artifacts: opentelemetry-exporter-otlp, opentelemetry-exporter-sender-jdk
Version: main @ b32298a83
How did you reference these artifacts? N/A (source build)
Environment
Compiler: Temurin 21
OS: N/A
Additional context
N/A
- Lenguaje dominante
- Java
- Estrellas
- 2.5k
- Forks
- 1k
- Merge medio
- 2 d 23 h
- PR fusionados (30 d)
- 68
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la 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 open-telemetry/opentelemetry-java
-
OkHttpGrpcSender no longer logs retry attemptsPosiblemente ocupada @thswlsqls la tomó hace 1 día. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
open-telemetry/opentelemetry-java#8966 · 1 reacción ·
Los mantenedores suelen responder en 2 días
-
Fix `otel.sdk.log.created` counting semanticsPosiblemente ocupada @anuraaga la tomó hace 75 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
open-telemetry/opentelemetry-java#8688 ·
Los mantenedores suelen responder en 2 días
-
Dificultad 3/5 1-2 días Aptitud para principiantes 20/100
open-telemetry/opentelemetry-java#8971 ·
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 35/100
open-telemetry/opentelemetry-java#8970 ·
Los mantenedores suelen responder en 2 días
-
OkHttp gRPC sender retries are rejected by a bounded executorPosiblemente ocupada @thswlsqls la tomó hace 1 día. Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 61/100
open-telemetry/opentelemetry-java#8964 · 1 reacción ·
Los mantenedores suelen responder en 2 días
Todos los issues de open-telemetry/opentelemetry-java
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
QuiltMC/update-quilt-meta#28 ·
-
area/kotlin
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
Los mantenedores suelen responder en 1 día
-
Tell us about your use cases!Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 75/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Los mantenedores suelen responder en 1 día
-
Large page[number] overflows the computed offset and returns the wrong pagePosiblemente ocupada @auraseb la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día