ClickHouse / ClickHouse/clickhouse-java

Socket closed

未关闭
#1,787 13 条评论 1 个 reaction 已指派 0 人 在 GitHub 查看
area:network client-api-v2 investigating
主要语言
Java
星标
1.6k
派生
636
平均合并
2 天 23 小时
30 天内合并 PR
29

描述

### 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

贡献指南

打开贡献指南

调研方向

从 ApacheHttpConnectionImpl.java、ClickHouseHttpClient.java 和 AbstractClient.java 中的堆栈跟踪入口点开始。使用所示的批量插入示例(不超过 1000 个项目)重现间歇性故障,然后跟踪 HTTP socket 何时关闭。故障得到解释,并由回归测试或已记录的限制覆盖,即视为完成。

由索引模型根据 Issue 内容生成。

评估

技术栈
java
领域
api, database
Issue 类型
缺陷
难度
4/5
预计耗时
3-5 天
活跃度
停滞
描述清晰度
基本清楚
新手友好度
35/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。