googleapis / googleapis/google-cloud-java

[sdk-platform-java] com.google.api.gax.httpjson.ManagedHttpJsonInterceptorChannel does not close the channels correctly

Abierto
#12,368 1 comentario 0 reacciones 0 asignados Ver en GitHub
priority: p3 type: bug
Lenguaje dominante
Java
Estrellas
2.1k
Forks
1.2k
Merge medio
1 d 23 h
PR fusionados (30 d)
154

Descripción

#### Environment details

1. Specify the artifact at the beginning of the title. For example, "api-common", "gax" etc)
2. OS type and version: Linux Debian 6.1.158-1 (2025-11-09) x86_64 GNU/Linux
3. Java version: openjdk version "11.0.20.1" 2023-08-24
4. artifact version(s): 2.63.1

#### Steps to reproduce

1. Created a GCP API stub which uses "defaultHttpJsonTransportProviderBuilder" and creates an "InstantiatingHttpJsonChannelProvider"
2. On the client close, the close is successfully but the executor service is not being deleted.

#### Code example

```java
ManagedHttpJsonInterceptorChannel(
ManagedHttpJsonChannel channel, HttpJsonClientInterceptor interceptor) {
super();
this.channel = channel;
this.interceptor = interceptor;
}

@Override
public synchronized void shutdown() {
channel.shutdown();
}
```

super() calls ManagedHttpJsonChannel which creates a fixed executor service that never gets deleted.
```
protected ManagedHttpJsonChannel() {
this(null, true, null, null);
}

private ManagedHttpJsonChannel(
Executor executor,
boolean usingDefaultExecutor,
String endpoint,
@Nullable HttpTransport httpTransport) {
this.executor = executor;
this.usingDefaultExecutor = usingDefaultExecutor;
this.endpoint = endpoint;
this.httpTransport = httpTransport == null ? new NetHttpTransport() : httpTransport;
this.deadlineScheduledExecutorService = Executors.newSingleThreadScheduledExecutor();
}
```

Ideally we should call:
```
@Override
public synchronized void shutdown() {
super.shutdown();
channel.shutdown();
}
```
Same applies to shutdownNow(), close()

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.