docs: M5c-1 review finding 7 closed: the two flaky tests fixed

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-09-28 14:26:52 -07:00
co-authored by Claude Opus 5.5
parent e83b53b8b6
commit 572b582038
2 changed files with 9 additions and 7 deletions
+1 -1
View File
@@ -904,7 +904,7 @@ do.
| 4 | low | plan (tasks 11, 14) | `bxctl memory sync` showed neither a refused key nor an outage, which spec sections 10 and 13 require. | Review `3d266df`: a shared leaf-locked `Status` (refused keys, Honcho outage, `brokerd` unanswered, log unreadable) in the report; every Honcho runbook entry now says what sync shows; `tests/honcho_status.rs` |
| 5 | low | plan (task 08) | One invisible character inside a key split it for the secret rules (masked to a space), so the turn was sent. | Review `bd4cf9f`: the rules also run on the text with those characters deleted; `tests/honcho_decide_hidden.rs` |
| 6 | low | plan (task 11) | Any error reading a session log marked the turn failed for good, a passing I/O error included. | Review `5e57cd6`: an error other than NotFound is waited out with its own backoff and status line; a missing or damaged log still fails; `tests/honcho_worker_log.rs` |
| 7 | low | tests (M4a) | gatewayd's `brokerd_closing_first_ends_it_as_no_longer_pending` fails 2 of 10 runs on a loaded talos without any M5c-1 change: the handler can hold the answer's receiver after `Ended`. loopd's `pointers` failed once under load in task 15. | Open; listed in the plan README; tip T52 |
| 7 | low | tests (M4a) | gatewayd's `brokerd_closing_first_ends_it_as_no_longer_pending` fails 2 of 10 runs on a loaded talos without any M5c-1 change: the handler can hold the answer's receiver after `Ended`. loopd's `pointers` failed once under load in task 15. | Review `45be83b`: the handler drops the answer's receiver before it sends `Ended` (a real race: an answer in the gap was reported sent and lost), 10 of 60 failures under load before, 0 of 100 after. Review `e83b53b`: `loopd` prints every startup notice before it binds, and its serve tests wait for "serving on" instead of the socket (`tests/support/serving.rs`); 0 of 120 parallel runs failed. Tip T52 |
| 8 | low | Ornith (task 12) | A "before" block did not match after its own earlier edit reordered imports; it anchored on its own line and logged no deviation. | Noted; AGENTS.md rule; tip T54 |
| 9 | nit | plan (every task) | Every task said to run `git switch m5c1`, which AGENTS.md forbids and the harness refused. The gate count in every task's stop list did not say it includes the ignored `end_to_end` test, which cost tasks 03, 13 and 15 much of their time. | Tips T50, T51; AGENTS.md now defines the count |
+8 -6
View File
@@ -98,13 +98,15 @@ owner's Mattermost.
- Task 12 decides only; task 13 sends. Task 15 was added for the owner's decision 1 and for the
matching of conclusions by peer found while writing task 13.
## Known issue
## Known issue (fixed in review)
`gatewayd`'s `gateway_sock` test `brokerd_closing_first_ends_it_as_no_longer_pending` fails now and
then on a loaded machine (2 of 10 runs without any M5c-1 change, at a load average near 10, on
talos): after `Ended` arrives, the handler can still hold the answer's receiver for a moment. It is
a timing race in the test, not in `memoryd`. Tasks 13 to 15 tell the implementer: if it is the one
test that fails, run the gate once more. To be fixed after M5c-1.
`gatewayd`'s `gateway_sock` test `brokerd_closing_first_ends_it_as_no_longer_pending` failed now
and then on a loaded machine (2 of 10 runs without any M5c-1 change, at a load average near 10, on
talos), and `loopd`'s `pointers` once in task 15. Tasks 13 to 15 told the implementer to run the
gate once more if it was the one test that failed. Both were fixed in the review (review finding
7 in `docs/implementer-log.md`): the first was a race in `gatewayd`'s handler, which said an
approval had ended while it still held the answer's receiver; the second was the serve tests
stopping `loopd` as soon as its socket appeared, before it had printed its startup lines.
## Before hand-over