Bug #43405 MTR2: when running the testsuite with --debug, it fails at all tests
Submitted: 5 Mar 2009 9:50 Modified: 6 Mar 2009 10:00
Reporter: Guilhem Bichot Email Updates:
Status: Duplicate Impact on me:
None 
Category:Tools: MTR / mysql-test-run Severity:S3 (Non-critical)
Version:6.0 OS:Linux
Assigned to: Bjørn Munch CPU Architecture:Any
Tags: pushbuild, test failure

[5 Mar 2009 9:50] Guilhem Bichot
Description:
I'm using 6.0-maria (but it's not specific to Maria).
./mtr --mem --debug:
the first test which is not skipped prints:
binlog.binlog_multi_engine 'row'         [ pass ]  11973

MTR's internal check of the test case 'binlog.binlog_multi_engine' failed.
This means that the test case does not preserve the state that existed
before the test case was executed.  Most likely the test case did not
do a proper clean-up.
This is the diff of the states of the servers before and after the
test case was executed:
--- /home/mysql_src/bzrrepos/mysql-maria/mysql-test/var/tmp/check-mysqld_1_1.result     2009-03-05 12:46:15.206272882 +0300
+++ /home/mysql_src/bzrrepos/mysql-maria/mysql-test/var/tmp/check-mysqld_1_1.reject     2009-03-05 12:46:28.110721000 +0300
@@ -30,7 +30,7 @@
 DEADLOCK_SEARCH_DEPTH_SHORT    4
 DEADLOCK_TIMEOUT_LONG  50000000
 DEADLOCK_TIMEOUT_SHORT 10000
-DEBUG  d:i:A,/home/mysql_src/bzrrepos/mysql-maria/mysql-test/var/log/mysqld.1.1.trace:t
+DEBUG
 DEFAULT_WEEK_FORMAT    0
 DELAYED_INSERT_LIMIT   100
 DELAYED_INSERT_TIMEOUT 300

mysqltest: Result content mismatch

not ok

binlog.binlog_multi_engine 'stmt'        [ pass ]  12368

MTR's internal check of the test case 'binlog.binlog_multi_engine' failed.
This means that the test case does not preserve the state that existed
before the test case was executed.  Most likely the test case did not
do a proper clean-up.
This is the diff of the states of the servers before and after the
test case was executed:
--- /home/mysql_src/bzrrepos/mysql-maria/mysql-test/var/tmp/check-mysqld_1_1.result     2009-03-05 12:46:37.311040489 +0300
+++ /home/mysql_src/bzrrepos/mysql-maria/mysql-test/var/tmp/check-mysqld_1_1.reject     2009-03-05 12:46:49.835475411 +0300
@@ -30,7 +30,7 @@
 DEADLOCK_SEARCH_DEPTH_SHORT    4
 DEADLOCK_TIMEOUT_LONG  50000000
 DEADLOCK_TIMEOUT_SHORT 10000
-DEBUG  d:i:A,/home/mysql_src/bzrrepos/mysql-maria/mysql-test/var/log/mysqld.1.1.trace:t
+DEBUG
 DEFAULT_WEEK_FORMAT    0
 DELAYED_INSERT_LIMIT   100
 DELAYED_INSERT_TIMEOUT 300

mysqltest: Result content mismatch

not ok

and so on for each test.
Such errors pollute the screen, cause a server restart for each test, and a reinstallation of the datadir for each test.
This was already reported by Ingo in an internal email thread. It should not be left unsolved. Running with --debug is useful, it shouldn't be broken (worked with MTR1).

How to repeat:
./mtr --mem --debug
[5 Mar 2009 13:39] Bjørn Munch
It's the check_warnings test which explicitly sets DEBUG to nothing:

set debug="";

Adding 'debug' to 'timestamp' as a variable to ignore in the check test is not a solution; the next test would be run without debug until the server is restarted.  We need to store the current debug setting into a variable and then restore it when done.
[6 Mar 2009 10:00] Bjørn Munch
Duplicate of Bug #38054: "SET SESSION debug" modifies @@global.debug variable

This should actually work, and does work on 5.1, but not on 6.0 due to this server bug.

As a temporary workaround, add --no-check-test as an option to MTR. You would lose that functionality but the tests should not stumble on this problem.