--echo # --echo # BUG#41330 - Myisam table open count set to zero before index blocks are written. --echo # --source include/not_embedded.inc --echo # Don't test this under valgrind, memory leaks will occur --source include/not_valgrind.inc --echo # Binary must be compiled with debug for crash to occur --source include/have_debug.inc call mtr.add_suppression("Got an error from thread_id=.*ha_myisam.cc:"); call mtr.add_suppression("MySQL thread id .*, query id .* localhost.*root Checking table"); let $MYSQLD_DATADIR= `select @@datadir`; SET GLOBAL delay_key_write=ALL; CREATE TABLE t1(a INT, b INT, PRIMARY KEY(a , b), KEY(b)) ENGINE=MyISAM DELAY_KEY_WRITE = 1; INSERT INTO t1 VALUES (1,2),(2,3),(3,4),(4,5),(5,6); --echo # Setup the mysqld to crash at certain point SET SESSION debug="d,crash_before_flush_keys"; --echo # Write file to make mysql-test-run.pl expect crash --exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect --echo # Run the crashing query --error 2013 FLUSH TABLE t1; --echo # Write file to make mysql-test-run.pl start the server --exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect --echo # Turn on reconnect --enable_reconnect --echo # Call script that will poll the server waiting for --echo # it to be back online again --source include/wait_until_connected_again.inc # Must report that the table wasn't closed properly CHECK TABLE t1; DROP TABLE t1;