apache / apache/iotdb-client-rust
Session::open does not fail over when openSession/requestStatementId fails (only TCP-layer failover)
- Linguagem predominante
- Rust
- Estrelas
- 1
- Forks
- 0
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Descrição
`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()`.
Guia de contribuição
Nenhum guia de contribuição indexado para este repositório
Direção de pesquisa
Comece em Session::open e compare seu loop de endpoints com reconnect(). Rastreie authenticate(), incluindo openSession e requestStatementId, para entender onde cada falha é tratada. O trabalho estará concluído quando falhas de autenticação fizerem com que o próximo endpoint configurado seja tentado, correspondendo ao comportamento de reconnect(); nenhum arquivo de teste é nomeado na issue.
Escrita pelo modelo de indexação a partir do texto da issue.
Avaliação
- Stack de tecnologia
- rust
- Domínio
- databases
- Tipo de issue
- Bug
- Dificuldade
- 2/5
- Tempo estimado
- 1-3 horas
- Status de atividade
- Ativa
- Clareza
- Claramente especificada
- Facilidade para iniciantes
- 78/100