Session::open does not fail over when openSession/requestStatementId fails (only TCP-layer failover)

オープン 初心者向け
#5 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
2/5
見積もり時間
1〜3時間
初心者へのやさしさ
78/100
issue の種類
バグ
明瞭さ
明確に書かれている
活発さ
活発
技術スタック
rust
領域
databases

調査の方向性

Session::open から開始し、そのエンドポイントループを reconnect() と比較します。authenticate() を、openSession と requestStatementId を含めて追跡し、それぞれの失敗がどこで処理されるかを理解します。認証の失敗によって、reconnect() の動作と同様に、次に設定されたエンドポイントが試行されるようになれば完了です。issue ではテストファイルは指定されていません。

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

説明

bug

Session::open only fails over at the TCP layer: the loop over config.endpoints opens a Connection, but authenticate() (openSession + requestStatementId) runs after the loop. reconnect() does the opposite — it retries connect and authenticate for every endpoint.

With a 3-node cluster where one node accepts TCP but fails openSession (e.g. overloaded, misconfigured, or wedged by the missing socket timeout), roughly one open() in three fails while 2 of 3 nodes are healthy.

Fix: move the authenticate() step inside the endpoint loop, mirroring reconnect().

主要言語
Rust
スター
1
フォーク
0
PR マージ指標
30日以内にマージされた PR はありません

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

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

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

apache/iotdb-client-rust のほかの issue

apache/iotdb-client-rust の issue をすべて見る

似ている issue

Rust の issue をもっと見る

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

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