Description:
Just some examples which illustrate the issue:
----------------------------------------------
./mysql-test-run --check-testcases events_restart_phase1
=======================================================
TEST RESULT TIME (ms)
-------------------------------------------------------
--- var/tmp/check-master0.result
+++ var/tmp/check-master0.reject
@@ -251,6 +251,7 @@
show databases;
Database
information_schema
+events_test
mysql
test
@@ -335,7 +336,7 @@
CREATE TABLE `event` (
`db` char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
`name` char(64) NOT NULL DEFAULT '',
- `body` longblob NOT NULL,
+ `body` longtext CHARACTER SET utf8 COLLATE utf8_bin,
`definer` char(77) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
`execute_at` datetime DEFAULT NULL,
`interval_value` int(11) DEFAULT NULL,
--- var/tmp/check-master0.result
+++ var/tmp/check-master0.reject
@@ -251,6 +251,7 @@
show databases;
Database
information_schema
+events_test
mysql
test
@@ -335,7 +336,7 @@
CREATE TABLE `event` (
`db` char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
`name` char(64) NOT NULL DEFAULT '',
- `body` longblob NOT NULL,
+ `body` longtext CHARACTER SET utf8 COLLATE utf8_bin,
`definer` char(77) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
`execute_at` datetime DEFAULT NULL,
`interval_value` int(11) DEFAULT NULL
./mysql-test-run events_restart_phase2
...
=======================================================
TEST RESULT TIME (ms)
-------------------------------------------------------
main.events_restart_phase2 [ fail ]
mysqltest: At line 4: query 'use events_test' failed: 1049: Unknown database 'events_test'
This bug in testcase architecture has in the moment
most probably nearly no impact on the outcome of
Pushbuild.
But significant problems will come up
- extreme likely if MTR runs with the option
"--reorder"
"--reorder" accelerates the execution of testsuites
- likely if someone defines its own sequence of tests
and this sequence contains events_bugs
How to repeat:
See above
Suggested fix:
We have here a situation where a fixed order of
test execution
main.events_restart_phase1
main.events_restart_phase2
main.events_restart_phase3
is required.
This is an uncomfortable architecture if somebody
has to fix one of these tests. But there are some
checks where we cannot avoid such an architecture
because of the limited capabilities of our tools
(Example: Upgrade/Downgrade testsuite in
mysql-test-extra-<version trees).
The main failure here is to mix such tests into
a huge testsuite ("main") where
- IMHO > 90% of all tests do not have such dependencies
(nobody expects them)
- sooner or later runs of MTR will/should contain
the option "--reorder"
-> Reorder the tests so that server restarts
can be optimized away
Suggested fix:
Either
- put these tests into their own testsuite and
document that MTR runs with "--reorder" might
cause failures because there are dependencies
between the tests
- try to remove the dependencies between these tests
Description: Just some examples which illustrate the issue: ---------------------------------------------- ./mysql-test-run --check-testcases events_restart_phase1 ======================================================= TEST RESULT TIME (ms) ------------------------------------------------------- --- var/tmp/check-master0.result +++ var/tmp/check-master0.reject @@ -251,6 +251,7 @@ show databases; Database information_schema +events_test mysql test @@ -335,7 +336,7 @@ CREATE TABLE `event` ( `db` char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '', `name` char(64) NOT NULL DEFAULT '', - `body` longblob NOT NULL, + `body` longtext CHARACTER SET utf8 COLLATE utf8_bin, `definer` char(77) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '', `execute_at` datetime DEFAULT NULL, `interval_value` int(11) DEFAULT NULL, --- var/tmp/check-master0.result +++ var/tmp/check-master0.reject @@ -251,6 +251,7 @@ show databases; Database information_schema +events_test mysql test @@ -335,7 +336,7 @@ CREATE TABLE `event` ( `db` char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '', `name` char(64) NOT NULL DEFAULT '', - `body` longblob NOT NULL, + `body` longtext CHARACTER SET utf8 COLLATE utf8_bin, `definer` char(77) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '', `execute_at` datetime DEFAULT NULL, `interval_value` int(11) DEFAULT NULL ./mysql-test-run events_restart_phase2 ... ======================================================= TEST RESULT TIME (ms) ------------------------------------------------------- main.events_restart_phase2 [ fail ] mysqltest: At line 4: query 'use events_test' failed: 1049: Unknown database 'events_test' This bug in testcase architecture has in the moment most probably nearly no impact on the outcome of Pushbuild. But significant problems will come up - extreme likely if MTR runs with the option "--reorder" "--reorder" accelerates the execution of testsuites - likely if someone defines its own sequence of tests and this sequence contains events_bugs How to repeat: See above Suggested fix: We have here a situation where a fixed order of test execution main.events_restart_phase1 main.events_restart_phase2 main.events_restart_phase3 is required. This is an uncomfortable architecture if somebody has to fix one of these tests. But there are some checks where we cannot avoid such an architecture because of the limited capabilities of our tools (Example: Upgrade/Downgrade testsuite in mysql-test-extra-<version trees). The main failure here is to mix such tests into a huge testsuite ("main") where - IMHO > 90% of all tests do not have such dependencies (nobody expects them) - sooner or later runs of MTR will/should contain the option "--reorder" -> Reorder the tests so that server restarts can be optimized away Suggested fix: Either - put these tests into their own testsuite and document that MTR runs with "--reorder" might cause failures because there are dependencies between the tests - try to remove the dependencies between these tests