--source include/not_embedded.inc # # MDEV-18496 Crash when Aria encryption is enabled but plugin not available # call mtr.add_suppression('Unknown key id 1'); call mtr.add_suppression('try to repair it'); call mtr.add_suppression('Index is corrupted'); call mtr.add_suppression("Initialization of encryption failed.*"); set global aria_encrypt_tables= 1; --error HA_ERR_NO_ENCRYPTION create table t1 (pk int primary key, a int, key(a)) engine=aria transactional=1; set global aria_encrypt_tables= default; --echo # --echo # MDEV-26258 Various crashes/asserts/corruptions when Aria encryption is --echo # enabled/used, but the encryption plugin is not loaded --echo # SET GLOBAL aria_encrypt_tables=ON; --write_file $MYSQLTEST_VARDIR/keys1.txt 1;770A8A65DA156D24EE2A093277530142 EOF --replace_result \\ / --error HA_ERR_NO_ENCRYPTION CREATE TABLE t1 (a INT KEY,b INT,KEY(b)) ENGINE=Aria; --echo # Restart with encryption enabled --exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect --shutdown_server --source include/wait_until_disconnected.inc --exec echo "restart:--aria-encrypt-tables=1 --plugin-load-add=file_key_management --file-key-management --file-key-management-filename=$MYSQLTEST_VARDIR/keys1.txt" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect --enable_reconnect --source include/wait_until_connected_again.inc CREATE TABLE t1 (a INT KEY,b INT,KEY(b)) ENGINE=Aria; INSERT INTO t1 VALUES (4,0); LOAD INDEX INTO CACHE t1 IGNORE LEAVES; LOAD INDEX INTO CACHE t1; # Restart without encryption. Above table should be unreadable --exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect --shutdown_server --source include/wait_until_disconnected.inc --exec echo "restart:--aria-encrypt-tables=0" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect --enable_reconnect --source include/wait_until_connected_again.inc --replace_result \\ / --error HA_ERR_NO_ENCRYPTION SELECT * FROM t1; DROP TABLE t1; --echo Cleanup --remove_file $MYSQLTEST_VARDIR/keys1.txt