--- id: "bug-1480" status: "fixed" status_updated: "2026-09-24" status_note: "" component: "controller" severity: "unknown" timestamp: "2026-07-29T07:05:00Z" last_seen: "2026-09-19T09:00:00Z" occurrences: 1 files: ["src/controller/config_repl.c (handle_repl_config_push", "~1261-1337)"] tags: ["config_repl.c", "handle_repl_config_push", "ReplConfigPushReply", "silent-drop-on-reject", "same-family-as-bug-1479", "raft-adapter-conformance", "found-not-yet-fixed", "config-push-channel", "term-discovery-gap"] related: ["bug-1479"] fix_commits: ["b7828eed"] legacy: true --- # bug-1480: raft-adapter-conformance systematic audit finding (not yet fixed): handle_repl_config_push… ## Description raft-adapter-conformance systematic audit finding (not yet fixed): handle_repl_config_push (config_repl.c:1261-1337) has 4 reject paths (malformed body, missing bytes/sha256, sha256 mismatch, conf_save_config failure) that all return without ever sending a ReplConfigPushReply. Only the success path (1326-1335) sends {accepted=1}; there is no {accepted=0} anywhere in this function, despite its own doc-comment implying a reject reply exists. cluster.c dispatch case (652-655) has no fallback error-reply either. ## Environment _Not recorded (migrated from buglog.json)._ ## Reproduction _Not recorded (migrated from buglog.json)._ ## Root cause Same defect class as bug-1479 (silent-drop-on-reject) but on the out-of-band config-push channel instead of the WAL catch-up channel: the reject branches never construct/send a reply message at all, so push_config_to_standbys / repl_wait_majority_ack cannot distinguish an active standby rejection from a lost packet -- both degrade identically to CONF_PUSH_TIMEOUT_MS. ## Fix FIXED (2026-07-29, ~09:43, commit b7828eed "feat(raft-adapter-conformance): send explicit reply on every config-push outcome"). handle_repl_config_push now constructs and sends ReplConfigPushReply{accepted=0, term=current_term} on all four reject early-returns (malformed request, missing bytes/sha256, sha256 mismatch, conf_save_config failure) instead of returning silently; term populated on the success path too. Landed as raft-adapter-conformance tasks 2.1-2.3 (see tasks.md), tested end-to-end in test_config_repl.c, confirmed live in task 7.3's soak. This buglog entry's original 'Not yet fixed' note (07:05 same day) predates the fix landing by ~2.5h and was never updated -- code is fixed, only this log entry was stale. ## Verification _Not recorded (migrated from buglog.json)._ ## References - Related: bug-1479