If mysqltest dies, mtr waits to see if mysqld dies too within 100ms
But in that case, it should not care about expected crash
Fix: jump past the code that checks the expect file
Follow-up discussed with Reporter:
Avoid hard shutdown after test failure, if caused by server log warning
AND we are running valgrind
More general pick-up of valgrind summaries, order may apparently vary
Do exit(1) if we did find valgrind summary warnings
- use $bindir instead of $basedir when looking for binaries
- NOTE! the $ENV{NDB_EXAMPLES_*} will be reworked so that
mtr.pl does not need to set them up.
There were actually more problems in this area:
Slaves (if any) were unconditionally restarted, this appears unnecessary.
Sort criteria were suboptimal, included the test name.
Added logic to "reserve" a sequence of tests with same config for one thread
Got rid of sort_criteria hash, put it into the test case itself
Adds little sanity check that expected worker picks up test
Fixed some tests that may fail if starting on running server
Some of these fail only if *same* test is repeated.
Finally, special sorting of tests that do --force-restart
add boolean command-line option --autocommit.
mysql-test/mysql-test-run.pl:
do in --gdb like in --ddd: to let the developer debug the startup
phase (like command-line options parsing), don't "run".
It's the third time I do this change, it was previously lost
by merges, port of 6.0 to next-mr...
mysql-test/r/mysqld--help-notwin.result:
new command-line option
mysql-test/r/mysqld--help-win.result:
a Linux user's best guess at what the Windows result should be
mysql-test/suite/sys_vars/inc/autocommit_func2.inc:
new test
mysql-test/suite/sys_vars/t/autocommit_func2-master.opt:
test new option
mysql-test/suite/sys_vars/t/autocommit_func3-master.opt:
test new option
sql/mysqld.cc:
new --autocommit
sql/mysqld.h:
new --autocommit
sql/sql_partition.cc:
What matters to this partitioning quote is to have
the OPTION_QUOTE_SHOW_CREATE flag down, it's all
that append_identifier() uses. So we make it explicit.
If a relative path is supplied to option --defaults-file or
--defaults-extra-file, the server will crash when executing
an INSTALL PLUGIN command. The reason is that the defaults
file is initially read relative the current working directory
when the server is started, but when INSTALL PLUGIN is executed,
the server has changed working directory to the data directory.
Since there is no check that the call to my_load_defaults()
inside mysql_install_plugin(), the subsequence call to
free_defaults() will crash the server.
This patch fixes the problem by:
- Prepending the current working directory to the file name when
a relative path is given to the --defaults-file or --defaults-
extra-file option the first time my_load_defaults() is called,
which is just after the server has started in main().
- Adding a check of the return value of my_load_defaults() inside
mysql_install_plugin() and aborting command (with an error) if
an error is returned.
- It also adds a check of the return value for load_defaults in
lib_sql.cc for the embedded server since that was missing.
To test that the relative files for the options --defaults-file and
--defaults-extra-file is handled properly, mysql-test-run.pl is also
changed to not add a --defaults-file option if one is provided in the
tests *.opt file.
Trying to run perl fails, just like it does when perl is started but fails
Trap the case that perl was not found/could not be started, and skip test
Also force a restart of servers since test may already have done something
mtr now also appends path of current perl to PATH to aid mysqltest
The 'mysqlhotcopy' tool gets into bin/ directory after the installation
from the scripts/.
So check for it in that in the mysql-test-run.pl.
per-file comments:
mysql-test/mysql-test-run.pl
Check the bin/ for mysqlhotcopy presence.
The include/mysqlhotcopy.inc had an error in the 'if' condition, so it failed
if the mysqlhotcopy tool was found.
per-file comments:
mysql-test/include/mysqlhotcopy.inc
test should proceed exactly if the mysqlhotcopy was set.
mysql-test/mysql-test-run.pl
don't set the MYSQL_HOTCOPY variable if no mysqlhotcopy was found.