Development record
2026-10-17 — A drain lane's sixty-minute stuck bound counts only the time across which its refusals kept coming (facilitator-on-delegation, drain-many-accounts; refines dcn-2610170005357588): the minutes run from the first refusal at the stage to the last one logged, never to the move that reads them, so a lane that refused once and then sat idle is not handed back by a move that came only to renew it; a refusal more than fifteen minutes after the lane's last, the drain's look-again time, starts the time afresh at that stage, as a quiet that long is not refusing; the count of identical refusals in a row is unchanged (grounds: the dead-letter bound counts receives, not wall time, so time without a receive is not evidence the lane cannot finish; the drain's fifteen-minute look-again as the cadence a host stepping as told keeps; review of spc-2610161044461448 step 5)
2026-10-17 — A drain lane's sixty-minute stuck bound counts only the time across which its refusals kept coming (facilitator-on-delegation, drain-many-accounts; refines dcn-2610170005357588): the minutes run from the first refusal at the stage to the last one logged, never to the move that reads them, so a lane that refused once and then sat idle is not handed back by a move that came only to renew it; a refusal more than fifteen minutes after the lane's last, the drain's look-again time, starts the time afresh at that stage, as a quiet that long is not refusing; the count of identical refusals in a row is unchanged (grounds: the dead-letter bound counts receives, not wall time, so time without a receive is not evidence the lane cannot finish; the drain's fifteen-minute look-again as the cadence a host stepping as told keeps; review of spc-2610161044461448 step 5)
Frontmatter
| id | dcn-2610170118506273 |
|---|---|
| type | decision |
| date | 2026-10-17 |
.abcd/work/decisions/dcn-2610170118506273-a-drain-lane-s-sixty-minute-stuck-bound.md
open on GitHub ↗ · commit history ↗
mentions3
- 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)
- itd-2610161016391855A stuck drain lane hands itself back
- spc-2610161044461448drain-many-accounts