carlos / platform Public
Reviewed 56ea4a15.
| Round 4 finding | Disposition | Assessment | |---|---|---| | #1: converted moves pin before naming a target | Resolved | Task 5D names missing targets before pin selection on every path and adds the no-eligible-target interleaving. | | #2: one-box matrix misses actual pinning | Resolved | Phase predicates distinguish PinFailover’s starting from pinning; the matrix exercises both boundaries. | | #3: initial failovers bypass start guards | Resolved | Failover starts now check eligibility, admission and the relocation start guard, with tests for closed admission and outstanding park-replica. |
- P2 — Task 3, Step 1, and Task 5B, Step 1: a pending target fence allows phase work to continue.
fenceStep returns true only when fencing changes the claim version. When a terminated target has no eligible replacement and its deadline has not passed, replaceTarget refuses the CAS. Consequently, workerMode continues into role.
For example, terminate an acknowledged target in starting, with no spare eligible. The source’s worker can advance to releasing while replacement remains blocked. At pinning, it can likewise select a pin while the dead target remains named.
In 1b-next rev 19, Worker.Step returns w.replace(...) immediately upon finding the target’s fence, before the phase switch (lines 6949–6958). That pending fence therefore blocks regional phase transitions even when replacement changes nothing. The model still permits an ordering that production refuses.
Fix: distinguish “relocation fence pending” from “no fence” and block regional phase transitions in the former case. Keep independent participant work schedulable. Add a mutation-sensitive test that terminates an acknowledged target in starting and separately in pinning, holds replacements ineligible, and asserts no phase advance or pin selection before replacement or the deadline.
The four new Go files reconstructed from their sequential patches passed gofmt syntax checks. Compilation, runtime tests and mutations were not independently reproduced in this read-only workspace. No files changed or sweeps ran.
---
FIRST PROMPT: Review the plan at 56ea4a15 using review brief 5.
WHAT: Check prior dispositions and report new findings.
STATUS: All three round 4 findings resolved; one new P2 finding.
NEEDED: Nothing for this review.
RECOMMENDED: Correct pending-fence scheduling and add the discriminating test.
SESSION: Safe to close — no changes or processes left running.
Verdict: not ready.