huskies: create 498_bug_stale_merge_job_lock_prevents_new_merges_after_agent_dies
This commit is contained in:
+32
@@ -0,0 +1,32 @@
|
|||||||
|
---
|
||||||
|
name: "Stale merge job lock prevents new merges after agent dies"
|
||||||
|
---
|
||||||
|
|
||||||
|
# Bug 498: Stale merge job lock prevents new merges after agent dies
|
||||||
|
|
||||||
|
## Description
|
||||||
|
|
||||||
|
When the mergemaster agent is killed or stops while a merge is in progress, the in-memory `merge_jobs` map retains a `Running` status entry for that story. Subsequent attempts to call `merge_agent_work` get "Merge already in progress" and fail. The lock is never cleaned up.
|
||||||
|
|
||||||
|
This causes the mergemaster to loop: spawn, try merge, get "already in progress", waste turns, exit, respawn. The merge never completes.
|
||||||
|
|
||||||
|
The fix: clear the merge job entry when the mergemaster agent exits (whether cleanly or via kill/stop).
|
||||||
|
|
||||||
|
## How to Reproduce
|
||||||
|
|
||||||
|
1. Start mergemaster on a story in merge
|
||||||
|
2. Kill/stop the mergemaster agent before merge completes
|
||||||
|
3. Try to merge_agent_work again for the same story
|
||||||
|
4. Get "Merge already in progress" error
|
||||||
|
|
||||||
|
## Actual Result
|
||||||
|
|
||||||
|
Stale Running entry in merge_jobs map blocks all future merge attempts until server restart.
|
||||||
|
|
||||||
|
## Expected Result
|
||||||
|
|
||||||
|
Merge job lock is cleaned up when the agent exits, allowing retry.
|
||||||
|
|
||||||
|
## Acceptance Criteria
|
||||||
|
|
||||||
|
- [ ] Bug is fixed and verified
|
||||||
Reference in New Issue
Block a user