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]
# 1
EST5EDT is a 'POSIX' zone and isn't recommended. Conversion for it goes through libc instead of the timezone databases.For any box that failed, please post the output of this command:zdump -v US/Eastern | grep 2007-- Darren
Darren_Dunhama at 2007-7-10 2:49:09 > top of Java-index,Solaris Operating System,Solaris Essentials - General Technical Questions...
# 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

krelvinaza at 2007-7-10 2:49:09 > top of Java-index,Solaris Operating System,Solaris Essentials - General Technical Questions...
# 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

Darren_Dunhama at 2007-7-10 2:49:09 > top of Java-index,Solaris Operating System,Solaris Essentials - General Technical Questions...