Bug #51984 mysqldump test will not succeed if not preceeded by a test that succeeds as well
Submitted: 12 Mar 2010 11:17 Modified: 12 Mar 2010 11:24
Reporter: Luis Soares Email Updates:
Status: Verified Impact on me:
None 
Category:Tests Severity:S3 (Non-critical)
Version:5.1.44, 5.5.3 OS:Microsoft Windows
Assigned to: Assigned Account CPU Architecture:Any
Tags: client, mysqldump, windows
Triage: Triaged: D3 (Medium)

[12 Mar 2010 11:17] Luis Soares
Description:
This became evident after this push:

http://pb2.norway.sun.com/web.py?template=push_details&push=1067500

During analysis, I tried to run mysqldump with the binary built
in the previous push. I was unable to make mysqldump pass, unless
a succeeding test was run before it.

Thence, MTR will report mysqldump failure if test is run
alone (1) or if test run before it fails (2).

Perhaps this has something to do with the following suppression in 
mysql-test/include/mtr_warnings.sql:

 /* Special case for Bug #26402 in show_check.test
    - Question marks are not valid file name parts on Windows. Ignore
      this error message.
  */
 ("Can't find file: '.\\\\test\\\\\\?{8}.frm'"),

How to repeat:
For repeating this, I downloaded the binary from push (the one before 
we started noticing mysqldump failures, ie, where PB2 reported success 
on mysqldump run): 

 - http://pb2.norway.sun.com/web.py?template=push_details&push=1067360

In particular I downloaded:

 - http://trollheim.norway.sun.com/archive/1544409.mysql-5.6.99-m4-win-x86_64.zip

And tried it in nanna25.norway.sun.com.

HOW TO:

CASE #1
=======
 
 ...\mysql-test> perl mysql-test-run.pl --mysqld=--binlog-format=row main.mysqldump

   ---> Test fails!

CASE #2
=======

 - first run with a good test before it:

 ...\mysql-test> perl mysql-test-run.pl --mysqld=--binlog-format=row  main.mysqlbinlog_base64 main.mysqldump

   ---> Both tests succeed!
   
 - now remove the result file for the first test

 ...\mysql-test> mv r\mysqlbinlog_base64.result .

 - now retry (one expects that main.mysqlbinlog_base64 fails and
   main.mysqldump succeeds):

 ...\mysql-test> perl mysql-test-run.pl --mysqld=--binlog-format=row --force --max-test-fail=0 --rerty=0 main.mysqlbinlog_base64 main.mysqldump

   ---> Both tests fail!  <<<========== mysqldump fails!!!!

Suggested fix:
Fix suppression (if that's the case) or fix parsing of error log by MTR.
[12 Mar 2010 11:24] Valeriy Kravchuk
Verified just as described also with 5.1.44 under Cygwin.
[12 Mar 2010 12:41] Bjørn Munch
The test should *always* have failed on Windows. I don't know if this text is correct to suppress (as suggested) or actually represents an error (on Windows). Therefore I send it back as I don't know what the error means. BTW i see this in 5.1 too.

The reason it doesn't fail if the preceeeding test succeeds is that if the test starts on an already running test, the line CURRENT_TEST: main.mysqldump is lost from the error log. That is another issue.