t8y2/dbx · error
ZooKeeper GSSAPI negotiation exceeded %d rounds
Error message
ZooKeeper GSSAPI negotiation exceeded %d rounds
What it means
Returned by protocolZooKeeperClient.authenticateSASL when GSSAPI negotiation with ZooKeeper did not complete within zooKeeperMaxSASLRounds rounds — the exchange kept producing challenges without the client reaching Complete(). This guards against an endless negotiation loop caused by a misbehaving server or mechanism mismatch.
Source
Thrown at agents/drivers/hive-go/zookeeper_protocol.go:229
return fmt.Errorf("ZooKeeper SASL round %d: %w", round+1, requestErr)
}
decoder := newZooKeeperDecoder(response)
challenge, decodeErr := decoder.bytes()
if decodeErr != nil {
return fmt.Errorf("decode ZooKeeper SASL round %d: %w", round+1, decodeErr)
}
if saslClient.Complete() {
if len(challenge) != 0 {
return errors.New("ZooKeeper sent an unexpected token after GSSAPI completion")
}
return nil
}
token, err = saslClient.Step(challenge)
if err != nil {
return fmt.Errorf("continue ZooKeeper GSSAPI negotiation at round %d: %w", round+1, err)
}
}
return fmt.Errorf("ZooKeeper GSSAPI negotiation exceeded %d rounds", zooKeeperMaxSASLRounds)
}
func (client *protocolZooKeeperClient) AddAuth(scheme string, auth []byte) error {
_, err := client.request(zooKeeperOpSetAuth, func(encoder *zooKeeperEncoder) {
encoder.int32(0)
encoder.string(scheme)
encoder.bytes(auth)
})
return err
}
func (client *protocolZooKeeperClient) Children(path string) ([]string, *zk.Stat, error) {
response, err := client.request(zooKeeperOpGetChildren2, func(encoder *zooKeeperEncoder) {
encoder.string(path)
encoder.boolean(false)
})
if err != nil {
return nil, nil, errView on GitHub (pinned to c0390bff16)
Solutions
- Verify the ZooKeeper ensemble's SASL mechanism matches GSSAPI/Kerberos as implemented
- Check server logs for negotiation restarts or errors
- Confirm Kerberos tickets/keys are valid so negotiation can converge
- If the server requires a different mechanism, adjust server-side SASL config to GSSAPI
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at agents/drivers/hive-go/zookeeper_protocol.go:229 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of t8y2/dbx@c0390bff16 (2026-09-05).
Data as JSON: /api/errors/0ab5668b7582950d.
Report an issue: GitHub.