Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

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

已关闭 适合新手
#657 1 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

还没有人认领这个 Issue。

评估

难度
2/5
预计耗时
1-3 小时
新手友好度
76/100
Issue 类型
缺陷
描述清晰度
描述清楚
活跃度
活跃
技术栈
typescript
领域
backend

调研方向

从 src/leasing/wait-queue.ts 开始,重点查看 WaitQueue#markNew、enqueue、#armTimeout 以及第365–369行附近的注释。追踪处理流程中非reject分支如何将已过期的waiter返回到queued,然后检查 eviction continue 和 provision-retry 的调用方。当超过截止时间的 waiter 无需后续 enqueue 或 markProcessing 就能被 settled 时,工作即告完成。

由索引模型根据 Issue 内容生成。

描述

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.

主要语言
TypeScript
星标
20
派生
2
平均合并
8 小时 13 分钟
30 天内合并 PR
297

环境准备

这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

callstackincubator/simlock 的其他 Issue

查看 callstackincubator/simlock 的全部 Issue

相似的 Issue

更多 TypeScript Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。