apache / apache/iotdb-client-rust

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

Abierto Apto para principiantes
#5 0 comentarios 0 reacciones 0 asignados Ver en GitHub
bug
Lenguaje dominante
Rust
Estrellas
1
Forks
0
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

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

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Línea de trabajo

Comienza en Session::open y compara su bucle de endpoints con reconnect(). Sigue authenticate(), incluidos openSession y requestStatementId, para entender dónde se gestiona cada fallo. Se considera terminado cuando los fallos de autenticación hacen que se pruebe el siguiente endpoint configurado, siguiendo el comportamiento de reconnect(); en la issue no se nombra ningún archivo de pruebas.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
rust
Área
databases
Tipo de issue
Error
Dificultad
2/5
Tiempo estimado
1-3 horas
Estado de actividad
Activo
Claridad
Bien especificado
Aptitud para principiantes
78/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.