{"record":{"id":"52e23275b6e5b02a","repo":"t8y2/dbx","slug":"resolve-kerberos-server-name-cassandra-host-is-un","errorCode":null,"errorMessage":"resolve Kerberos server name: Cassandra host is unavailable","messagePattern":"resolve Kerberos server name: Cassandra host is unavailable","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"agents/drivers/cassandra-go/kerberos.go","lineNumber":426,"sourceCode":"\tbinary.LittleEndian.PutUint32(checksum[20:24], flags)\n\treturn checksum\n}\n\nfunc kerberosQOPIncludesAuth(value string) bool {\n\tfor _, qop := range strings.Split(value, \",\") {\n\t\tif strings.EqualFold(strings.TrimSpace(qop), \"auth\") {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\nfunc kerberosServerName(config kerberosConfig, host *gocql.HostInfo) (string, error) {\n\tif config.serverName != \"\" {\n\t\treturn strings.TrimSuffix(strings.TrimSpace(config.serverName), \".\"), nil\n\t}\n\tif host == nil {\n\t\treturn \"\", fmt.Errorf(\"resolve Kerberos server name: Cassandra host is unavailable\")\n\t}\n\taddress := host.ConnectAddress()\n\tif address != nil {\n\t\tnames, err := net.LookupAddr(address.String())\n\t\tif err == nil && len(names) > 0 {\n\t\t\treturn strings.TrimSuffix(strings.TrimSpace(names[0]), \".\"), nil\n\t\t}\n\t}\n\thostname, _, err := net.SplitHostPort(host.HostnameAndPort())\n\tif err == nil && hostname != \"\" && net.ParseIP(hostname) == nil {\n\t\treturn strings.TrimSuffix(hostname, \".\"), nil\n\t}\n\treturn \"\", fmt.Errorf(\"resolve Kerberos server name for Cassandra host %s; configure kerberosservername explicitly\", host.ConnectAddressAndPort())\n}\n\nfunc (config *kerberosConfig) applyJavaSystemProperties() {\n\tif config.jaasConfigPath == \"\" {\n\t\tconfig.jaasConfigPath = javaSystemProperty(\"java.security.auth.login.config\")","sourceCodeStart":408,"sourceCodeEnd":444,"githubUrl":"https://github.com/t8y2/dbx/blob/c0390bff16418b651f4728520d99adf8ce48829a/agents/drivers/cassandra-go/kerberos.go#L408-L444","documentation":"Returned by kerberosServerName when no explicit kerberosservername is configured and the driver cannot supply a Cassandra host (host is nil) from which to reverse-derive the service principal name. Without a host there is no basis for the SPN, so Kerberos authenticator construction fails.","triggerScenarios":"Thrown at agents/drivers/cassandra-go/kerberos.go:426 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Set kerberosservername explicitly in the connection configuration to the Cassandra host's FQDN","Ensure the driver received at least one host from contact points so reverse lookup is possible"],"exampleFix":null,"handlingStrategy":"fallback","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-14T00:17:10.932Z"}