WaitQueue#markNew returns a waiter to queued with no timeout armed
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 76/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- typescript
- Domain
- backend
Research direction
Start with src/leasing/wait-queue.ts, especially WaitQueue#markNew, enqueue, #armTimeout, and the comment around lines 365–369. Trace how the processing non-reject branch can return an expired waiter to queued, then check the eviction continue and provision-retry callers. Done when a waiter past its deadline is settled without needing a later enqueue or markProcessing.
Written by the indexing model from the issue text.
Description
Found while triaging #647.
WaitQueue#markNew (src/leasing/wait-queue.ts:273) sets a waiter back to queued without calling #armTimeout (src/leasing/wait-queue.ts:371), which is only reached from enqueue (wait-queue.ts:246). A waiter whose timer already fired mid-attempt (the processing non-reject branch) and is then returned by markNew sits queued with timer === undefined and deadlineAt already past: no timer can reject it, and it is only settled if some later enqueue/markProcessing happens to run its deadline check. The lease coordinator's markNew callers are the eviction continue path and the provision-retry first failure, so a waiter on either can outlive its timeoutMs indefinitely.
The gap is named in the comment at wait-queue.ts:365-369 but has no issue. Its edge is a waiter past deadlineAt that nothing ever re-enqueues.
Written by an agent.
- Dominant language
- TypeScript
- Stars
- 20
- Forks
- 2
- Avg merge
- 7h 26m
- Merged PRs (30d)
- 253
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from callstackincubator/simlock
-
Console lane deletes a failed daemon's home, so a start failure names no causePossibly taken @V3RON claimed this today. Openbug:triage
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
callstackincubator/simlock#673 · 1 assignee ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
callstackincubator/simlock#639 ·
Maintainers usually reply within 1 day
-
bug:new
Difficulty 4/5 3-5 days Newbie friendliness 45/100
callstackincubator/simlock#684 ·
Maintainers usually reply within 1 day
-
A preview system image installed makes the newest runtime its codename, not the highest API levelPossibly taken @V3RON claimed this 1 day ago. Openbug:ready
callstackincubator/simlock#678 · 1 assignee ·
Maintainers usually reply within 1 day
-
`worker.rejected` carries `count: 1` on an isolated refusal, which the catalogs say it must never doPossibly taken @V3RON claimed this 1 day ago. Openbug:ready
callstackincubator/simlock#677 · 1 assignee ·
Maintainers usually reply within 1 day
All issues in callstackincubator/simlock
Similar issues
-
freshness freshness:observed-only
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
thoroc/context-radar#280 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 66/100
-
documentation story
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
Maintainers usually reply within 1 day
-
bug category:billing priority:p3 track:fast
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
LanternOps/breeze#9223 ·
Maintainers usually reply within 1 day