{"record":{"id":"f7343b1f843f5be6","repo":"t8y2/dbx","slug":"bench-candidates-selected-no-candidates-f7343b","errorCode":null,"errorMessage":"BENCH_CANDIDATES selected no candidates","messagePattern":"BENCH_CANDIDATES selected no candidates","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"agents/drivers/cassandra-go/bench/agent_compare.py","lineNumber":178,"sourceCode":"        \"results\": results,\n    }\n    json.dump(output, sys.stdout, ensure_ascii=False, indent=2)\n    sys.stdout.write(\"\\n\")\n\n\ndef configured_candidates() -> list[Candidate]:\n    selected = {item.strip() for item in env_default(\"BENCH_CANDIDATES\", \"go,jdbc\").split(\",\") if item.strip()}\n    candidates = []\n    if \"go\" in selected:\n        artifact = required_path(\"GO_AGENT\")\n        candidates.append(Candidate(\"go-native\", [str(artifact)], artifact, os.getenv(\"GO_RSS_COMMAND\", \"\")))\n    if \"jdbc\" in selected:\n        artifact = required_path(\"JDBC_AGENT_JAR\")\n        raw_command = os.getenv(\"JDBC_AGENT_COMMAND\", \"\")\n        command = shlex.split(raw_command) if raw_command else [env_default(\"JAVA_BIN\", \"java\"), \"-jar\", str(artifact)]\n        candidates.append(Candidate(\"jdbc-java\", command, artifact, os.getenv(\"JDBC_RSS_COMMAND\", \"\")))\n    if not candidates:\n        raise ValueError(\"BENCH_CANDIDATES selected no candidates\")\n    return candidates\n\n\ndef connection_params() -> dict:\n    return {\n        \"host\": env_default(\"CASSANDRA_HOST\", \"127.0.0.1\"),\n        \"port\": env_int(\"CASSANDRA_PORT\", 9042),\n        \"database\": env_default(\"CASSANDRA_KEYSPACE\", \"dbx_native_test\"),\n        \"username\": os.getenv(\"CASSANDRA_USERNAME\", \"\"),\n        \"password\": os.getenv(\"CASSANDRA_PASSWORD\", \"\"),\n        \"url_params\": os.getenv(\"CASSANDRA_URL_PARAMS\", \"\"),\n        \"connection_string\": os.getenv(\"CASSANDRA_CONNECTION_STRING\", \"\"),\n        \"ssl\": env_bool(\"CASSANDRA_SSL\", False),\n        \"ca_cert_path\": os.getenv(\"CASSANDRA_CA_CERT_PATH\", \"\"),\n        \"client_cert_path\": os.getenv(\"CASSANDRA_CLIENT_CERT_PATH\", \"\"),\n        \"client_key_path\": os.getenv(\"CASSANDRA_CLIENT_KEY_PATH\", \"\"),\n    }\n","sourceCodeStart":160,"sourceCodeEnd":196,"githubUrl":"https://github.com/t8y2/dbx/blob/c0390bff16418b651f4728520d99adf8ce48829a/agents/drivers/cassandra-go/bench/agent_compare.py#L160-L196","documentation":"configured_candidates builds the list of agent candidates from BENCH_CANDIDATES selections; if no known candidate is selected or the resulting list is empty, it raises ValueError('BENCH_CANDIDATES selected no candidates'). The bench cannot run without at least one agent.","triggerScenarios":"BENCH_CANDIDATES is empty/unset, contains only unrecognized tokens (not e.g. 'jdbc'), or every selected branch fails to append a candidate.","commonSituations":"Forgot to set BENCH_CANDIDATES in CI; typo like 'jdbc ' with different casing or an unsupported name; variable exported as blank in a pipeline.","solutions":["Set BENCH_CANDIDATES to a supported name, e.g. export BENCH_CANDIDATES=jdbc","Check spelling against the supported selection tokens in configured_candidates","Verify the variable is actually exported in your shell/CI environment"],"exampleFix":"// before\nBENCH_CANDIDATES= python agent_compare.py\n// after\nBENCH_CANDIDATES=jdbc python agent_compare.py","handlingStrategy":"validation","validationCode":"raw = os.getenv(\"BENCH_CANDIDATES\", \"\")\nselected = {token.strip() for token in raw.split(\",\") if token.strip()}\nif not selected:\n    raise SystemExit(\"BENCH_CANDIDATES must name at least one supported candidate (e.g. jdbc)\")\nprint(f\"candidates selected: {sorted(selected)}\")","typeGuard":null,"tryCatchPattern":"try:\n    candidates = configured_candidates()\nexcept ValueError as exc:\n    if \"selected no candidates\" in str(exc):\n        sys.exit(\"set BENCH_CANDIDATES, e.g. export BENCH_CANDIDATES=jdbc\")\n    raise","preventionTips":["Export BENCH_CANDIDATES explicitly in run scripts and CI pipelines","Echo the variable value at the top of your bench wrapper for visibility","Keep candidate names in a documented constant list and validate with shellcheck-style linting"],"tags":["python","configuration","environment","validation"],"backgroundTag":"missing-env-var","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"}