apache / apache/iotdb-client-rust
reconnect() holds the pool slot while sleeping between attempts
- 主要言語
- 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