{"record":{"id":"0ab5668b7582950d","repo":"t8y2/dbx","slug":"zookeeper-gssapi-negotiation-exceeded-d-rounds-0ab566","errorCode":null,"errorMessage":"ZooKeeper GSSAPI negotiation exceeded %d rounds","messagePattern":"ZooKeeper GSSAPI negotiation exceeded (.+?) rounds","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"agents/drivers/hive-go/zookeeper_protocol.go","lineNumber":229,"sourceCode":"\t\t\treturn fmt.Errorf(\"ZooKeeper SASL round %d: %w\", round+1, requestErr)\n\t\t}\n\t\tdecoder := newZooKeeperDecoder(response)\n\t\tchallenge, decodeErr := decoder.bytes()\n\t\tif decodeErr != nil {\n\t\t\treturn fmt.Errorf(\"decode ZooKeeper SASL round %d: %w\", round+1, decodeErr)\n\t\t}\n\t\tif saslClient.Complete() {\n\t\t\tif len(challenge) != 0 {\n\t\t\t\treturn errors.New(\"ZooKeeper sent an unexpected token after GSSAPI completion\")\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\t\ttoken, err = saslClient.Step(challenge)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"continue ZooKeeper GSSAPI negotiation at round %d: %w\", round+1, err)\n\t\t}\n\t}\n\treturn fmt.Errorf(\"ZooKeeper GSSAPI negotiation exceeded %d rounds\", zooKeeperMaxSASLRounds)\n}\n\nfunc (client *protocolZooKeeperClient) AddAuth(scheme string, auth []byte) error {\n\t_, err := client.request(zooKeeperOpSetAuth, func(encoder *zooKeeperEncoder) {\n\t\tencoder.int32(0)\n\t\tencoder.string(scheme)\n\t\tencoder.bytes(auth)\n\t})\n\treturn err\n}\n\nfunc (client *protocolZooKeeperClient) Children(path string) ([]string, *zk.Stat, error) {\n\tresponse, err := client.request(zooKeeperOpGetChildren2, func(encoder *zooKeeperEncoder) {\n\t\tencoder.string(path)\n\t\tencoder.boolean(false)\n\t})\n\tif err != nil {\n\t\treturn nil, nil, err","sourceCodeStart":211,"sourceCodeEnd":247,"githubUrl":"https://github.com/t8y2/dbx/blob/c0390bff16418b651f4728520d99adf8ce48829a/agents/drivers/hive-go/zookeeper_protocol.go#L211-L247","documentation":"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.","triggerScenarios":"Thrown at agents/drivers/hive-go/zookeeper_protocol.go:229 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","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"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"c0390bff16418b651f4728520d99adf8ce48829a","analyzedAt":"2026-09-05T23:05:10.900Z","contentChangedAt":"2026-09-05T23:05:10.900Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}