# # BUG#31236217 : NOT HANDLING ERROR RETURNED FROM DDL_LOG_TABLE::INSERT MIGHT # BREAK ATOMIC DDL # --source include/have_debug.inc --disable_query_log call mtr.add_suppression("\\[Error\\] \\[[^]]*\\] \\[[^]]*\\] Couldn't insert entry in ddl log for ddl."); call mtr.add_suppression("\\[Error\\] \\[[^]]*\\] \\[[^]]*\\] Couldn't write DDL LOG for"); --enable_query_log --echo # Setup CREATE TABLE t1 (c1 INT); CREATE TABLESPACE my_ts ADD DATAFILE "my_ts.ibd"; # Return error from insert into ddl_log SET SESSION DEBUG="+d,ddl_log_return_error_from_insert"; --echo # Run few DDLs. All DDLs should give error now. --error ER_ERROR_ON_RENAME ALTER TABLE t1 RENAME to t2; --error ER_GET_ERRNO ALTER TABLE t1 ADD COLUMN c2 INT, ALGORITHM=COPY; --error ER_GET_ERRNO ALTER TABLE t1 ADD COLUMN c2 INT, ALGORITHM=INPLACE; --error ER_ENGINE_CANT_DROP_TABLE DROP TABLE t1; SET SESSION DEBUG="-d,ddl_log_return_error_from_insert"; --echo # Restart with keyring plugin let $restart_parameters = restart: --early-plugin-load=keyring_file=$KEYRING_PLUGIN --loose-keyring_file_data=$MYSQL_TMP_DIR/mysecret_keyring $KEYRING_PLUGIN_OPT; --source include/restart_mysqld_no_echo.inc # Return error from insert into ddl_log SET SESSION DEBUG="+d,ddl_log_return_error_from_insert"; --error ER_ALTER_FILEGROUP_FAILED ALTER TABLESPACE my_ts ENCRYPTION='Y'; SET SESSION DEBUG="-d,ddl_log_return_error_from_insert"; --echo # Cleanup DROP TABLE t1; remove_file $MYSQL_TMP_DIR/mysecret_keyring; --echo # Restarting server without keyring to restore server state let $restart_parameters = restart: ; --source include/restart_mysqld.inc