Patch-ID# 100651-01
Keywords: cron, die, daylight, savings, time, core, dump, ruser, rt
Synopsis: SunOS 4.1;4.1.1;4.1.2: Cron dumps core & Cron dies when daylight savings time STARTS/STOPS
Date: 
 
SunOS release: 4.1, 4.1.1, 4.1.2
 
Topic: Combine patches 100402-01 & 100520-02
 
BugId's fixed with this patch:  1031907, 1069046

Architectures for which this patch is available: sun3 (all) & sun4 (all)

Patches which may conflict with this patch: n/a 

Note: This patch combines patches 100402-01 & 100520-02
 
Obsoleted by:

Problem Description: 
BUG 1031907:
   If there are cron events scheduled for the time that will disappear
   when daylight savings time starts, they will be scheduled for a time
   practically in future infinity.  This is because timelocal() returns
   -1 if given a gmt that falls into the 'non-existent' time period.
   This value of -1 was being used as the 'next time' of the event.
   As far as time values go, it's either a very long time ago or some
   time far into the future.

   Note that 'at' will not allow you to schedule jobs during this
   time period.

   With this patch, jobs that would fall into this 'offset' period are
   scheduled `later', e.g. the daylight-savings-time offset is added
   to their event time. If the offset is one hour, for example, then
   one hour is added.  If there are cron jobs scheduled for the
   hour following the 'offset' period, those jobs will also be run
   during the same hour.

BUG 1069046:
   Due to a racing condition, the "usr" structure of a "at"/"cron" job while
   running could be removed. Hence, when cron tries to print out the information
   of "usr" at the end of the job, it will core dump.
   One can confirm this problem by looking at the core. If "cron" dies at the
   point it's running "logit()" (called from cleanup), then very probably
   it's due to this problem.



INSTALL:

1) Login as root

2) Kill cron:
   a) ps -aux | egrep cron
   b) note the process ID (pid) of cron
   c) kill -TERM <pid>

3) cp /usr/etc/cron /usr/etc/cron.FCS

4) cp `arch`/{4.1,4.1.1,4.1.2}/cron /usr/etc/cron

5) Set file ownership and permissions:
   a) chown root.staff /usr/etc/cron
   b) chmod 755 /usr/etc/cron

6) restart cron

