MDEV-25818: RSYNC SST failed due to busy port
|
|
This commit reduces the likelihood of getting a busy port on
|
quick restarts with rsync SST (problem MDEV-25818) and fixes
|
a number of other flaws in SST scripts, adds new functionality,
|
and also synchronizes the xtrabackup-v2 script with the
|
mariabackup script (the latter applies only to the 10.2 branch):
|
|
1) SST via rsync: rsync and stunnel does not always get the right
|
time to complete by correctly handling SIGTERM. These utilities
|
are now given more time to complete normally (via normal SIGTERM
|
processing) before we move on to using "kill -9";
|
2) SST via rsync: attempts to terminate an rsync or stunnel process
|
(via "kill" utility) are only made if it did not terminated on
|
its own;
|
3) SST via rsync: if a combination of stunnel and rsync is used,
|
then we need to wait for both utilities to finish or stop, not
|
just one of them;
|
4) The config file and pid file for stunnel are now deleted after
|
successful completion of SST on the donor node;
|
5) The configs and pid files from rsync and stunnel should not be
|
deleted unless these utilities succeed (or are sucessfully
|
terminated) on the joiner node;
|
6) The configs and pid files now excluded from transfer via rsync;
|
7) Spaces in paths are now valid for config files as well (when
|
used with SST via rsync or mariabackup / xtrabackup[-v2]);
|
8) SST via mariabackup: added preliminary verification of keys and
|
certificates that are used when establishing a connection using
|
SSL (to avoid long timeouts and improve diagnostics) - by analogy
|
with how it is done for the xtrabackup-v2 (plus check for CA file),
|
while that check is skipped if the user does not have openssl
|
installed (or does not have diff utility);
|
9) Added backup-threads=<n> configuration option which adds
|
"--parallel=<n>" for mariabackup / xtrabackup at backup and
|
move-back stages;
|
10) Added encrypt-threads and encrypt-chunk-size configuration
|
options for xbcrypt management (when xbcrypt is used);
|
11) Small optimization: checking the socat version and adding
|
a file with parameters for 2048-bit Diffie-Hellman (if necessary)
|
is done only if the user has not specified "dhparam=" in the
|
"sockopt" option value;
|
12) SST via rsync now supports "backup-threads" configuration option
|
(in server-related sections or in the "[sst]");
|
13) Determining the number of available processors is now supported
|
for FreeBSD + mariabackup/xtrabackup: before that we might have
|
problems with "--compact" (rebuild indexes) or qpress on FreeBSD;
|
14) The check_pid() function should not raise an error state in
|
the rare cases when the pid file was created, but it is empty,
|
or if it is deleted right during the check, or when zero is read
|
from the pid file;
|
15) Iproved templates that are used to check if a requested socket
|
is "listening" when using the ss utility;
|
16) Shortened some other templates for socket state utilities;
|
17) Temporary files created by mariabackup / xtrabackup are moved
|
to a separate subdirectory inside tmpdir (so they don't get
|
mixed with other temporary files, which can make debugging
|
more difficult);
|
18) 10.2 only: the script for SST via xtrabackup-v2 has been brought
|
in full compliance with all the bugfixes made for mariabackup (as
|
it previously contained many flaws compared to the updated script
|
for mariabackup).
|