Red Hat Bugzilla – Bug 190255
Job delayed after using crontab -e
Last modified: 2007-11-30 17:07:09 EST
Description of problem:
Vixie-cron versions 4.x delay the execution of new updated jobs.
If one user edits its cron table at time 0:00, cron wont update its informations
on the first loop but after it, delaying the execution of the task by 1 loop.
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. Use an account.
2. Edit its crontab. crontab -e, adding a job (for example * * * * * user
3. Wait for the job to be executed.
The job is executed later than expected :
Apr 13 10:00:10 chancroid crontab: (ctatman) END EDIT (ctatman)
Apr 13 10:00:10 chancroid crontab: (ctatman) LIST (ctatman)
Apr 13 10:01:01 chancroid crond: (root) CMD (run-parts /etc/cron.hourly)
Apr 13 10:01:01 chancroid crond: (ctatman) RELOAD (cron/ctatman)
Apr 13 10:02:01 chancroid crond: (ctatman) CMD (user /bin/ls /tmp/)
The job is delayed by 1 minute.
/var/log/cron with vixie-cron-4.1-11test.EL3 installed:
Apr 26 16:11:11 chancroid crontab: (ctatman) BEGIN EDIT (ctatman)
Apr 26 16:11:33 chancroid crontab: (ctatman) REPLACE (ctatman)
Apr 26 16:11:33 chancroid crontab: (ctatman) END EDIT (ctatman)
Apr 26 16:11:33 chancroid crontab: (ctatman) LIST (ctatman)
Apr 26 16:12:01 chancroid crond: (ctatman) RELOAD (cron/ctatman)
Apr 26 16:12:01 chancroid crond: (ctatman) CMD (ctatman /bin/ls /tmp/)
The job is executed in time.
Attached you will find a patch that solves the issue. The main loop has
load_database called too late, and after the job execution tasks; setting it up
after cron_sleep and before find_jobs, I believe, is the right place to populate
the infos to the job descriptions.
Created attachment 128388 [details]
Patch fixing delays on vixie-cron 4.x job execution
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on the solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.