From 349fe2a92a40af110ee0255934aad231dd02c2c7 Mon Sep 17 00:00:00 2001 From: Dominik Csapak Date: Fri, 1 Apr 2022 13:24:44 +0200 Subject: [PATCH] Jobs: don't schedule jobs with no computable next event if we have a schedule that has no 'next event' we should skip the scheduling instead of schedule every round this can happen if someone sets an schedule that has no next match. some examples: * 2-31 00:00 (there is not February 31st) * mon 2022-04-02 (this would be a saturday, not monday) * 1970-1-1 (or every other exact date in the past) Signed-off-by: Dominik Csapak --- PVE/Jobs.pm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/PVE/Jobs.pm b/PVE/Jobs.pm index ba3685ec..da648630 100644 --- a/PVE/Jobs.pm +++ b/PVE/Jobs.pm @@ -232,9 +232,9 @@ sub run_jobs { my $last_run = get_last_runtime($id, $type); my $calspec = PVE::CalendarEvent::parse_calendar_event($schedule); - my $next_sync = PVE::CalendarEvent::compute_next_event($calspec, $last_run) // 0; + my $next_sync = PVE::CalendarEvent::compute_next_event($calspec, $last_run); - next if time() < $next_sync; # not yet its (next) turn + next if !defined($next_sync) || time() < $next_sync; # not yet its (next) turn my $plugin = PVE::Jobs::Plugin->lookup($type); if (starting_job($id, $type)) {