drop database if exists mysqltest; create database mysqltest; connect admin, localhost, root,,mysqltest,,; connection default; use mysqltest; connection default; connection admin; * shut down mysqld, removed logs, restarted it connection default; create table t1 (a varchar(10000)) engine=aria; * TEST of over-allocated bitmap not flushed by checkpoint insert into t1 values ("bbbbbbb"); connection admin; flush table t1; * copied t1 for comparison connection default; insert into t1 values ("bbbbbbb"); delete from t1 limit 1; connect extra, localhost, root,,mysqltest,,; set session debug_dbug="+d,info,enter,exit,maria_over_alloc_bitmap"; insert into t1 values ("aaaaaaaaa"); connection admin; set global aria_checkpoint_interval=1; connection admin; SET SESSION debug_dbug="+d,maria_crash"; * crashing mysqld intentionally set global aria_checkpoint_interval=1; ERROR HY000: Lost connection to server during query * recovery happens check table t1 extended; Table Op Msg_type Msg_text mysqltest.t1 check status OK * testing that checksum after recovery is as expected Checksum-check ok connection default; use mysqltest; connection default; * TEST of bitmap flushed without REDO-UNDO in the log (WAL violation) connection admin; flush table t1; * copied t1 for comparison connection default; lock tables t1 write; insert into t1 values (REPEAT('a', 6000)); connection admin; SET SESSION debug_dbug="+d,maria_flush_bitmap,maria_crash"; * crashing mysqld intentionally set global aria_checkpoint_interval=1; ERROR HY000: Lost connection to server during query * recovery happens check table t1 extended; Table Op Msg_type Msg_text mysqltest.t1 check status OK * testing that checksum after recovery is as expected Checksum-check ok connection default; use mysqltest; drop table t1; drop database mysqltest_for_comparison; drop database mysqltest;