WorkloadIdentityHttpClient can leak its delegate when auth cleanup throws
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 76/100
Línea de trabajo
Comienza localizando WorkloadIdentityHttpClient.close() y compara su flujo de limpieza con el patrón del AuthenticatingHttpClient hermano. Añade cobertura de regresión para un fallo de autenticación con limpieza del delegado, fallos de ambos recursos con supresión y limpieza normal; se considera terminado cuando se intenta limpiar ambos recursos y se conserva el primer fallo.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Description
WorkloadIdentityHttpClient.close() currently closes workloadIdentityAuth before closing its delegate:
override fun close() {
workloadIdentityAuth?.close()
delegate.close()
}
If the configured workload-identity provider throws from close(), execution never reaches delegate.close().
This differs from the sibling AuthenticatingHttpClient, which deliberately attempts both cleanup operations and preserves the first failure while suppressing a second one.
Impact
A custom SubjectTokenProvider may implement AutoCloseable and fail during cleanup. In that case the underlying HTTP client can remain open, retaining transports, connection pools, executors, or other resources.
Expected behavior
Closing the wrapper should always attempt to close both owned resources. If both fail, the first failure should be propagated and the second retained as a suppressed exception.
Suggested fix
Use the same failure-preserving cleanup pattern already used by AuthenticatingHttpClient, with workload-identity cleanup attempted first and delegate cleanup guaranteed afterward.
Add regression coverage for:
- auth cleanup fails, delegate still closes;
- both cleanup operations fail, delegate failure is suppressed on the auth failure;
- normal close still closes both resources.
- Lenguaje dominante
- Kotlin
- Estrellas
- 1.5k
- Forks
- 264
- Merge medio
- 13 h 51 min
- PR fusionados (30 d)
- 113
Preparar el entorno
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 openai/openai-java
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
openai/openai-java#886 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
openai/openai-java#802 · 2 comentarios · 3 reacciones ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
openai/openai-java#755 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
bug sdk
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
openai/openai-java#652 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
Dificultad 3/5 1-2 días Aptitud para principiantes 74/100
openai/openai-java#973 ·
Los mantenedores suelen responder en 1 día
Todos los issues de openai/openai-java
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
T31n/YagniLauncher#1051 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
-
Accepted Needs Triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
ankidroid/Anki-Android#22114 · 5 comentarios ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
solana-foundation/pay-kit#341 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 92/100
element-hq/element-x-android#7783 ·
Los mantenedores suelen responder en 1 día