From mboxrd@z Thu Jan 1 00:00:00 1970 From: andrey mirtchovski To: 9fans@cse.psu.edu Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Subject: [9fans] cron and timesync Date: Thu, 17 Jul 2003 12:53:50 -0600 Topicbox-Message-UUID: fa944b1a-eacb-11e9-9e20-41e7f4b1d025 There is a race between the cron daemon and timesync that hit me pretty badly for the past two days. The problem comes from the fact that timesync does not set the system's real-time clock. On one of the machines here the RTC was behind a few hours, so when it went through /rc/bin/cpurc the following happened: ... # time set by rtc (1am) aux/timesync -n ntp.ucalgary.ca # time still 1am ... auth/cron # time still 1am ... ... # after a few (micro)seconds the time # is reset to the current time (say # 10am) as reported by the ntp server cron gets initialized with 'last' time being 1am and the next time it wakes up it tries to run all cron jobs in between 1am and 10am, effectively crashing my machine. i have modified timesync.c and added a -w option to write to /dev/rtc, but then decided it'd be simple to run 'date -n > /dev/rtc' once daily from cron. in the example below cron started some 2000 jobs: % date; date -n Thu Jul 17 12:36:55 MDT 2003 1058467015 % echo 1057467015 > /dev/rtc % aux/timesync -r % date Sat Jul 5 22:50:24 MDT 2003 % auth/cron % ps | grep cron bootes 648 0:00 0:00 172K Sleep cron % aux/timesync -n ntp.cpsc.ucalgary.ca % date Thu Jul 17 12:38:11 MDT 2003 % % date -n > /dev/rtc # otherwise it'll happen again on reboot % # wait a minute or so ... andrey