connection node_2; connection node_1; CREATE TABLE t1 ( f1 INT, f2 VARCHAR(255) PRIMARY KEY ) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO t1 VALUES(1, 'abc'); connection node_1; SET AUTOCOMMIT=OFF; START TRANSACTION; INSERT INTO t1 VALUES (2,'def'); connection node_2; SET GLOBAL event_scheduler=ON; CREATE PROCEDURE update_table() BEGIN SET AUTOCOMMIT=OFF; DO GET_LOCK('local_lock', 0); SET DEBUG_SYNC = 'innodb_row_update_for_mysql_begin SIGNAL blocked WAIT_FOR continue'; UPDATE t1 SET f2 = 'jkl' WHERE f1 != 2; DO RELEASE_LOCK('local_lock'); END| CREATE DEFINER=current_user EVENT event ON SCHEDULE AT CURRENT_TIMESTAMP ON COMPLETION PRESERVE ENABLE DO CALL update_table(); connect node_2a, 127.0.0.1, root, , test, $NODE_MYPORT_2; SET DEBUG_SYNC = 'now WAIT_FOR blocked'; connect node_2b, 127.0.0.1, root, , test, $NODE_MYPORT_2; SET GLOBAL debug_dbug = "+d,sync.wsrep_apply_cb"; connection node_1; COMMIT; connection node_2b; SET DEBUG_SYNC = "now WAIT_FOR sync.wsrep_apply_cb_reached"; SET DEBUG_SYNC = "now SIGNAL signal.wsrep_apply_cb"; connection node_2a; SET DEBUG_SYNC = 'now SIGNAL continue'; connection node_2; SET GLOBAL event_scheduler=default; DROP PROCEDURE update_table; DROP EVENT event; SET DEBUG_SYNC='reset'; SET GLOBAL debug_dbug = DEFAULT; connection node_1; DROP TABLE t1;