[tz] I found a bug in tzdata2014f.tar.gz for Europe/Moscow or similar such as Europe/Volgograd

Arthur David Olson arthurdavidolson at gmail.com
Fri Aug 29 12:06:34 UTC 2014


(I've also sent this reply directly to Azhar.)


> $ date -s "Sun OCT 26 01:59:00 MSK 2014"

> Sun Oct 26 01:59:00 MSK 2014
> Monitor the date

> $ while true; do date; sleep 2; done
> Sun Oct 26 01:59:57 MSK 2014

> Sun Oct 26 01:59:59 MSK 2014
> Sun Oct 26 02:00:01 MSK 2014   *ß** Not good. Should move from 01:59:59
to 01:00:00* >

> Sun Oct 26 02:00:03 MSK 2014

The situation here is that there are two instants in Moscow in 2014 when
wall clocks are to read 1:59:00: one just prior to when clocks are
adjusted, and one an hour after that. When you use the date command as
above, it must pick which of the two instants to use; here it has picked
the second one, so you don't see a clock shift after a couple of seconds.

You should be able to verify this by modifying your script to output both
Moscow and universal time.

    @dashdashado


On Fri, Aug 29, 2014 at 5:47 AM, azhar saleh <seper5 at hotmail.com> wrote:

>
> Hi
>
>
>
> Currently I’m preparing a document to update TZ for one of our customer in
> Russia due to the following TZ rule.
>
> I think I found a bug in *tzdata2014f.tar.gz* where the time did not move
> from 01:59:59 to 01:00:00
>
>
> http://www.timeanddate.com/time/change/russia/moscow?year=2014
>
>
> Using *tzdata2014f.tar.gz*
>
>
>
> $ ls -lrt /etc/localtime
>
> lrwxrwxrwx  1 root root 33 Aug 29 13:05 */etc/localtime* ->
> /usr/share/zoneinfo/Europe/Moscow
>
>
>
> $ /usr/sbin/zdump -v /etc/localtime | grep 201
>
> /etc/localtime  Sat Mar 27 22:59:59 2010 UTC = Sun Mar 28 01:59:59 2010
> MSK isdst=0 gmtoff=10800
>
> /etc/localtime  Sat Mar 27 23:00:00 2010 UTC = Sun Mar 28 03:00:00 2010
> MSD isdst=1 gmtoff=14400
>
> /etc/localtime  Sat Oct 30 22:59:59 2010 UTC = Sun Oct 31 02:59:59 2010
> MSD isdst=1 gmtoff=14400
>
> /etc/localtime  Sat Oct 30 23:00:00 2010 UTC = Sun Oct 31 02:00:00 2010
> MSK isdst=0 gmtoff=10800
>
>
>
> /etc/localtime  Sat Mar 26 22:59:59 2011 UTC = Sun Mar 27 01:59:59 2011
> MSK isdst=0 gmtoff=10800
>
> /etc/localtime  Sat Mar 26 23:00:00 2011 UTC = Sun Mar 27 03:00:00 2011
> MSK isdst=0 gmtoff=14400
>
>
>
> /etc/localtime  Sat Oct 25 21:59:59 2014 UTC = Sun Oct 26 01:59:59 2014
> MSK isdst=0 gmtoff=14400
>
> /etc/localtime  Sat Oct 25 22:00:00 2014 UTC = Sun Oct 26 01:00:00 2014
> MSK isdst=0 gmtoff=10800
>
>
>
> Set the date to Sun Mar 27, 2011 (*Russia is abolishing DST time)*
>
>
>
> $ date -s "Sun MAR 27 01:59:00 MSK 2011"
>
> Sun Mar 27 01:59:00 MSK 2011
>
>
>
> Monitor the date
>
>
>
> $ while true; do date; sleep 2; done:
>
> :
>
> Sun Mar 27 01:59:57 MSK 2011
>
> Sun Mar 27 01:59:59 MSK 2011
>
> Sun Mar 27 03:00:01 MSK 2011 ß good
>
> Sun Mar 27 03:00:03 MSK 2011
>
> :
>
>
>
> Set the date to Sun Oct 26, 2014 (*Russia back to European DST in October
> 2014)*
>
>
>
> $ date -s "Sun OCT 26 01:59:00 MSK 2014"
>
> Sun Oct 26 01:59:00 MSK 2014
>
>
>
> Monitor the date
>
>
>
> $ while true; do date; sleep 2; done
>
> :
>
> Sun Oct 26 01:59:57 MSK 2014
>
> Sun Oct 26 01:59:59 MSK 2014
>
> Sun Oct 26 02:00:01 MSK 2014   *ß** Not good. Should move from 01:59:59
> to 01:00:00*
>
> Sun Oct 26 02:00:03 MSK 2014
>
> :
>
>
>
> If I test again using Europe/Moscow for year 2010, it works fine for that
> year
>
>
>
> $ zdump -v Europe/Moscow | grep 2010
>
> Europe/Moscow  Sat Mar 27 22:59:59 2010 UTC = Sun Mar 28 01:59:59 2010 MSK
> isdst=0 gmtoff=10800
>
> Europe/Moscow  Sat Mar 27 23:00:00 2010 UTC = Sun Mar 28 03:00:00 2010 MSD
> isdst=1 gmtoff=14400
>
>
>
> Europe/Moscow  Sat Oct 30 22:59:59 2010 UTC = Sun Oct 31 02:59:59 2010
> *MSD* isdst=1 gmtoff=14400
>
> Europe/Moscow  Sat Oct 30 23:00:00 2010 UTC = Sun Oct 31 02:00:00 2010
> *MSK* isdst=0 gmtoff=10800
>
>
>
> And it works just fine for Europe/Rome for year 2014 as well
>
>
>
> $ zdump -v /etc/localtime | grep 2014
>
> /etc/localtime  Sun Mar 30 00:59:59 2014 UTC = Sun Mar 30 01:59:59 2014
> CET isdst=0 gmtoff=3600
>
> /etc/localtime  Sun Mar 30 01:00:00 2014 UTC = Sun Mar 30 03:00:00 2014
> CEST isdst=1 gmtoff=7200
>
> /etc/localtime  Sun Oct 26 00:59:59 2014 UTC = Sun Oct 26 02:59:59 2014
> CEST isdst=1 gmtoff=7200
>
> /etc/localtime  Sun Oct 26 01:00:00 2014 UTC = Sun Oct 26 02:00:00 2014
> CET isdst=0 gmtoff=3600
>
>
> Please tell me if it is a bug or something wrong in my testing.
>
>
> Best Regards
>
> Azhar
>
> Support Engineer
>
> Kuala Lumpur
>
> Malaysia
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mm.icann.org/pipermail/tz/attachments/20140829/dd95744e/attachment-0001.html>


More information about the tz mailing list