apache / apache/iotdb-client-rust
Session::open does not fail over when openSession/requestStatementId fails (only TCP-layer failover)
- Vorherrschende Sprache
- Rust
- Sterne
- 1
- Forks
- 0
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
`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()`.
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Rechercherichtung
Beginne bei Session::open und vergleiche dessen Endpunkt-Schleife mit reconnect(). Verfolge authenticate(), einschließlich openSession und requestStatementId, um zu verstehen, wo jeder Fehler behandelt wird. Als abgeschlossen gilt, dass Authentifizierungsfehler dazu führen, dass der nächste konfigurierte Endpunkt ausprobiert wird, entsprechend dem Verhalten von reconnect(); in der Issue wird keine Testdatei genannt.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- rust
- Bereich
- databases
- Issue-Typ
- Bug
- Schwierigkeit
- 2/5
- Geschätzter Aufwand
- 1-3 Stunden
- Aktivitätsstatus
- Aktiv
- Klarheit
- Klar beschrieben
- Anfängerfreundlichkeit
- 78/100