ClickHouse / ClickHouse/clickhouse-java

Socket closed

Abierto
#1,787 13 comentarios 1 reacción 0 asignados Ver en GitHub
area:network client-api-v2 investigating
Lenguaje dominante
Java
Estrellas
1.6k
Forks
636
Merge medio
2 d 23 h
PR fusionados (30 d)
29

Descripción

### Describe the bug
This happens intermittently every now and then.

### Expected behaviour
Error when processing batch of inserts, the list doesn't contain more than 1000 items.

### Code example
```
var statement = connection.createStatement(INSERT);

for (Iterator iterator = items.iterator(); iterator.hasNext();) {
var item = iterator.next();

statement.bind("id", item.id())
.bind("itemId", datasetId)
.bind("input", item.input().toString())
.bind("source", item.source().getValue());

if (iterator.hasNext()) {
statement.add();
}
}

statement.fetchSize(items.size());

return statement.execute();
}
```

### Error log
```
! java.net.ConnectException: Socket closed
! at com.clickhouse.client.http.ApacheHttpConnectionImpl.post(ApacheHttpConnectionImpl.java:276)
! at com.clickhouse.client.http.ClickHouseHttpClient.send(ClickHouseHttpClient.java:195)
! at com.clickhouse.client.AbstractClient.sendAsync(AbstractClient.java:161)
! at com.clickhouse.client.AbstractClient.lambda$execute$0(AbstractClient.java:273)
! ... 4 common frames omitted
! Causing: com.clickhouse.client.ClickHouseException: Socket closed
! at com.clickhouse.client.ClickHouseException.of(ClickHouseException.java:149)
! at com.clickhouse.client.AbstractClient.lambda$execute$0(AbstractClient.java:275)
! at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768)
! at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
! at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
! ... 1 common frames omitted
! Causing: reactor.core.Exceptions$ReactiveException: com.clickhouse.client.ClickHouseException: Socket closed
! at reactor.core.Exceptions.propagate(Exceptions.java:408)
! at reactor.core.publisher.BlockingSingleSubscriber.blockingGet(BlockingSingleSubscriber.java:101)
! at reactor.core.publisher.Mono.block(Mono.java:1728)
```
### Configuration
#### Environment
* Client version: 0.6.4
* Language version: Java 21
* OS: MAC

#### ClickHouse server
* ClickHouse Server version: :23.8.15.35-alpine

Guía de contribución

Abrir la guía de contribución

Línea de trabajo

Start with the stack-trace entry points in ApacheHttpConnectionImpl.java, ClickHouseHttpClient.java, and AbstractClient.java. Reproduce the intermittent failure using the shown batch-insert example with no more than 1000 items, then trace when the HTTP socket closes. Done means the failure is explained and covered by a regression test or a documented limitation.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
java
Área
api, database
Tipo de issue
Error
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.