mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 04:22:27 +01:00
cd97523dcf
Created mtr test for reproducing the crash Developed actual fix for the issue. Setting THD::system_thread_info.rpl_sql_info for replayer thread, same way as it is handled for appliers. Recorded test result, with the fix Reviewed-by: Jan Lindström <jan.lindstrom@mariadb.com>
53 lines
1.5 KiB
Text
53 lines
1.5 KiB
Text
connection node_2;
|
|
connection node_1;
|
|
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY, f2 CHAR(1));
|
|
INSERT INTO t1 VALUES (1, 'a');
|
|
INSERT INTO t1 VALUES (2, 'a');
|
|
connection node_1;
|
|
SET AUTOCOMMIT=ON;
|
|
START TRANSACTION;
|
|
UPDATE t1 SET f2 = 'b' WHERE f1 = 1;
|
|
SELECT * FROM t1 WHERE f1 = 2 FOR UPDATE;
|
|
f1 f2
|
|
2 a
|
|
SAVEPOINT my_sp;
|
|
connect node_1a, 127.0.0.1, root, , test, $NODE_MYPORT_1;
|
|
SET SESSION wsrep_sync_wait=0;
|
|
SET GLOBAL wsrep_provider_options = 'dbug=d,apply_monitor_slave_enter_sync';
|
|
connection node_2;
|
|
UPDATE t1 SET f2 = 'c' WHERE f1 = 2;
|
|
connection node_1a;
|
|
SET SESSION wsrep_on = 0;
|
|
SET SESSION wsrep_on = 1;
|
|
SET GLOBAL wsrep_provider_options = 'dbug=';
|
|
SET GLOBAL wsrep_provider_options = 'dbug=d,commit_monitor_master_enter_sync';
|
|
connection node_1;
|
|
COMMIT;
|
|
connection node_1a;
|
|
SET SESSION wsrep_on = 0;
|
|
SET SESSION wsrep_on = 1;
|
|
SET GLOBAL wsrep_provider_options = 'dbug=';
|
|
SET GLOBAL wsrep_provider_options = 'dbug=d,abort_trx_end';
|
|
SET GLOBAL wsrep_provider_options = 'signal=apply_monitor_slave_enter_sync';
|
|
SET SESSION wsrep_on = 0;
|
|
SET SESSION wsrep_on = 1;
|
|
SET GLOBAL wsrep_provider_options = 'dbug=';
|
|
SET GLOBAL wsrep_provider_options = 'signal=abort_trx_end';
|
|
SET GLOBAL wsrep_provider_options = 'signal=commit_monitor_master_enter_sync';
|
|
connection node_1;
|
|
SELECT COUNT(*) = 1 FROM t1 WHERE f2 = 'b';
|
|
COUNT(*) = 1
|
|
1
|
|
SELECT COUNT(*) = 1 FROM t1 WHERE f2 = 'c';
|
|
COUNT(*) = 1
|
|
1
|
|
wsrep_local_replays
|
|
1
|
|
connection node_2;
|
|
SELECT COUNT(*) = 1 FROM t1 WHERE f2 = 'b';
|
|
COUNT(*) = 1
|
|
1
|
|
SELECT COUNT(*) = 1 FROM t1 WHERE f2 = 'c';
|
|
COUNT(*) = 1
|
|
1
|
|
DROP TABLE t1;
|