Sun Solaris 9 failed to follow DST
I had two patched Sun boxes that failed to switch this morning. This was weird since all the others worked right.
Turned out that the TZ entry in /etc/TIMEZONE has
TZ= EST5EDT
Instead of
TZ=US/Eastern
All the ones that worked had the former.
I changed the two and rebooted them and they now work okay.
Just in case someone else is scrambling trying to figure out what is wrong...
I found this doc which gave me a clue as to what might be wrong:
http://sunsolve.sun.com/search/document.do?assetkey=1-26-102836-1
[573 byte] By [
krelvinaza] at [2007-11-26 21:11:50]

# 2
# zdump -v US/Eastern | grep 2007
Box that originally failed until change to TZ in /etc/TIMEZONE file:
US/Eastern Mon Mar 12 17:43:45 2007 UTC = Mon Mar 12 13:43:45 2007 EDT isdst=1
US/Eastern Sun Mar 11 06:59:59 2007 UTC = Sun Mar 11 01:59:59 2007 EST isdst=0
US/Eastern Sun Mar 11 07:00:00 2007 UTC = Sun Mar 11 03:00:00 2007 EDT isdst=1
US/Eastern Sun Nov 4 05:59:59 2007 UTC = Sun Nov 4 01:59:59 2007 EDT isdst=1
US/Eastern Sun Nov 4 06:00:00 2007 UTC = Sun Nov 4 01:00:00 2007 EST isdst=0
Box that didnt fail:
US/Eastern Mon Mar 12 17:44:35 2007 UTC = Mon Mar 12 13:44:35 2007 EDT isdst=1
US/Eastern Sun Mar 11 06:59:59 2007 UTC = Sun Mar 11 01:59:59 2007 EST isdst=0
US/Eastern Sun Mar 11 07:00:00 2007 UTC = Sun Mar 11 03:00:00 2007 EDT isdst=1
US/Eastern Sun Nov 4 05:59:59 2007 UTC = Sun Nov 4 01:59:59 2007 EDT isdst=1
US/Eastern Sun Nov 4 06:00:00 2007 UTC = Sun Nov 4 01:00:00 2007 EST isdst=0
# 3
Those look fine.
How did you discover that it failed to follow? It looks just fine to me.
The final test I would do is:
TZ=US/Eastern perl -le 'print scalar localtime 1175040000'
# TZ=US/Eastern perl -le 'print scalar localtime 1175040000'
Tue Mar 27 20:00:00 2007
If you get that line, it's correct. If the machine is wrong, you'd get 19:00.
Were any applications still running from a time before the patches were applied? Running applications will never see the update.
--
Darren