Skip to content

Commit 51c8289

Browse files
MikkoJaakolaJan Lindström
authored andcommitted
MDEV-21759 galera.galera_parallel_autoinc_manytrx sporadic failures.
The galera.galera_parallel_autoinc_manytrx mtr test opens and runs test scenario through 3 connections to node 1 and one connection to node 2. In the test initialization phase, the test creates two tables 't1' and 'ten' and then creates a stored procedure 'p1' to operate on these tables. These 3 create DDL statements are issued through same connection to node 1. In the next test phase, the mtr script uses send command to launch the call for the p1 stored procedure through all 3 connections to node 1 and through one connection to node 2. As the mtr send command is asynchronous, this test phase is non blocking and fast operation. Now, if the replication between nodes is slow, it may happen that the initialization phase DDL statements have not been received or have not been fully applied in node 2. Therefore there is no guarantee that the test tables and the stored procedure have been created in node 2. Yet, the test is trying to call p1 in node 2. In the failure case error logs, there is error message "MTR failed: query 'reap' failed: 1305: PROCEDURE test.p1 does not exist" The reap command through connection to node 2, is the first place where test execution may observe that test tables and/or stored procedure are not yet created in node 2. The fix in this commit adds a wait condition in connection to node 2, to wait until the stored procedure is created before calling the stored procedure. The wait is implemented by looking in information_schema.routines for the p1 stored procedure.
1 parent 3ddb080 commit 51c8289

File tree

2 files changed

+4
-0
lines changed

2 files changed

+4
-0
lines changed

mysql-test/suite/galera/r/galera_parallel_autoinc_manytrx.result

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ COMMIT;
1616
SET current_num = current_num + 1;
1717
END WHILE;
1818
END|
19+
call p1(1000);
20+
connection node_1;
1921
connection node_1a;
2022
connection node_1b;
2123
connection node_2;

mysql-test/suite/galera/t/galera_parallel_autoinc_manytrx.test

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,8 @@ send call p1(1000);
5757

5858
--connection node_2
5959
--disable_query_log
60+
--let $wait_condition = select count(*)=1 from information_schema.routines WHERE routine_name='p1';
61+
--source include/wait_condition.inc
6062
send call p1(1000);
6163

6264
--connection node_1

0 commit comments

Comments
 (0)