-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
MDEV-717 LP:1003679 - Wrong binlog order on concurrent DROP schema and
CREATE function. Test case added.
- Loading branch information
Alexey Botchkov
committed
May 5, 2016
1 parent
46973bb
commit 3a88adc
Showing
2 changed files
with
85 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 | ||
|