ClickHouse / ClickHouse/clickhouse-java
Socket closed
- 主要语言
- 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