A held (queued) task cannot be stopped and keeps the repo write-lock
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
调研方向
Build dev 837b2b0 and reproduce the held-task flow with task.max_load forced low. Read internal/session/task_run.go:1264 and task_pressure.go:447, then trace admission, folder locking, and the stop path for queued tasks. Done means the e2e cases pass: stopping a held task marks it stopped immediately, and a not-yet-started held task holds no repo write-lock.
由索引模型根据 Issue 内容生成。
描述
Seen on: dev 837b2b0.
Behaviour
A senior-dev task held by the busy-machine gate read queued · 10m 47s with no reason. /stop then 1 stop it did not stop it (still queued). While it was held, another team's member could not edit the folder: the repo write-lock is held by the other window's still-running PATCH task. Only restarting the engine ended it, and after the restart tasks.json still said running for that task. A held task should be stoppable, and a task that has not started should not hold the folder's write-lock.
Replication
- Build dev 837b2b0 (
git checkout 837b2b0 && make build), or install the dev build withcurl -fsSL https://agentfield.ai/get/devaf | bash. - Use an isolated profile:
export HOME=$(mktemp -d), exportOPENROUTER_API_KEY, default model. - Leave the busy-machine gate ON for this one (step 5 forces it).
- Make a small repo:
R=$(mktemp -d) && cd "$R" && git init -q && printf 'package main\n\nfunc main() {}\n' > main.go && printf 'module demo\n\ngo 1.22\n' > go.mod && git add -A && git commit -qm init. - Force the hold: set
task.max_loadto a value below the machine's current load per core (for example0.01) under/settings. - Ask a manager to hand a change to senior-dev (or run
/taskfor a small change). The task showsqueued. /stop, choose1 stop it: the task staysqueued.- From another conversation in the same repo, ask for a small edit: it is refused with the write-lock line.
Evidence
- Screen:
queued · 10m 47s; after/stop→1 stop it, stillqueued; the other member:the repo write-lock is held by the other window's still-running PATCH task. - tasks.json
"state": "running", the task folder empty, the task branch already checked out, no model calls for 23 minutes. internal/session/task_run.go:1264:graph.governor = newAdmissionGovernor(a.config.TaskMaxLoad, ...); the hold happens at admission (task_pressure.go:447,heldBy = config.KeyTaskMaxLoad).
Guessed cause
A guess from reading the code, not a confirmed diagnosis. The busy-machine hold happens after the folder lock and branch are taken, and the stop path covers only tasks that have started.
Acceptance
- e2e: with the gate forced as above,
/stop→1 stop itends the queued task at once (rowstopped), and another conversation can then edit the repo. - e2e: while a task is held and not started, no write-lock is held on its repo.
Found while writing the public docs; manual text differences are in #1545.
🤖 Generated with Claude Code
- 主要语言
- Go
- 星标
- 115
- 派生
- 14
- 平均合并
- 9 小时 37 分钟
- 30 天内合并 PR
- 755
环境准备
我们还没有检查这个项目的环境配置文件。先看它的 README,通用步骤见我们的新手贡献指南。
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
Agent-Field/CodeAF 的其他 Issue
-
area:chat bug sev:papercut
难度 2/5 1-3 小时 新手友好度 86/100
Agent-Field/CodeAF#1592 ·
维护者通常 1 天内回复
-
area:headless bug sev:critical
难度 2/5 1-3 小时 新手友好度 88/100
Agent-Field/CodeAF#1566 · 已指派 1 人 ·
维护者通常 1 天内回复
-
area:chat feature
难度 2/5 1-3 小时 新手友好度 88/100
Agent-Field/CodeAF#1510 ·
维护者通常 1 天内回复
-
area:tests bug
难度 2/5 1-3 小时 新手友好度 82/100
Agent-Field/CodeAF#1489 ·
维护者通常 1 天内回复
-
area:chat bug good first issue sev:papercut
难度 2/5 1-3 小时 新手友好度 78/100
Agent-Field/CodeAF#1470 ·
维护者通常 1 天内回复
查看 Agent-Field/CodeAF 的全部 Issue
相似的 Issue
-
Remove CAAPF未关闭kind/chore kind/cleanup needs-area
难度 2/5 1-3 小时 新手友好度 86/100
rancher/turtles#2848 · 3 条评论 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 78/100
维护者通常 1 天内回复
-
good first issue
难度 2/5 1-3 小时 新手友好度 84/100
维护者通常 1 天内回复
-
priority: low 🌱 type: enhancement 💅🏼
难度 2/5 半天 新手友好度 84/100
nebari-dev/llm-serving-pack#199 ·
维护者通常 3 天内回复
-
难度 1/5 1 小时以内 新手友好度 90/100
维护者通常 1 天内回复