Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

WaitQueue#markNew returns a waiter to queued with no timeout armed

Open Beginner friendly
#657 1 comment 0 reactions 0 assignees View on GitHub

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

bug:needs-info

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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from callstackincubator/simlock

All issues in callstackincubator/simlock

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.