Fix: Prevent job loss on container shutdown for delayed executions#10922
Merged
stnguyen90 merged 2 commits into1.8.xfrom Dec 9, 2025
Merged
Fix: Prevent job loss on container shutdown for delayed executions#10922stnguyen90 merged 2 commits into1.8.xfrom
stnguyen90 merged 2 commits into1.8.xfrom
Conversation
Contributor
|
Important Review skippedBot user detected. To trigger a single review, invoke the You can disable this status message by setting the Comment |
Move the schedule document deletion and unset operation inside the coroutine, after the function is triggered. This ensures the schedule is only deleted after the job is successfully queued, preventing job loss if the container shuts down between coroutine start and completion. This follows the same pattern used in ScheduleMessages.php. Co-authored-by: stnguyen90 <[email protected]>
Copilot
AI
changed the title
[WIP] Fix issue with delayed executions not triggering
Fix: Prevent job loss on container shutdown for delayed executions
Dec 8, 2025
Contributor
|
I tested this to confirm that delayed executions still worked. Trying to reproduce the issue was difficult because I couldn't stop the container in the 4 second interval that it picked up the job and deleted the schedule, but was waiting to trigger the execution. |
Contributor
Security Scan Results for PRDocker Image Scan Results
Source Code Scan Results🎉 No vulnerabilities found! |
2 tasks
✨ Benchmark results
⚡ Benchmark Comparison
|
stnguyen90
approved these changes
Dec 8, 2025
loks0n
approved these changes
Dec 9, 2025
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.
What does this PR do?
Race condition: schedule documents were deleted immediately after spawning coroutines, before jobs were queued. Container shutdown between coroutine spawn and trigger execution caused permanent job loss.
Changes:
trigger()callunset()operation into coroutine to maintain consistency$dbForPlatformto coroutine closureBefore:
After:
Pattern now matches
ScheduleMessages.phpimplementation for one-time scheduled tasks.Test Plan
Existing e2e test
testCreateScheduledAtExecutioninFunctionsScheduleTest.phpvalidates scheduled execution behavior. The fix ensures jobs survive container restarts between enqueue scheduling and execution.Related PRs and Issues
Checklist
Original prompt
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.