Skip to content

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

Description

@CritasWang

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions