[Maria-developers] Patch for Windows problem with setting TZ
Hi, Alex Budovski has done some work to debug why some tests (binlog tests in particular) are failing on Windows, and found that this is because mysql-test-run.pl set the TZ variable. This interacts poorly with the Windows Operating System. It's actually only a few test cases that need to set TZ. Here is a quick patch that avoids the need to set TZ except for tests that specifically requests it (with the already existing --timezone=XXX mechanism in -master.opt). Opinions? - Kristian.
Hi, Kristian! On Jan 16, Kristian Nielsen wrote:
Hi,
Alex Budovski has done some work to debug why some tests (binlog tests in particular) are failing on Windows, and found that this is because mysql-test-run.pl set the TZ variable. This interacts poorly with the Windows Operating System.
It's actually only a few test cases that need to set TZ. Here is a quick patch that avoids the need to set TZ except for tests that specifically requests it (with the already existing --timezone=XXX mechanism in -master.opt).
Opinions?
Why we didn't have this problem with MySQL in pushbuild ? Regards, Sergei
Sergei Golubchik <sergii@pisem.net> writes:
Alex Budovski has done some work to debug why some tests (binlog tests in particular) are failing on Windows, and found that this is because mysql-test-run.pl set the TZ variable. This interacts poorly with the Windows Operating System.
It's actually only a few test cases that need to set TZ. Here is a quick patch that avoids the need to set TZ except for tests that specifically requests it (with the already existing --timezone=XXX mechanism in -master.opt).
Opinions?
Why we didn't have this problem with MySQL in pushbuild ?
Yeah, that's what I asked myself as well? I remember that for long we did not run replication tests on Windows (because they had tons of failures), maybe binlog tests also. But I kind of thought that was fixed some time ago, don't remember for sure though. Or maybe the Pushbuild Windows hosts were set to the +03:00 time zone. Can't think of any better reason atm. - Kristian.
Kristian Nielsen <knielsen@knielsen-hq.org> writes:
Why we didn't have this problem with MySQL in pushbuild ?
Yeah, that's what I asked myself as well?
Or maybe it shows only on some Windows systems. I remember Igor and Sergey saw binlog test failures on one Windows system and not on another. - Kristian.
Sergei Golubchik <sergii@pisem.net> writes:
On Jan 16, Kristian Nielsen wrote:
It's actually only a few test cases that need to set TZ. Here is a quick patch that avoids the need to set TZ except for tests that specifically requests it (with the already existing --timezone=XXX mechanism in -master.opt).
Why we didn't have this problem with MySQL in pushbuild ?
With the help of Alex Budovski I think I now have the answer: The binlog failures happen because when the TZ variable is changed to +03:00 on boxes with USA time zone (or similar), PURGE BEFORE DATE statements picks up the wrong files, apparently TZ only affects some parts of the system (localtime()), not others (file dates). But on boxes with European times zones, that particular TZ change happens to not affect those statements... And in fact Igor in USA previously got binlog failures while boxes in Buildbot and at MySQL without the failures were in European time zones... I will push my fix after full tests. - Kristian.
Kristian Nielsen <knielsen@knielsen-hq.org> writes:
The binlog failures happen because when the TZ variable is changed to +03:00 on boxes with USA time zone (or similar), PURGE BEFORE DATE statements picks up the wrong files, apparently TZ only affects some parts of the system (localtime()), not others (file dates). But on boxes with European times zones, that particular TZ change happens to not affect those statements...
And in fact Igor in USA previously got binlog failures while boxes in Buildbot and at MySQL without the failures were in European time zones...
I will push my fix after full tests.
I got a lot of random test failures with this patch unfortunately. I'm speculating that this is somehow related to settings from one test affecting another now that TZ is no longer set before every test. I need to investigate more though. - Kristian.
Hi!
"Kristian" == Kristian Nielsen <knielsen@knielsen-hq.org> writes:
Kristian> Hi, Alex Budovski has done some work to debug why some tests Kristian> (binlog tests in particular) are failing on Windows, and Kristian> found that this is because mysql-test-run.pl set the TZ Kristian> variable. This interacts poorly with the Windows Operating Kristian> System. Kristian> It's actually only a few test cases that need to set Kristian> TZ. Here is a quick patch that avoids the need to set TZ Kristian> except for tests that specifically requests it (with the Kristian> already existing --timezone=XXX mechanism in -master.opt). I think the patch is ok and should make things a bit safer, so ok to push. Regards, Monty
participants (3)
-
Kristian Nielsen
-
Michael Widenius
-
Sergei Golubchik