As I say many times a day here (or at least so it seems), volunteers are extremely scarce. Any takers?
Rewriting a scheduler as proposed by original author here sounds daunting for someone not so expert.
There are also questions (in my view) of how to handle times that don’t happen, or that happen twice…
You can search for “List of backup timestamps contains duplicates” to see the mess that was causing.
was the fix. I later noticed another old worry of mine here, concerning how to handle ambiguous times:
List of backup timestamps contains duplicates #2857 shows worries about code Duplicati runs under.
Time Zones Processing is WRONG is one (yours) where day-of-week was being computed with UTC.
Use local time when checking if day is allowed #3528 solved that, and you can again find a suggestion
that the scheduled times be stored in local time, which seems to invite other trouble. A specific design:
which in itself didn’t seem a great use of scarce resources, did at least get me to see how cron solves:
Daylight Saving Time and other time changes
Local time changes of less than three hours, such as those caused by the start or end of Daylight Saving Time, are handled specially. This only applies to jobs that run at a specific time and jobs that are run with a granularity greater than one hour. Jobs that run more frequently are scheduled normally.
If time has moved forward, those jobs that would have run in the interval that has been skipped will be run immediately. Conversely, if time has moved backward, care is taken to avoid running jobs twice.
Time changes of more than 3 hours are considered to be corrections to the clock or timezone, and the new time is used immediately.
It's possible to use different time zones for cron tables. More could be found in crontab(5).
Because there have been at least two fixes that didn’t require a major redesign, I hope there’s an equally simple way out of this annoying time shift. Someone would have to look, and there are VERY few people.
Having seen the complex cron scheme, do you have a proposal for how a minimal solution should work?