fix(scheduler): prevent duplicate session firing and zombie session r…#292
Open
theonlychant wants to merge 1 commit into
Open
Conversation
…e-triggering Signed-off-by: theonlychant <sacehenry@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Dealing with the issue [Bug] Scheduled task fires 12x instead of once — duplicate sessions with unique task IDs #289
Description
Fixes two related scheduler bugs affecting Jules scheduled tasks:
Bug 1 - Duplicate session firing: A single scheduled task configured to run once daily was firing 6–13x per trigger, creating duplicate sessions and consuming session quota. Root cause is a backend scheduler idempotency gap the dispatch mechanism retried when it did not receive a timely ACK from the worker pool, creating a new session instead of recognizing the original was already started. Fixed by adding idempotency key tracking so duplicate dispatches for the same scheduled trigger are detected and dropped.
Bug 2 - Zombie session re-triggering: Sessions that had reached "Completed" status were reverting to "Planning" and re-executing ~15–30 minutes later. Fixed by making completed session state immutable once a session reaches "Completed", state transitions back to "Planning" are rejected.
Checklist
Test plan
jules remote list --session