Comment 8 for bug 868395

Revision history for this message
Dmitry Nesterov (keyd) wrote : Re: Bug in Europe/Russia timezones

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
$