Development record
2026-10-17 — A land fence that cannot read the reservation from origin is a wait by design, never a refusal a drain counts toward a stuck lane (facilitator-on-delegation, drain-many-accounts; refines dcn-2610170005357588 and dcn-2610170028405029): at the push and at the arming alike, any fetch the fence makes that fails is never logged as the lane's refused, whatever git says, since the drain's own read of origin at every move already waits on an origin it cannot read and gives up on one that stays unread through the outage schedule; a failure that reads as a lost network (implement.IsNetworkFailure) also waits on the shared outage probe, as the push's own failure does, and any other failure does not, because the network probe proves only the network back (grounds: one bound for an unreadable origin, the drain's, rather than a second one at the lane; the push's netFailure as the existing shape; review of spc-2610161044461448 steps 5 and 7)
2026-10-17 — A land fence that cannot read the reservation from origin is a wait by design, never a refusal a drain counts toward a stuck lane (facilitator-on-delegation, drain-many-accounts; refines dcn-2610170005357588 and dcn-2610170028405029): at the push and at the arming alike, any fetch the fence makes that fails is never logged as the lane's refused, whatever git says, since the drain's own read of origin at every move already waits on an origin it cannot read and gives up on one that stays unread through the outage schedule; a failure that reads as a lost network (implement.IsNetworkFailure) also waits on the shared outage probe, as the push's own failure does, and any other failure does not, because the network probe proves only the network back (grounds: one bound for an unreadable origin, the drain's, rather than a second one at the lane; the push's netFailure as the existing shape; review of spc-2610161044461448 steps 5 and 7)
Frontmatter
| id | dcn-2610170116582725 |
|---|---|
| type | decision |
| date | 2026-10-17 |
.abcd/work/decisions/dcn-2610170116582725-a-land-fence-that-cannot-read-the.md
open on GitHub ↗ · commit history ↗
mentions4
- dcn-26101700053575882026-10-17 — A drain lane's refusals are logged on the lane of an issue run only, and a stuck lane is discarded by the step verb (facilitator-on-delegation, drain-many-accounts): only an issue run, the run a drain or abcd build <iss-N> opens, logs a refused step, on its lane as the state's refused (the stage, the check, the reason, a count of the same refusal in a row, since when it has refused at that stage, and why it cannot change), so an intent's run still writes nothing on a refusal; the run record gains a line only when a new count starts or a refusal turns final, so a host polling a refusing lane does not grow it; the state's schema goes to version 13, which version-12 releases refuse as a newer abcd's file; the bounds are pace.stuck_refusals (bundled 3) and pace.stuck_minutes (bundled 60), claimed in the pace's namespace and read through its layers at every drain move rather than stored in the drain's pace, so a changed bound applies from the next move; a refusal that cannot change is a brief refused for an issue resolved or wontfix at the lane's base, and a land fence finding the reservation another person's or released as finished on origin's default branch; and implement step --discard takes a lane handed back as stuck, after which the issue run is complete (grounds: dead-letter redrive after a maximum receive count, as Amazon SQS maxReceiveCount, with the refusal contract of the loop kept where no drain reads it; spc-2610161044461448 step 5; iss-2610161015368630)
- dcn-26101700284050292026-10-17 — The landing's push fence renews with the tip's own term, and a lane it stops on another person's hold is handed back as stuck (facilitator-on-delegation, drain-many-accounts): the check before the push is the land fence's own act, a fetch and a live renewal of this person's reservation from this copy, made for every run that holds a reservation, an intent's included, since a duplicate pull request is as wrong there; it renews with the tip's own term (renewalTerm) rather than the fence's day, so the push neither cuts nor stretches the lease the arming later sets; its refusals are the fence's, contention, worded for the push; a hold now another person's, or released as finished on origin's default branch, is a refusal that cannot change, so the drain hands the lane back at once through the stuck lane's route, kind stuck, with no new hand-back kind; and the drain's renewal of the lane in progress reads the move's own view, renews only a lane not parked at land (the merged-lane finish renews those), and names a renewal that failed or found the hold another's in the move's next step (grounds: lease keep-alives as Chubby and etcd keep them, fencing before a write, and one canonical primitive for the stuck route; spc-2610161044461448 step 7; iss-2610161015393523)
- dcn-26101707144888972026-10-17 — A lane held by another person's release cut is waiting, not stuck: a drain never counts a release hold at the push or arming fence towards handing the lane back, because the cut is a pause someone chose and lifts when the release is tagged. Refines dcn-2610170116582725.
- spc-2610161044461448drain-many-accounts