Repository navigation
fix(cron): reject interval schedules that overflow next_run - #105
Draft
cursor[bot] wants to merge 1 commit into
Draft
cursor[bot] wants to merge 1 commit into
cursor[bot] wants to merge 1 commit into
Conversation
An interval whose seconds do not fit in now+sec wrapped next_run into the past. Delivery ack recomputed the same sum, so the job stayed due and the agent ran it on every poll. Co-authored-by: esadrianno <esadrianno@gmail.com>
This branch has not been deployed
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.
An interval whose seconds do not fit in
now + secondswrappednext_runinto the past.cron_ack_deliveryrecomputes that sum from the stored schedule, so the job stayed due and the agent ran it on every poll.interval_next_runnow rejectsERANGEand any span that would overflowlong long. A row that already has this schedule is pushed out by the existing one-year ack fallback instead of being re-armed in the past.Validation:
make test_cron(all tests passed), includingtest_interval_overflow_does_not_stay_due.src/tools/cron.calso builds with-Werror.