The issue agent crashes on .git/config.lock when two sessions start together, and the ticket is lost (#278) #283
Labels
No labels
agent
agent:ci
agent:done
agent:failed
agent:needs-input
agent:refined
agent:refining
agent:running
agent:shipped
agent:skip
autonomous
autopilot
driven
local
plan
proposal
qa
qa-gap
research
retro
ship
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
jeroen/cartopolis#283
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Found by the 7-day retrospective on #279.
What happened
#278 — QA: what #276 shipped — was filed at 00:47 on 3 September. The only
comment on it is:
The ticket now carries
agent:failedand nothing will pick it up again. A wholeQA pass was lost before it read a line of code, and the only trace is a comment on
an issue nobody is watching.
Why it is a lock and not a bug in git
git worktree add <path> <branch>writes to.git/configwhen it sets the newbranch's upstream, and that write is protected by
.git/config.lock.File existstherefore means one of exactly two things:maxOpen: 2, the daily tick fires at 00:47, and this crash is timestamped00:48, so two sessions creating worktrees in the same repository seconds apart
is the ordinary case, not a rare one; or
.git/config.lockwas left behind by a process killed mid-write,in which case every worktree creation fails from then on until somebody
deletes the file by hand.
Both are recoverable and neither is being recovered from.
What would fix it
attempts a second apart costs nothing and covers it.
git worktree add --no-trackskips the upstreamwrite that failed here; the branch gets its upstream from the first
git push -uanyway, which every session does.
.git/config.lockis older than a minute and no gitprocess is running, it is debris.
attempt at the work — it is no attempt.
agent:failedis the wrong terminalstate for it; the labels should go back to where they were so the next poll
picks the ticket up again.
Where the seam is
The watcher's worktree setup, which is not in this repository. Filed here because
this is where the lane's tickets live and because #278 is the evidence.
Related
this is invisible to it as well.
Filed by the 7-day retrospective (#279).
alreadyFiledonly ever sees 50 issues, so every autopilot dedupe key silently expires — #206 was QA'd twice #281alreadyFiledonly ever sees 50 issues, so every autopilot dedupe key silently expires — #206 was QA'd twice #281alreadyFiledonly ever sees 50 issues, so every autopilot dedupe key silently expires — #206 was QA'd twice #281alreadyFiledonly ever sees 50 issues, so every autopilot dedupe key silently expires — #206 was QA'd twice #281alreadyFiledonly ever sees 50 issues, so every autopilot dedupe key silently expires — #206 was QA'd twice #281alreadyFiledonly ever sees 50 issues, so every autopilot dedupe key silently expires — #206 was QA'd twice #281alreadyFiledonly ever sees 50 issues, so every autopilot dedupe key silently expires — #206 was QA'd twice #281alreadyFiledonly ever sees 50 issues, so every autopilot dedupe key silently expires — #206 was QA'd twice #281