2016b. Long live to the bug!

Buggy:
$ dpkg -l | grep tzdata
ii  tzdata                                2016b-0ubuntu0.12.04                  
              time zone and daylight-saving time data
ii  tzdata-java                           2016b-0ubuntu0.12.04                  
              time zone and daylight-saving time data for use by java runtimes
$ cat ./bug.c
#include <time.h>
#include <stdio.h>

int main() {
        time_t t = time(0);
        int i;
        struct tm result;
        for(i=0; i < 10000000; i++)
                localtime_r(&t, &result);
        puts(ctime(&t));
        return 0;
}
$ gcc ./bug.c
$ time ./a.out 
Mon Mar 21 23:56:11 2016


real    0m4.607s
user    0m4.599s
sys     0m0.002s
$

Patched:
$ dpkg -l | grep tzdata
ii  tzdata                                2016b-0ubuntu0.12.04-yandex1          
              time zone and daylight-saving time data
ii  tzdata-java                           2016b-0ubuntu0.12.04-yandex1          
              time zone and daylight-saving time data for use by java runtimes
$ cat ./bug.c
#include <time.h>
#include <stdio.h>

int main() {
        time_t t = time(0);
        int i;
        struct tm result;
        for(i=0; i < 10000000; i++)
                localtime_r(&t, &result);
        puts(ctime(&t));
        return 0;
}
$ gcc ./bug.c
$ time ./a.out 
Mon Mar 21 23:58:19 2016


real    0m1.296s
user    0m1.292s
sys     0m0.002s
$

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to tzdata in Ubuntu.
https://bugs.launchpad.net/bugs/868395

Title:
  Bug in Europe/Russia timezones

Status in tzdata package in Ubuntu:
  Confirmed

Bug description:
  In version tzdata-2011j (tzdata-2011k also affected) was founded strange bug 
in russian timezones.
  Because of a law "On the Calculation of Time" there were changes in zone like:
  3:00   Russia  MSK/MSD 2011
  changed to:
  3:00   Russia  MSK/MSD 2011 Mar 27 2:00s
  4:00   -   MSK
  But if no rule used for this change (using "-" instead of rule "Russia"), 
calling of system function localtime_r() takes more time (takes more than 40% 
time longer).
  I used following code for measuring:
  ==============================
  #include <time.h>
  #include <stdio.h>

  int main() {
    time_t t = time(0);
    int i;
    struct tm result;
    for(i=0; i < 10000000; i++)
      localtime_r(&t, &result);
    puts(ctime(&t));
    return 0;
  }
  ==============================
  and also this sql code in mysql db:
  select benchmark(1000000, from_unixtime(1317044847));
  For example, when I'm using new tzdata-2011j results are:
  1. time ./a.out (c code)
  real  0m5.165s
  user  0m5.140s
  sys   0m0.000s
  2. sql query
  mysql> select benchmark(1000000, from_unixtime(1317044847));
  +-----------------------------------------------+
  | benchmark(1000000, from_unixtime(1317044847)) |
  +-----------------------------------------------+
  |                                             0 | 
  +-----------------------------------------------+
  1 row in set (1.03 sec).
  And when I'm using old tzdata-2008b:
  1. time ./a.out (c code)
  real  0m1.675s
  user  0m1.450s
  sys   0m0.000s
  2. sql query
  mysql> select benchmark(1000000, from_unixtime(1317044847));
  +-----------------------------------------------+
  | benchmark(1000000, from_unixtime(1317044847)) |
  +-----------------------------------------------+
  |                                             0 | 
  +-----------------------------------------------+
  1 row in set (0.65 sec)

  This bug seemed critical on high loaded systems (for example, for
  databases that using unix timestamps).

  My configuration was:
  Description:  Ubuntu 8.04.1
  Release:      8.04
  Packages: 2011j~repack-0ubuntu0.8.04 and 2008b-1ubuntu1

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/tzdata/+bug/868395/+subscriptions

-- 
Mailing list: https://launchpad.net/~touch-packages
Post to     : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to