Skip to content

Commit

Permalink
MDEV-717 LP:1003679 - Wrong binlog order on concurrent DROP schema and
Browse files Browse the repository at this point in the history
         CREATE function.

         Test case added.
  • Loading branch information
Alexey Botchkov committed May 5, 2016
1 parent 46973bb commit 3a88adc
Show file tree
Hide file tree
Showing 2 changed files with 85 additions and 0 deletions.
40 changes: 40 additions & 0 deletions mysql-test/suite/binlog/r/binlog_mdev717.result
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
RESET MASTER;
CREATE DATABASE mysqltest;
SET DEBUG_SYNC= "after_wait_locked_schema_name SIGNAL locked WAIT_FOR release";
DROP DATABASE mysqltest;;
SET DEBUG_SYNC= "now WAIT_FOR locked";
SET DEBUG_SYNC= "before_wait_locked_pname SIGNAL release";
CREATE FUNCTION mysqltest.f1() RETURNS INT RETURN 1;
ERROR 42000: Unknown database 'mysqltest'
CREATE DATABASE mysqltest;
SET DEBUG_SYNC= "after_wait_locked_schema_name SIGNAL locked WAIT_FOR release";
DROP DATABASE mysqltest;;
SET DEBUG_SYNC= "now WAIT_FOR locked";
SET DEBUG_SYNC= "before_wait_locked_pname SIGNAL release";
CREATE EVENT mysqltest.e1 ON SCHEDULE EVERY 15 MINUTE DO BEGIN END;
ERROR 42000: Unknown database 'mysqltest'
CREATE DATABASE mysqltest;
CREATE EVENT mysqltest.e1 ON SCHEDULE EVERY 15 MINUTE DO BEGIN END;
SET DEBUG_SYNC= "after_wait_locked_schema_name SIGNAL locked WAIT_FOR release";
DROP DATABASE mysqltest;;
SET DEBUG_SYNC= "now WAIT_FOR locked";
SET DEBUG_SYNC= "before_wait_locked_pname SIGNAL release";
ALTER EVENT mysqltest.e1 ON SCHEDULE EVERY 20 MINUTE DO BEGIN END;
ERROR 42000: Unknown database 'mysqltest'
SET DEBUG_SYNC= "RESET";
include/show_binlog_events.inc
Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 # Gtid # # GTID #-#-#
master-bin.000001 # Query # # CREATE DATABASE mysqltest
master-bin.000001 # Gtid # # GTID #-#-#
master-bin.000001 # Query # # DROP DATABASE mysqltest
master-bin.000001 # Gtid # # GTID #-#-#
master-bin.000001 # Query # # CREATE DATABASE mysqltest
master-bin.000001 # Gtid # # GTID #-#-#
master-bin.000001 # Query # # DROP DATABASE mysqltest
master-bin.000001 # Gtid # # GTID #-#-#
master-bin.000001 # Query # # CREATE DATABASE mysqltest
master-bin.000001 # Gtid # # GTID #-#-#
master-bin.000001 # Query # # use `test`; CREATE DEFINER=`root`@`localhost` EVENT mysqltest.e1 ON SCHEDULE EVERY 15 MINUTE DO BEGIN END
master-bin.000001 # Gtid # # GTID #-#-#
master-bin.000001 # Query # # DROP DATABASE mysqltest
45 changes: 45 additions & 0 deletions mysql-test/suite/binlog/t/binlog_mdev717.test
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# MDEV-717 LP:1003679 - Wrong binlog order on concurrent DROP schema and CREATE function.

--source include/have_log_bin.inc
RESET MASTER;

connect(con1,localhost,root);
connection default;

CREATE DATABASE mysqltest;
SET DEBUG_SYNC= "after_wait_locked_schema_name SIGNAL locked WAIT_FOR release";
--send DROP DATABASE mysqltest;
connection con1;
SET DEBUG_SYNC= "now WAIT_FOR locked";
SET DEBUG_SYNC= "before_wait_locked_pname SIGNAL release";
--error ER_BAD_DB_ERROR
CREATE FUNCTION mysqltest.f1() RETURNS INT RETURN 1;
connection default;
--reap

CREATE DATABASE mysqltest;
SET DEBUG_SYNC= "after_wait_locked_schema_name SIGNAL locked WAIT_FOR release";
--send DROP DATABASE mysqltest;
connection con1;
SET DEBUG_SYNC= "now WAIT_FOR locked";
SET DEBUG_SYNC= "before_wait_locked_pname SIGNAL release";
--error ER_BAD_DB_ERROR
CREATE EVENT mysqltest.e1 ON SCHEDULE EVERY 15 MINUTE DO BEGIN END;
connection default;
--reap

CREATE DATABASE mysqltest;
CREATE EVENT mysqltest.e1 ON SCHEDULE EVERY 15 MINUTE DO BEGIN END;
SET DEBUG_SYNC= "after_wait_locked_schema_name SIGNAL locked WAIT_FOR release";
--send DROP DATABASE mysqltest;
connection con1;
SET DEBUG_SYNC= "now WAIT_FOR locked";
SET DEBUG_SYNC= "before_wait_locked_pname SIGNAL release";
--error ER_BAD_DB_ERROR
ALTER EVENT mysqltest.e1 ON SCHEDULE EVERY 20 MINUTE DO BEGIN END;
connection default;
--reap

SET DEBUG_SYNC= "RESET";
--source include/show_binlog_events.inc

0 comments on commit 3a88adc

Please sign in to comment.