mirror of
https://github.com/MariaDB/server.git
synced 2025-09-11 05:52:26 +03:00
Added explicit checkpoint wait instead of implicit assumption that statement sent via --send will already be executed when lock-contesting statement is started in another session.
29 lines
862 B
Plaintext
29 lines
862 B
Plaintext
connection node_2;
|
|
connection node_1;
|
|
CREATE TABLE t1(id int not null primary key, b int) engine=InnoDB;
|
|
INSERT INTO t1 VALUES (0,0),(1,1),(2,2),(3,3);
|
|
BEGIN;
|
|
SET DEBUG_SYNC = 'wsrep_after_statement_enter SIGNAL blocked';
|
|
UPDATE t1 set b = 100 where id between 1 and 2;;
|
|
connect node_1b, 127.0.0.1, root, , test, $NODE_MYPORT_1;
|
|
SET DEBUG_SYNC = 'now WAIT_FOR blocked';
|
|
SET DEBUG_SYNC = 'wsrep_after_statement_enter CLEAR';
|
|
connection node_1b;
|
|
SET @save_dbug = @@SESSION.debug_dbug;
|
|
SET @@SESSION.innodb_lock_wait_timeout=2;
|
|
SET @@SESSION.debug_dbug = '+d,wsrep_instrument_BF_lock_wait';
|
|
UPDATE t1 set b = 200 WHERE id = 1;
|
|
ERROR HY000: Lock wait timeout exceeded; try restarting transaction
|
|
SET @@SESSION.debug_dbug = @save_dbug;
|
|
connection node_1;
|
|
COMMIT;
|
|
SELECT * FROM t1;
|
|
id b
|
|
0 0
|
|
1 100
|
|
2 100
|
|
3 3
|
|
SET DEBUG_SYNC = 'RESET';
|
|
disconnect node_1b;
|
|
DROP TABLE t1;
|