Known Bugs

There is ONE known remaining bug. I am not treating it as a bug.


Bug1: changing the server timezone

Problem description for bug1

If the server timezone is changed the scheduled time for a job to be run does not detect the timezone change until after the job next runs, at the time it then recalculates it's next runtime. For example if you change a timezone offset by 12 hours every job will run for the next execution only 12 hours out from when you would expect it to. Future executions will be at the correct time.

This was found myself when I changed a server timezone from EST to NZ time. There have been no user reported occurrences of this (probably changing the timezone is not a common practise).

While the server time had changed to NZ time jobs were still scheduled to run at EST time. Stopping and starting the scheduler does not resolve the problem, nor does rebooting the server; the jobs remained scheduled at EST time. This is because the active scheduler queue uses binary timestamps taken at the initial scheduling time, so changing offsets by 12-13hrs will throw out the job scheduling time by the same amount until the jobs next get rescheuled.

The aberation lasts only until a job is run. After each job is run it is rescheduled based on the new timezone.

Workarounds for bug1

The two recovery options are

I have tested both methods, both work fine.

Long term fix for bug1

I have no intention of trying to resolve this issue, most servers don't get their timezones changed after they are installed. If they do it is a manual action on your system administrators part and they can take one of the manual actions above to resolve it.
There is nothing that can be coded in the job scheduler to resolve this, it does not do anything silly like check to see if a timezone offset has been changed every 5 minutes or so, that would be a waste of cycles for something that is unlikely to ever happen in the real world.

End of known bugs