ClickHouse / ClickHouse/clickhouse-java

`socket_keepalive` doesn't work with shaded clickhouse-jdbc

オープン
#3,092 コメント 4 件 リアクション 0 件 担当者 0 名 GitHub で見る
bug
主要言語
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

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。