[18.0][FIX] queue_job_batch: prevent batches stuck in progress #885
+109
−7
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.
Summary
This PR fixes a bug where job batches could remain in the "In Progress" state indefinitely, even after all associated jobs had finished.
Problem
Two main issues were identified in the
check_statetrigger logic:identity_exactwithwith_delay()caused thecheck_statejob for the last finishing batch job to be deduplicated (skipped) if a previouscheck_statejob from the same batch was still pending or enqueued. This meant the final state transition to "Finished" might never happen.donestate, ignoring jobs that ended infailedorcancelled.Solution
identity_key=identity_exactfrom thecheck_statedelay call to ensure every job completion attempts a state check, preventing the race condition.done,cancelled, andfailed.Fixes #810