Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

A held (queued) task cannot be stopped and keeps the repo write-lock

Cerrado
#1,571 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
68/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
go
Área
backend, cli, devtools

Línea de trabajo

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.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

area:session bug sev:critical

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

  1. Build dev 837b2b0 (git checkout 837b2b0 && make build), or install the dev build with curl -fsSL https://agentfield.ai/get/devaf | bash.
  2. Use an isolated profile: export HOME=$(mktemp -d), export OPENROUTER_API_KEY, default model.
  3. Leave the busy-machine gate ON for this one (step 5 forces it).
  4. 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.
  5. Force the hold: set task.max_load to a value below the machine's current load per core (for example 0.01) under /settings.
  6. Ask a manager to hand a change to senior-dev (or run /task for a small change). The task shows queued.
  7. /stop, choose 1 stop it: the task stays queued.
  8. 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, still queued; 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 it ends the queued task at once (row stopped), 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

Lenguaje dominante
Go
Estrellas
115
Forks
14
Merge medio
9 h 37 min
PR fusionados (30 d)
755

Preparar el entorno

Aún no hemos revisado los archivos de configuración de este proyecto. Empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de Agent-Field/CodeAF

Todos los issues de Agent-Field/CodeAF

Issues similares

Más issues de Go

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.