Cron executing jobs at innacurate times (observing "jitter" of up to 1 hour)

Darren Pilgrim list_freebsd at bluerosetech.com
Sat Nov 8 22:27:14 UTC 2014


I recently upgraded a pair of servers from 9.3 to 10.0 via 
freebsd-update.  After the upgrade, I noticed my logs were not rotating 
on the hour, but at some random time within the hour following the 
scheduled time (the logs in question were set * for size and $D0 or @T00 
for when in newsyslog.conf).

Some testing revealed that cron is no longer executing tasks in 
/etc/crontab on the specified time.  For example, a job scheduled to run 
hourly at the zeroth minute would actually execute sometime within an 
hour, not on the hour as it used to.

I created a simple test to see this behaviour.  I have six servers:

- catnip (amd64 9.3-p3, freebsd-update only)
- chombo (amd64 9.1-P6, source updates only)
- pug (amd64 10.0-p10, freebsd-update only)
- poodle (amd64 10.0-p10, freebsd-update only)
- luigi (i386 10.0-p10, freebsd-update only, Xen VPS)
- mario (i386 10.0-p10, freebsd-update only, Xen VPS)

The behaviour test:

All six have a job in /etc/crontab as follows:

* * * * * root date >>/var/log/test/0000 2>&1

That is, log the output of date every minute.

For catnip, chombo, pug, and poodle, the logs from 13:50 to 14:05 PST 
today look like this:

Sat Nov  8 13:50:00 PST 2014
Sat Nov  8 13:51:00 PST 2014
Sat Nov  8 13:52:00 PST 2014
Sat Nov  8 13:53:00 PST 2014
Sat Nov  8 13:54:00 PST 2014
Sat Nov  8 13:55:00 PST 2014
Sat Nov  8 13:56:00 PST 2014
Sat Nov  8 13:57:00 PST 2014
Sat Nov  8 13:58:00 PST 2014
Sat Nov  8 13:59:00 PST 2014
Sat Nov  8 14:00:00 PST 2014
Sat Nov  8 14:01:00 PST 2014
Sat Nov  8 14:02:00 PST 2014
Sat Nov  8 14:03:00 PST 2014
Sat Nov  8 14:04:00 PST 2014
Sat Nov  8 14:05:00 PST 2014

This is luigi's:

Sat Nov  8 21:51:00 UTC 2014
Sat Nov  8 21:51:55 UTC 2014
Sat Nov  8 21:53:47 UTC 2014
Sat Nov  8 21:54:38 UTC 2014
Sat Nov  8 21:54:59 UTC 2014
Sat Nov  8 21:56:34 UTC 2014
Sat Nov  8 21:57:34 UTC 2014
Sat Nov  8 21:58:29 UTC 2014
Sat Nov  8 22:00:38 UTC 2014
Sat Nov  8 22:00:59 UTC 2014
Sat Nov  8 22:02:47 UTC 2014
Sat Nov  8 22:03:38 UTC 2014
Sat Nov  8 22:04:34 UTC 2014

And this is mario's:

Sat Nov  8 21:50:34 UTC 2014
Sat Nov  8 21:51:29 UTC 2014
Sat Nov  8 21:53:34 UTC 2014
Sat Nov  8 21:54:29 UTC 2014
Sat Nov  8 21:56:34 UTC 2014
Sat Nov  8 21:57:34 UTC 2014
Sat Nov  8 21:58:25 UTC 2014
Sat Nov  8 21:59:55 UTC 2014
Sat Nov  8 22:01:51 UTC 2014
Sat Nov  8 22:02:12 UTC 2014
Sat Nov  8 22:03:12 UTC 2014
Sat Nov  8 22:05:00 UTC 2014

Backing off the frequency to every 5 minutes see the variance increase 
to a couple of minutes.  For the production jobs running hourly, 
variance is 0 to 59 minutes late.  This is particularly problematic for 
things like newsyslog.  All machines have ntpd running and synchronized. 
  All of the machines except luigi run cron with the defaults.  For 
luigi, the following is in /etc/rc.conf:

cron_dst="NO"
cron_flags="-J 1 -o"

My HV provider hasn't heard of anything causing this.  Before I go 
reloading things back to 9.3, has anyone observed this?


More information about the freebsd-questions mailing list