apache / apache/iotdb-client-rust

reconnect() holds the pool slot while sleeping between attempts

オープン
#10 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る
enhancement
主要言語
Rust
スター
1
フォーク
0
PR マージ指標
30日以内にマージされた PR はありません

説明

`Session::reconnect()` sleeps `retry_interval` between passes and walks all endpoints while still holding its pool slot. With defaults (3 endpoints, 3 attempts, 1s interval) the worst case is ~92s, during which concurrent `acquire()` callers get "pool exhausted" — an error that points away from the real cause.

Fix: when the session is handed out from a pool, skip the between-attempt sleeps (the slot is still held, but the hold time drops to the connect+handshake attempts), or shorten them. Standalone sessions keep the current C#-style pacing.

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

調査の方向性

まず Session::reconnect と、セッションを acquire 呼び出し元に渡す pool の経路を読み、pooled セッションと standalone セッションがどのように識別されるかに注目します。pooled の reconnect 試行では試行間のスリープが保持されず、standalone セッションでは現在のペーシングが維持されることを確認し、pool の並行取得が遅延によって失敗しなくなったことを確認します。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
rust
領域
databases
issue の種類
バグ
難易度
3/5
見積もり時間
1〜2日
活発さ
活発
明瞭さ
おおむね明確
初心者へのやさしさ
65/100

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

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