mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
MDEV-33211 : Galera SST on maria-backup causes donor node to be unresponsive
If mariabackup with backup locks is used on SST we do not pause and desync galera provider at all. If WSREP_MODE_BF_MARIABACKUP case provider is paused and desync at BLOCK_COMMIT phase. In other cases provider is paused and desync at BLOCK_DDL phase.
This commit is contained in:
@@ -12,9 +12,9 @@ connection node_1;
|
||||
connection node_2;
|
||||
Starting server ...
|
||||
connection node_1;
|
||||
# Both should return FOUND 2 as we have bootstrap and SST
|
||||
FOUND 2 /Desyncing and pausing the provider/ in mysqld.1.err
|
||||
FOUND 2 /Resuming and resyncing the provider/ in mysqld.1.err
|
||||
# Both should return NOT FOUND as we have mariabackup with backup locks
|
||||
NOT FOUND /Desyncing and pausing the provider/ in mysqld.1.err
|
||||
NOT FOUND /Resuming and resyncing the provider/ in mysqld.1.err
|
||||
connection node_1;
|
||||
SET GLOBAL wsrep_mode = "BF_ABORT_MARIABACKUP";
|
||||
# Restart node_2, force SST.
|
||||
@@ -25,9 +25,9 @@ connection node_2;
|
||||
Starting server ...
|
||||
connection node_2;
|
||||
connection node_1;
|
||||
# Both should return FOUND 3 as we have 1 new SST
|
||||
FOUND 3 /Desyncing and pausing the provider/ in mysqld.1.err
|
||||
FOUND 3 /Resuming and resyncing the provider/ in mysqld.1.err
|
||||
# Both should return NOT FOUND as we have mariabackup with backup locks
|
||||
NOT FOUND /Desyncing and pausing the provider/ in mysqld.1.err
|
||||
NOT FOUND /Resuming and resyncing the provider/ in mysqld.1.err
|
||||
SET GLOBAL wsrep_mode = "";
|
||||
DROP TABLE t;
|
||||
# Case 2: MariaBackup backup from node_2
|
||||
@@ -46,11 +46,13 @@ SET GLOBAL wsrep_mode = "BF_ABORT_MARIABACKUP";
|
||||
SELECT @@wsrep_mode;
|
||||
@@wsrep_mode
|
||||
BF_ABORT_MARIABACKUP
|
||||
# Both should return FOUND 1 as node should not desync
|
||||
FOUND 1 /Desyncing and pausing the provider/ in mysqld.2.err
|
||||
FOUND 1 /Resuming and resyncing the provider/ in mysqld.2.err
|
||||
# Should return FOUND 1 because only last backup does not desync
|
||||
FOUND 1 /Server not desynched from group because WSREP_MODE_BF_MARIABACKUP used./ in mysqld.2.err
|
||||
# Both should return FOUND 2 because both backups do desync but on different points
|
||||
FOUND 2 /Desyncing and pausing the provider/ in mysqld.2.err
|
||||
FOUND 2 /Resuming and resyncing the provider/ in mysqld.2.err
|
||||
# Should return FOUND 1 as server did not desync at BLOCK_DDL
|
||||
FOUND 1 /Server not desynched from group at BLOCK_DDL because WSREP_MODE_BF_MARIABACKUP is used./ in mysqld.2.err
|
||||
# Should return FOUND 1 as server did desync and pause at BLOCK_COMMIT
|
||||
FOUND 1 /Server desynched from group during BACKUP STAGE BLOCK_COMMIT./ in mysqld.2.err
|
||||
SET GLOBAL wsrep_mode = "";
|
||||
connection node_1;
|
||||
DROP TABLE t;
|
||||
|
@@ -13,7 +13,7 @@
|
||||
CREATE TABLE t(i INT NOT NULL PRIMARY KEY) ENGINE INNODB;
|
||||
INSERT INTO t VALUES(1);
|
||||
#
|
||||
# In default settings donor should desync
|
||||
# In default settings donor should not desync
|
||||
#
|
||||
--echo # Restart node_2, force SST.
|
||||
--connection node_2
|
||||
@@ -37,7 +37,7 @@ let $restart_noprint=2;
|
||||
|
||||
--connection node_1
|
||||
let SEARCH_FILE = $MYSQLTEST_VARDIR/log/mysqld.1.err;
|
||||
--echo # Both should return FOUND 2 as we have bootstrap and SST
|
||||
--echo # Both should return NOT FOUND as we have mariabackup with backup locks
|
||||
let SEARCH_PATTERN = Desyncing and pausing the provider;
|
||||
--source include/search_pattern_in_file.inc
|
||||
let SEARCH_PATTERN = Resuming and resyncing the provider;
|
||||
@@ -76,7 +76,7 @@ let $restart_noprint=2;
|
||||
|
||||
--connection node_1
|
||||
let SEARCH_FILE = $MYSQLTEST_VARDIR/log/mysqld.1.err;
|
||||
--echo # Both should return FOUND 3 as we have 1 new SST
|
||||
--echo # Both should return NOT FOUND as we have mariabackup with backup locks
|
||||
let SEARCH_PATTERN = Desyncing and pausing the provider;
|
||||
--source include/search_pattern_in_file.inc
|
||||
let SEARCH_PATTERN = Resuming and resyncing the provider;
|
||||
@@ -117,13 +117,16 @@ let $targetdir=$MYSQLTEST_VARDIR/tmp/backup2;
|
||||
--enable_result_log
|
||||
|
||||
let SEARCH_FILE = $MYSQLTEST_VARDIR/log/mysqld.2.err;
|
||||
--echo # Both should return FOUND 1 as node should not desync
|
||||
--echo # Both should return FOUND 2 because both backups do desync but on different points
|
||||
let SEARCH_PATTERN = Desyncing and pausing the provider;
|
||||
--source include/search_pattern_in_file.inc
|
||||
let SEARCH_PATTERN = Resuming and resyncing the provider;
|
||||
--source include/search_pattern_in_file.inc
|
||||
--echo # Should return FOUND 1 because only last backup does not desync
|
||||
let SEARCH_PATTERN = Server not desynched from group because WSREP_MODE_BF_MARIABACKUP used.;
|
||||
--echo # Should return FOUND 1 as server did not desync at BLOCK_DDL
|
||||
let SEARCH_PATTERN = Server not desynched from group at BLOCK_DDL because WSREP_MODE_BF_MARIABACKUP is used.;
|
||||
--source include/search_pattern_in_file.inc
|
||||
--echo # Should return FOUND 1 as server did desync and pause at BLOCK_COMMIT
|
||||
let SEARCH_PATTERN = Server desynched from group during BACKUP STAGE BLOCK_COMMIT.;
|
||||
--source include/search_pattern_in_file.inc
|
||||
|
||||
SET GLOBAL wsrep_mode = "";
|
||||
|
Reference in New Issue
Block a user