[Touch-packages] [Bug 868395] Re: Bug in Europe/Russia timezones

2016-03-21 Thread Dmitry Nesterov
2016b. Long live to the bug!

Buggy:
$ dpkg -l | grep tzdata
ii  tzdata2016b-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 
#include 

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


real0m4.607s
user0m4.599s
sys 0m0.002s
$

Patched:
$ dpkg -l | grep tzdata
ii  tzdata2016b-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 
#include 

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


real0m1.296s
user0m1.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 
  #include 

  int main() {
time_t t = time(0);
int i;
struct tm result;
for(i=0; i < 1000; i++)
  localtime_r(, );
puts(ctime());
return 0;
  }
  ==
  and also this sql code in mysql db:
  select benchmark(100, 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(100, from_unixtime(1317044847));
  +---+
  | benchmark(100, 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(100, from_unixtime(1317044847));
  +---+
  | benchmark(100, 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


[Touch-packages] [Bug 868395] Re: Bug in Europe/Russia timezones

2014-10-27 Thread Dmitry Nesterov
Year 2014. Bug is still here.

Buggy version:
keyd@keyd-desktop:~$ dpkg -l | grep tzdata
ii  tzdata 2014i-0ubuntu0.12.04 
  time zone and daylight-saving time data
ii  tzdata-java2014i-0ubuntu0.12.04 
  time zone and daylight-saving time data for use by java runtimes
keyd@keyd-desktop:~$ time ./a.out 
Mon Oct 27 16:46:13 2014
real0m4.061s
user0m4.048s
sys 0m0.000s
keyd@keyd-desktop:~$

Patched version:
keyd@keyd-desktop:~$ dpkg -l | grep tzdata
ii  tzdata 2014i-0ubuntu0.12.04-yandex1 
  time zone and daylight-saving time data
ii  tzdata-java2014i-0ubuntu0.12.04-yandex1 
  time zone and daylight-saving time data for use by java runtimes
keyd@keyd-desktop:~$ time ./a.out 
Mon Oct 27 16:47:58 2014
real0m1.263s
user0m1.256s
sys 0m0.000s
keyd@keyd-desktop:~$

-- 
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  1000; i++)
  localtime_r(t, result);
puts(ctime(t));
return 0;
  }
  ==
  and also this sql code in mysql db:
  select benchmark(100, 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(100, from_unixtime(1317044847));
  +---+
  | benchmark(100, 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(100, from_unixtime(1317044847));
  +---+
  | benchmark(100, 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