mirror of
https://github.com/MariaDB/server.git
synced 2025-02-05 13:22:17 +01:00
![Julius Goryavsky](/assets/img/avatar_default.png)
This commit fixes sporadic failures in galera_3nodes_sr.GCF-336 test. The following changes have been made here: 1) A small addition to the test itself which should make it more deterministic by waiting for non-primary state before COMMIT; 2) More careful handling of the wsrep_ready variable in the server code (it should always be protected with mutex). No additional tests are required.
39 lines
1.2 KiB
Text
39 lines
1.2 KiB
Text
connection node_2;
|
|
connection node_1;
|
|
connection node_2;
|
|
CREATE TABLE t1 (f1 INTEGER) ENGINE=InnoDB;
|
|
SET SESSION wsrep_trx_fragment_size = 1;
|
|
SET AUTOCOMMIT=OFF;
|
|
START TRANSACTION;
|
|
INSERT INTO t1 VALUES (1);
|
|
connect node_2a, 127.0.0.1, root, , test, $NODE_MYPORT_2;
|
|
connection node_2a;
|
|
SELECT COUNT(*) > 0 FROM mysql.wsrep_streaming_log;
|
|
COUNT(*) > 0
|
|
1
|
|
connection node_1;
|
|
SELECT COUNT(*) > 0 FROM mysql.wsrep_streaming_log;
|
|
COUNT(*) > 0
|
|
1
|
|
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
|
|
SELECT COUNT(*) > 0 FROM t1;
|
|
COUNT(*) > 0
|
|
1
|
|
connection node_2a;
|
|
SET GLOBAL wsrep_provider_options = 'gmcast.isolate=1';
|
|
SET SESSION wsrep_sync_wait=0;
|
|
connection node_2;
|
|
INSERT INTO t1 VALUES (2);
|
|
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
|
|
connection node_2a;
|
|
connection node_2;
|
|
COMMIT;
|
|
ERROR 08S01: WSREP has not yet prepared node for application use
|
|
connection node_2a;
|
|
SET GLOBAL wsrep_provider_options = 'gmcast.isolate=0';
|
|
DROP TABLE t1;
|
|
CALL mtr.add_suppression("replication aborted");
|
|
CALL mtr.add_suppression("WSREP: fragment replication failed: 3");
|
|
CALL mtr.add_suppression("WSREP: failed to send SR rollback for ");
|
|
connect node_3, 127.0.0.1, root, , test, $NODE_MYPORT_3;
|
|
connection node_3;
|