ClickHouse / ClickHouse/clickhouse-java
`socket_keepalive` doesn't work with shaded clickhouse-jdbc
- 主要言語
- Java
- スター
- 1.6k
- フォーク
- 636
- 平均マージ
- 2日 23時間
- マージ済み PR(30日)
- 29
説明
## `socket_keepalive` doesnt' applied
### Steps to reproduce
Note: I would expect that instruction from official site[1] should end up with the same result.
1. Specify following option for apache/cloudberry-pxf:
```
jdbc.connection.property.socket_keepalive
true
```
or in JDBC URL `&socket_keepalive=true`
2. expect that `SO_KEEPALIVE=true`. However it is not.
Actual:
```
# ss -Otnpio state established | grep -F '8123'
0 0 [::ffff:10.1.0.9]:44198 [::ffff:10.1.0.20]:8123 users:(("java",pid=2731285,fd=34)) ts sack illinois wscale:10,4 rto:201 rtt:0.343/0.188
```
Expected (spot the `timer` section!):
```
0 0 [::ffff:10.1.0.29]:15938 [::ffff:10.1.0.20]:8123 users:(("java",pid=514753,fd=36)) timer:(keepalive,10sec,0) ts sack illinois wscale:10,4 rto:201 rtt:0.249/0.123
```
#### Environment
* Cloud
* Client version: 0.9.8 and 0.10.0
* OS: Ubuntu 22.04
#### ClickHouse Server
* ClickHouse Server version: 26.7.5.10
* `CREATE TABLE` statements for tables involved:
```
SELECT toInt32(sleep(600)) AS slept
SETTINGS
function_sleep_max_microseconds_per_block = 600000000,
max_execution_time = 0
```
[1] https://clickhouse.com/docs/integrations/language-clients/java/jdbc#linux
コントリビューションガイド
調査の方向性
まず、Ubuntu 22.04 上の ClickHouse Server 26.7.5.10 で JDBC のプロパティ形式と URL 形式を再現し、その後、shaded clickhouse-jdbc クライアントのソケット動作を比較します。完了条件は、socket_keepalive を有効にすると、対象となるクライアントバージョンの ss 出力に期待される keepalive タイマーが表示されることです。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- java, linux
- 領域
- databases
- issue の種類
- バグ
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 活発さ
- 活発
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 52/100