1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137
|
connection node_2;
connection node_1;
connect node_1a, 127.0.0.1, root, , test, $NODE_MYPORT_1;
connection node_1;
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY AUTO_INCREMENT) ENGINE=InnoDB;
SET SESSION wsrep_trx_fragment_size = 2;
SET SESSION wsrep_trx_fragment_unit = 'statements';
SELECT COUNT(*) = 0 FROM mysql.wsrep_streaming_log;
COUNT(*) = 0
1
SET AUTOCOMMIT=OFF;
START TRANSACTION;
connection node_1a;
SET GLOBAL DEBUG_DBUG = 'd,sync.wsrep_apply_cb';
SET SESSION wsrep_sync_wait = 0;
connection node_2;
INSERT INTO t1 VALUES (1);
connection node_1a;
SET SESSION debug_sync = "now WAIT_FOR sync.wsrep_apply_cb_reached";
SELECT COUNT(*) = 0 FROM t1;
COUNT(*) = 0
1
connection node_1;
SELECT COUNT(*) = 0 FROM t1;
COUNT(*) = 0
1
INSERT INTO t1 VALUES (1);;
connection node_1a;
connection node_1a;
SET GLOBAL DEBUG_DBUG = '';
SET DEBUG_SYNC='now SIGNAL signal.wsrep_apply_cb';
connection node_1;
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
COMMIT;
SELECT COUNT(*) = 1 FROM t1;
COUNT(*) = 1
1
SELECT COUNT(*) = 0 FROM mysql.wsrep_streaming_log;
COUNT(*) = 0
1
connection node_2;
SELECT COUNT(*) = 1 FROM t1;
COUNT(*) = 1
1
SELECT COUNT(*) = 0 FROM mysql.wsrep_streaming_log;
COUNT(*) = 0
1
connection node_1a;
SET DEBUG_SYNC = 'RESET';
connection node_1;
TRUNCATE TABLE t1;
SET SESSION wsrep_trx_fragment_size = 10;
SET SESSION wsrep_trx_fragment_unit = 'bytes';
SELECT COUNT(*) = 0 FROM mysql.wsrep_streaming_log;
COUNT(*) = 0
1
SET AUTOCOMMIT=OFF;
START TRANSACTION;
connection node_1a;
SET GLOBAL DEBUG_DBUG = 'd,sync.wsrep_apply_cb';
SET SESSION wsrep_sync_wait = 0;
connection node_2;
INSERT INTO t1 VALUES (1);
connection node_1a;
SET SESSION debug_sync = "now WAIT_FOR sync.wsrep_apply_cb_reached";
SELECT COUNT(*) = 0 FROM t1;
COUNT(*) = 0
1
connection node_1;
SELECT COUNT(*) = 0 FROM t1;
COUNT(*) = 0
1
INSERT INTO t1 VALUES (1);
connection node_1a;
SET GLOBAL DEBUG_DBUG = '';
SET DEBUG_SYNC='now SIGNAL signal.wsrep_apply_cb';
connection node_1;
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
ROLLBACK;
SELECT * FROM t1;
f1
1
SELECT COUNT(*) = 0 FROM mysql.wsrep_streaming_log;
COUNT(*) = 0
1
connection node_2;
SELECT * FROM t1;
f1
1
SELECT COUNT(*) = 0 FROM mysql.wsrep_streaming_log;
COUNT(*) = 0
1
connection node_1a;
SET DEBUG_SYNC = 'RESET';
connection node_1;
TRUNCATE TABLE t1;
SET SESSION wsrep_trx_fragment_size = 200;
SET SESSION wsrep_trx_fragment_unit = 'bytes';
SELECT COUNT(*) = 0 FROM mysql.wsrep_streaming_log;
COUNT(*) = 0
1
SET AUTOCOMMIT=OFF;
START TRANSACTION;
connection node_1a;
SET GLOBAL DEBUG_DBUG = 'd,sync.wsrep_apply_cb';
SET SESSION wsrep_sync_wait = 0;
connection node_2;
INSERT INTO t1 VALUES (1);
connection node_1a;
SET SESSION debug_sync = "now WAIT_FOR sync.wsrep_apply_cb_reached";
SELECT COUNT(*) = 0 FROM t1;
COUNT(*) = 0
1
connection node_1;
INSERT INTO t1 VALUES (1);
INSERT INTO t1 VALUES (2);
connection node_1a;
SET GLOBAL DEBUG_DBUG = '';
SET DEBUG_SYNC='now SIGNAL signal.wsrep_apply_cb';
connection node_1;
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
COMMIT;
SELECT COUNT(*) = 0 FROM mysql.wsrep_streaming_log;
COUNT(*) = 0
1
connection node_2;
SELECT COUNT(*) = 1 FROM t1;
COUNT(*) = 1
1
SELECT COUNT(*) = 0 FROM mysql.wsrep_streaming_log;
COUNT(*) = 0
1
connection node_1a;
DROP TABLE t1;
SET DEBUG_SYNC = 'RESET';
connection node_2;
CALL mtr.add_suppression("WSREP: Could not find applier context for");
|