mariadb/mysql-test/include/maria_empty_logs.inc
Guilhem Bichot 44d3917f7a Fix for BUG#41102 "Maria: maria-no-logging.test fails randomly on Win64"
mysql-test/include/maria_empty_logs.inc:
  move mysqladmin call to include file for reusal (so that others don't have to hit the same bug in their tests);
  this include file additionally waits for disconnection. Reasons for BUG#41102:
  - in maria-no-logging.test, we shut down mysqld in maria_empty_logs.inc, remove logs, tell mtr that it can
  restart mysqld, then wait for being connected (wait_until_connected_again.inc), then send commands to new mysqld.
  - but under Windows "mysqladmin shutdown" does not wait for mysqld to be down, so we accidentally removed logs
  while it was shutting down, wait_until_connected_again found that we were connected (because it was shutting
  down slowly, connections were not yet broken), sent new commands, and one of them failed because mysqld finally
  closed connections.
  - the fix is to just wait for disconnection after shutdown.
  - in a sense, the catch is the "again" in wait_until_connected_again.inc...
mysql-test/include/mysqladmin_shutdown.inc:
  shutdown with mysqladmin AND waiting for shutdown to complete (needed on Windows)
mysql-test/include/wait_until_connected_again.inc:
  comment
mysql-test/include/wait_until_disconnected.inc:
  script which waits until connection is lost
2008-12-05 15:08:09 +01:00

77 lines
2.6 KiB
PHP

# Maria help script.
# Cleans up all logs to give recovery a fresh start.
# API: set mel_keep_control_file=1 if want to keep control file;
# uses vardir, port and socket.
connection default;
let $default_db=`select database()`;
connection admin;
-- echo * shut down mysqld, removed logs, restarted it
append_file $MYSQLTEST_VARDIR/tmp/master0.expect;
wait-maria_empty_logs.inc
EOF
--source include/mysqladmin_shutdown.inc
if (!$mel_keep_control_file)
{
remove_file $MYSQLTEST_VARDIR/master-data/$MARIA_LOG/maria_log_control;
}
-- error 0,1
remove_file $MYSQLTEST_VARDIR/master-data/$MARIA_LOG/maria_log.00000001;
-- error 0,1
remove_file $MYSQLTEST_VARDIR/master-data/$MARIA_LOG/maria_log.00000002;
-- error 0,1
remove_file $MYSQLTEST_VARDIR/master-data/$MARIA_LOG/maria_log.00000003;
-- error 0,1
remove_file $MYSQLTEST_VARDIR/master-data/$MARIA_LOG/maria_log.00000004;
-- error 0,1
remove_file $MYSQLTEST_VARDIR/master-data/$MARIA_LOG/maria_log.00000005;
-- error 0,1
remove_file $MYSQLTEST_VARDIR/master-data/$MARIA_LOG/maria_log.00000006;
-- error 0,1
remove_file $MYSQLTEST_VARDIR/master-data/$MARIA_LOG/maria_log.00000007;
-- error 0,1
remove_file $MYSQLTEST_VARDIR/master-data/$MARIA_LOG/maria_log.00000008;
-- error 0,1
remove_file $MYSQLTEST_VARDIR/master-data/$MARIA_LOG/maria_log.00000009;
-- error 0,1
remove_file $MYSQLTEST_VARDIR/master-data/$MARIA_LOG/maria_log.00000010;
-- error 0,1
remove_file $MYSQLTEST_VARDIR/master-data/$MARIA_LOG/maria_log.00000011;
-- error 0,1
remove_file $MYSQLTEST_VARDIR/master-data/$MARIA_LOG/maria_log.00000012;
-- error 0,1
remove_file $MYSQLTEST_VARDIR/master-data/$MARIA_LOG/maria_log.00000013;
-- error 0,1
remove_file $MYSQLTEST_VARDIR/master-data/$MARIA_LOG/maria_log.00000014;
-- error 0,1
remove_file $MYSQLTEST_VARDIR/master-data/$MARIA_LOG/maria_log.00000015;
-- error 0,1
remove_file $MYSQLTEST_VARDIR/master-data/$MARIA_LOG/maria_log.00000016;
-- error 0,1
remove_file $MYSQLTEST_VARDIR/master-data/$MARIA_LOG/maria_log.00000017;
-- error 0,1
remove_file $MYSQLTEST_VARDIR/master-data/$MARIA_LOG/maria_log.00000018;
-- error 0,1
remove_file $MYSQLTEST_VARDIR/master-data/$MARIA_LOG/maria_log.00000019;
-- error 0,1
remove_file $MYSQLTEST_VARDIR/master-data/$MARIA_LOG/maria_log.00000020;
# hope there are not more than these logs...
-- error 0,1
remove_file $MYSQLTEST_VARDIR/master-data/maria_recovery.trace;
append_file $MYSQLTEST_VARDIR/tmp/master0.expect;
restart-maria_empty_logs.inc
EOF
--source include/wait_until_connected_again.inc
connection default;
# Restore current database as the effect of "use" was lost after restart
--disable_query_log
eval use $default_db;
--enable_query_log