Bug #23187 test ps_2myisam fails when run alone
Submitted: 11 Oct 2006 19:47 Modified: 20 Oct 2006 10:10
Reporter: Guilhem Bichot Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Tests Severity:S3 (Non-critical)
Version:5.1.12-BK OS:Linux (linux)
Assigned to: Magnus Blåudd CPU Architecture:Any

[11 Oct 2006 19:47] Guilhem Bichot
Description:
I didn't test 5.0.
I observed on two machines (both FC4):
[gbichot@dl145h mysql-test]$ ./mysql-test-run.pl ps_2myisam
Logging: ./mysql-test-run.pl ps_2myisam
Using binlog format 'stmt'
Using ndbcluster when necessary, mysqld supports it
Setting mysqld to support SSL connections
Binaries are debug compiled
Using MTR_BUILD_THREAD      = 65
Using MASTER_MYPORT         = 10650
Using MASTER_MYPORT1        = 10651
Using SLAVE_MYPORT          = 10652
Using SLAVE_MYPORT1         = 10653
Using SLAVE_MYPORT2         = 10654
Using NDBCLUSTER_PORT       = 10655
Using NDBCLUSTER_PORT_SLAVE = 10656
Using IM_PORT               = 10657
Using IM_MYSQLD1_PORT       = 10658
Using IM_MYSQLD2_PORT       = 10659
Killing Possible Leftover Processes
Removing Stale Files
Installing Master Database
Installing Master Database
Stopping All Servers
Shutting-down Instance Manager
=======================================================
Starting Tests in the 'main' suite

TEST                           RESULT         TIME (ms)
-------------------------------------------------------

ps_2myisam                     [ fail ]

Errors are (from /users/gbichot/mysql-5.1-arch/mysql-test/var/log/mysqltest-time) :
mysqltest: Result content mismatch
(the last lines may be the most important ones)
Below are the diffs between actual and expected results:
-------------------------------------------------------
*** r/ps_2myisam.result 2006-09-28 01:08:36.000000000 +0300
--- r/ps_2myisam.reject 2006-10-11 22:41:26.000000000 +0300
***************
*** 1850,1857 ****
  param08       1991-08-05 01:01:01
  const09       1991-08-05 01:01:01
  param09       1991-08-05 01:01:01
! const10       662680861
! param10       662680861
  const11       1991
  param11       1991
  const12       NULL
--- 1850,1857 ----
  param08       1991-08-05 01:01:01
  const09       1991-08-05 01:01:01
  param09       1991-08-05 01:01:01
! const10       662688061
! param10       662688061
  const11       1991
  param11       1991
  const12       NULL
-------------------------------------------------------

This difference is 7200 seconds, 2 hours. It's a problem of timezones.
The two machines have TZ empty.
If I do "export TZ=GMT-3" before running mysql-test-run.pl, then the test passes.
How come the test also passes for everybody currently, even people who have TZ empty, when they run the full testsuite? I noticed that if, prior to ps_2myisam, one test fails (like "partition" for me), this affects the timezone ps_2myisam runs in. That is, run "partition" and ps_2myisam with an empty TZ and --force, ps_2myisam will pass (assuming "partition" fails).

How to repeat:
run ps_2myisam *alone*.

Suggested fix:
If I remove the line which sets ENV{'TZ'} in mysql-test-run.pl, the problem goes away.
[12 Oct 2006 14:21] Valeriy Kravchuk
Thank you for a bug report. Verified just as described with 5.1.12-BK. Works on 5.0.27-BK.
[19 Oct 2006 19:22] Magnus Blåudd
I think it's already fixed. Will double check.
[19 Oct 2006 19:22] Magnus Blåudd
In -maint clone(s)
[19 Oct 2006 20:53] Magnus Blåudd
Yes, it works in 5.1-maint now.

[msvensson@neptunus mysql-test]$ time ./mtr --mem --force ps_2myisam
MySQL Version 5.1.13
<snip>
=======================================================
Starting Tests in the 'main' suite

TEST                           RESULT         TIME (ms)
-------------------------------------------------------

ps_2myisam                     [ pass ]            954
-------------------------------------------------------
Stopping All Servers
All 1 tests were successful.
The servers were restarted 1 times
Spent 0.954 seconds actually executing testcases
[20 Oct 2006 8:04] Guilhem Bichot
Magnus,
I believe you, but please also test with the same command-line as I used:
# set TZ to be empty
export TZ=
./mysql-test-run.pl ps_2myisam
[20 Oct 2006 10:10] Magnus Blåudd
Yepp, tested both with TZ="" and TZ="GMT-8"