From e3edf11cf81ab21a7184ee969173245a97d7237c Mon Sep 17 00:00:00 2001 From: Marius Ciepluch <11855163+norandom@users.noreply.github.com> Date: Tue, 22 Sep 2026 22:02:38 +0200 Subject: [PATCH] fix(cpg): count requests, not the census key, when reporting a split retry The warning once read 22126 of 22125 requests answered in parts, because the census rides the answer under its own key and was counted as a request. An instrument that miscounts by one casts doubt on every number beside it. Co-Authored-By: Claude Fable 5.1 Claude-Session: https://claude.ai/code/session_01EmM1j46qgKMh3zqD1QMwEo --- src/openultrasast/cpg/backend.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/openultrasast/cpg/backend.py b/src/openultrasast/cpg/backend.py index 29a9b2b..5c765e3 100644 --- a/src/openultrasast/cpg/backend.py +++ b/src/openultrasast/cpg/backend.py @@ -1163,7 +1163,11 @@ class JoernBackend: merged.setdefault(rid, rows) if recovered: self._note("batch_split_after_failure:" + query) - logger.warning("cpg batch %s failed whole; %d of %d requests answered in parts", query, len(merged), len(requests)) + # Requests only. The census rides the answer under its own key and is not a request; counting it + # once printed "22126 of 22125 requests answered", and an instrument that miscounts by one casts + # doubt on every number beside it. + answered_requests = sum(1 for rid in merged if rid in requests) + logger.warning("cpg batch %s failed whole; %d of %d requests answered in parts", query, answered_requests, len(requests)) return merged if recovered else None def _batch_once(self, cpg_path: Path, query: str, requests: Mapping[str, Mapping[str, object]]) -> dict[str, list[object]] | None: