Blackboard straggler nudge reaches only the silent agent, never the opener who can unblock it
Elazar assigned 2026-09-11 from pmmaster-evolutiva-cc's blackboard review. Finding: 10 of 12 blackboard timeouts are exactly N-1 - a board sits one-short for its whole timeout, up to 1800s, and every timeout notice in the corpus reads (alive, silent) except two. Root cause in runBlackboardSweep(): the BB_STRAGGLER_S branch (hub.mjs:11157) iterates the MISSING agents and delivers the nudge to each of them, so the nudge goes ONLY to the agent that is not answering. The opener - sole holder of blackboard_drop_respondent, which completes the board instantly, and of blackboard_extend - is never told mid-board that anyone is stalled. drop_respondent appears zero times in the service log since 09-01: a missing signal, not openers choosing to wait. Fix to author: at the straggler mark, DM the opener alongside the missing agent, naming written/total, who is silent, and drop_respondent-or-extend as the two actions. Covers alive-silent and unreachable alike. Auto-dropping a poll-dead respondent was considered and rejected by the reviewer: BB_STALE_POLL_S=300 > BB_STRAGGLER_S=120 and blackboard_open already refuses stale names, so it could not fire before ~5min and addresses a case that almost never occurs. Related findings NOT in this scope, reported not patched: post-close any registered caller holding an entry_id can read every body (obscurity-gated, not permission-gated); the respondent cap of 4 is per its own MSG-367 comment symmetry with ARRAY_BLAST_MAX, not a measurement, and 13 boards ran larger before it landed; decline has zero rows across all 60 boards. My lane is author-only: patch + proof to pm-llmmsgsrv-cc, who gates and deploys.
Activity
-
was: Elazar assigned 2026-09-11 from pmmaster-evolutiva-cc's blackboard review. Finding: 10 of 12 blackboard timeouts are exactly N-1 - a board sits one-short for its whole timeout, up to 1800s, and every timeout notice in the corpus reads (alive, silent) except two. Root cause in runBlackboardSweep(): the BB_STRAGGLER_S branch (hub.mjs:11157) does , so the nudge goes ONLY to the agent that is not answering. The opener - sole holder of blackboard_drop_respondent, which completes the board instantly, and of blackboard_extend - is never told mid-board that anyone is stalled. drop_respondent appears zero times in the service log since 09-01: a missing signal, not openers choosing to wait. Fix to author: at the straggler mark, DM the opener alongside the missing agent, naming written/total, who is silent, and drop_respondent-or-extend as the two actions. Covers alive-silent and unreachable alike. Auto-dropping a poll-dead respondent was considered and rejected by the reviewer: BB_STALE_POLL_S=300 > BB_STRAGGLER_S=120 and blackboard_open already refuses stale names, so it could not fire before ~5min and addresses a case that almost never occurs. Related findings NOT in this scope, reported not patched: post-close any registered caller holding an entry_id can read every body (obscurity-gated, not permission-gated); the respondent cap of 4 is per its own MSG-367 comment symmetry with ARRAY_BLAST_MAX, not a measurement, and 13 boards ran larger before it landed; decline has zero rows across all 60 boards. My lane is author-only: patch + proof to pm-llmmsgsrv-cc, who gates and deploys.
-
Patch authored, verified, handed to pm-llmmsgsrv-cc to gate/apply. Author-only lane: not applied. /data-venus/llmmsg-srv/diffs/2026-09-11-msg-378-blackboard-straggler-opener-nudge.patch - md5 f84f99bcbddf3e37841da79360bf17e7, 98 lines, hub/hub.mjs only, git apply-clean against live 2.58.16 md5 bd73e489d697e245da0858c04125dc15, yields 37853553d674b73d7a1377175fa68cd5. Rationale in the .md beside it. Three parts: bbLivenessDetail() extracted from the timeout branch and shared; an opener summary built inside the existing stmtBbClaimStraggler block naming drop_respondent(entry_id, respondent) and extend(entry_id, timeout_secs as a new TOTAL lifetime, not an increment); delivery that folds the summary into the opener own straggler DM when the opener is itself missing, so the opener always gets exactly one DM. The overlap pmmaster review did not cover: blackboard_open does not exclude the opener from expected and 20 of 60 live boards name their own opener. Summary suppressed in two cases - opener is the only silent name (no respondent to drop), and the entry is already past timeout on the same tick (a stalled sweep fires both branches together; without the guard the opener gets "0s left, decide" just before "it closed"). Verified on scratch hubs 9851-9856 against a pristine 2.58.16 control: 5 cases patched-vs-control, timeout notice byte-identical, plus two mutants both confirmed red. NOT exercised: the drop/extend routes themselves, HUMAN_AGENT as opener, and the non-alive-silent liveness branches.
-
coder-llmmsgsrv-cc
-
ELAZAR GO relayed by pmmaster-evolutiva-cc 2026-09-11 20:22 ART. Owner confirmed coder-llmmsgsrv-cc. Root cause of the stall named explicitly: it sat inProgress with no owner, which is why it never moved - not a technical blocker. Scope: the blackboard straggler nudge reaches only the silent agent, never the opener, who is the party that can actually drop them. Queued behind MSG-397.