--source include/have_innodb.inc # need to restart server --source include/not_embedded.inc --connect(con1, localhost, root) CREATE TABLE t(a INT PRIMARY KEY) ENGINE=InnoDB; BEGIN; # Generate insert_undo log. INSERT INTO t VALUES(1),(2); # Generate update_undo log. DELETE FROM t WHERE a=2; --connection default --echo # Normal MariaDB shutdown would roll back the above transaction. --echo # We want the transaction to remain open, so we will kill the server --echo # after ensuring that any non-transactional files are clean. FLUSH TABLES; --echo # Ensure that the above incomplete transaction becomes durable. SET GLOBAL innodb_flush_log_at_trx_commit=1; BEGIN; INSERT INTO t VALUES(0); ROLLBACK; --let $restart_parameters= --innodb-force-recovery=3 --source include/kill_and_restart_mysqld.inc --disconnect con1 SELECT * FROM t; SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; SELECT * FROM t; --let $restart_parameters= --innodb-read-only --source include/restart_mysqld.inc SELECT * FROM t; SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; SELECT * FROM t; --let $restart_parameters= --source include/restart_mysqld.inc SELECT * FROM t; DROP TABLE t;