mirror of
https://github.com/MariaDB/server.git
synced 2025-10-28 17:15:19 +03:00
Another batch of changes that should make the SST process
more reliable in all scenarios:
1) Added hostname or CN verification when stunnel is used
with certificate chain verification (verifyChain = yes);
2) Added check for the absence of the stunnel utility for
mtr tests;
3) Deletion of working files before and after SST is done
more accurately;
4) rsync on joiner can be run even if the path to its
configuration file contains spaces;
5) More accurate directory creation (for data files and
for logs);
6) IST with mysqldump no longer turns off statement logging;
7) Reset password for mysqldump when password is empty but
username is specified;
8) More reliable quoting when generating statements in
wsrep_sst_mysqldump;
9) Added explicit generation of 2048-bit Diffie-Hellman
parameters for sockat < 1.7.3, by analogy with xtrabackup;
10) Compression parameters for qpress are read from all
suitable server groups in configuration file, as well as
from the [sst] and [xtrabackup] groups;
11) Added a test that checks compression using qpress;
12) Checking for optional utilities is modified to work even
if they implemented as built-in shell commands (unlikely
on real systems, but more reliable).
82 lines
4.2 KiB
Perl
82 lines
4.2 KiB
Perl
package My::Suite::Galera;
|
|
use File::Basename;
|
|
use My::Find;
|
|
|
|
@ISA = qw(My::Suite);
|
|
|
|
return "Not run for embedded server" if $::opt_embedded_server;
|
|
|
|
return "WSREP is not compiled in" if not ::have_wsrep();
|
|
|
|
return "No wsrep provider library" unless ::have_wsrep_provider();
|
|
|
|
return ::wsrep_version_message() unless ::check_wsrep_version();
|
|
|
|
push @::global_suppressions,
|
|
(
|
|
qr(WSREP: wsrep_sst_receive_address is set to '127.0.0.1),
|
|
qr(WSREP: Could not open saved state file for reading: .*),
|
|
qr(WSREP: Could not open state file for reading: .*),
|
|
qr(WSREP: Gap in state sequence. Need state transfer.),
|
|
qr(WSREP: Failed to prepare for incremental state transfer:),
|
|
qr(WSREP:.*down context.*),
|
|
qr(WSREP: Failed to send state UUID:),
|
|
qr(WSREP: last inactive check more than .* skipping check),
|
|
qr(WSREP: Releasing seqno [0-9]* before [0-9]* was assigned.),
|
|
qr|WSREP: access file\(.*gvwstate.dat\) failed\(No such file or directory\)|,
|
|
qr(WSREP: Quorum: No node with complete state),
|
|
qr(WSREP: Initial position was provided by configuration or SST, avoiding override),
|
|
qr|WSREP: discarding established \(time wait\) .*|,
|
|
qr(WSREP: There are no nodes in the same segment that will ever be able to become donors, yet there is a suitable donor outside. Will use that one.),
|
|
qr(WSREP: evs::proto.*),
|
|
qr|WSREP: Ignoring possible split-brain \(allowed by configuration\) from view:.*|,
|
|
qr(WSREP: no nodes coming from prim view, prim not possible),
|
|
qr(WSREP: Member .* requested state transfer from .* but it is impossible to select State Transfer donor: Resource temporarily unavailable),
|
|
qr(WSREP: user message in state LEAVING),
|
|
qr(WSREP: .* sending install message failed: Transport endpoint is not connected),
|
|
qr(WSREP: .* sending install message failed: Resource temporarily unavailable),
|
|
qr(WSREP: Maximum writeset size exceeded by .*),
|
|
qr(WSREP: transaction size exceeded.*),
|
|
qr(WSREP: RBR event .*),
|
|
qr(WSREP: Ignoring error for TO isolated action: .*),
|
|
qr(WSREP: transaction size limit .*),
|
|
qr(WSREP: rbr write fail, .*),
|
|
qr(WSREP: .*Backend not supported: foo.*),
|
|
qr(WSREP: .*Failed to initialize backend using .*),
|
|
qr(WSREP: .*Failed to open channel 'my_wsrep_cluster' at .*),
|
|
qr(WSREP: gcs connect failed: Socket type not supported),
|
|
qr(WSREP: failed to open gcomm backend connection: 110: failed to reach primary view: 110 .*),
|
|
qr(WSREP: .*Failed to open backend connection: -110 .*),
|
|
qr(WSREP: .*Failed to open channel 'my_wsrep_cluster' at .*),
|
|
qr(WSREP: gcs connect failed: Connection timed out),
|
|
qr|WSREP: wsrep::connect\(.*\) failed: 7|,
|
|
qr(WSREP: SYNC message from member .* in non-primary configuration. Ignored.),
|
|
qr(WSREP: Could not find peer:),
|
|
qr(WSREP: TO isolation failed for: .*),
|
|
qr|WSREP: gcs_caused\(\) returned .*|,
|
|
qr|WSREP: Protocol violation. JOIN message sender .* is not in state transfer \(SYNCED\). Message ignored.|,
|
|
qr|WSREP: Protocol violation. JOIN message sender .* is not in state transfer \(JOINED\). Message ignored.|,
|
|
qr|WSREP: Unsupported protocol downgrade: incremental data collection disabled. Expect abort.|,
|
|
qr(WSREP: Action message in non-primary configuration from member [0-9]*),
|
|
qr(WSREP: Last Applied Action message in non-primary configuration from member [0-9]*),
|
|
qr(WSREP: discarding established .*),
|
|
qr|WSREP: .*core_handle_uuid_msg.*|,
|
|
qr(WSREP: --wsrep-causal-reads=ON takes precedence over --wsrep-sync-wait=0. WSREP_SYNC_WAIT_BEFORE_READ is on),
|
|
qr|WSREP: JOIN message from member .* in non-primary configuration. Ignored.|,
|
|
qr(WSREP: Failed to remove page file .*),
|
|
qr(WSREP: wsrep_sst_method is set to 'mysqldump' yet mysqld bind_address is set to .*),
|
|
qr|WSREP: Sending JOIN failed: -107 \(Transport endpoint is not connected\). Will retry in new primary component.|,
|
|
qr|WSREP: Trying to continue unpaused monitor|,
|
|
);
|
|
|
|
sub skip_combinations {
|
|
my %skip = ();
|
|
$skip{'include/have_stunnel.inc'} = "Need 'stunnel' utility"
|
|
unless ::which("stunnel");
|
|
$skip{'include/have_qpress.inc'} = "Need 'qpress' utility"
|
|
unless ::which("qpress");
|
|
%skip;
|
|
}
|
|
|
|
bless { };
|