apache / apache/iotdb-client-rust

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

Aperta Adatta ai principianti
#5 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub
bug
Lingua principale
Rust
Stelle
1
Fork
0
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

`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()`.

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Direzione di ricerca

Start at Session::open and compare its endpoint loop with reconnect(). Trace authenticate(), including openSession and requestStatementId, to understand where each failure is handled. Done means authentication failures cause the next configured endpoint to be tried, matching reconnect() behavior; no test file is named in the issue.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
rust
Ambito
databases
Tipo di issue
Bug
Difficoltà
2/5
Tempo stimato
1-3 ore
Stato di attività
Attiva
Chiarezza
Specificata chiaramente
Idoneità per principianti
78/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.