maria:bb-10.9-MDEV-28423-v2

Last commit made on 2022-05-19
Get this branch:
git clone -b bb-10.9-MDEV-28423-v2 https://git.launchpad.net/maria

Branch merges

Branch information

Name:
bb-10.9-MDEV-28423-v2
Repository:
lp:maria

Recent commits

a63c5e7... by Julius Goryavsky <email address hidden>

MDEV-28423 continuation: Galera progress reporting + rolling updates

A new feature to support progress reporting (including progress
reporting in the JSON format) that was added in 10.9 can crash the
rolling update scenario if the old version donor node does not pass
the "total" tag in the MAGIC_FILE to the joiner node. The "grep"
utility that is used to extract this tag in this case will return
an empty string, which will then be substituted into the "if"
statement, resulting in a syntactically invalid construct.

This commit corrects this issue.

Also, when using the previous fixes (from MDEV-28423 and from
MDEV-28593), authentication errors are possible in case of mixing
versions at the opposite sides - if the donor is newer than joiner,
due to incorrect reading of the new MAGIC_FILE format by older node
versions (from the joiners side). This problem is also fixed here,
taking advantage of the fact that older versions are still able
to read GUID coordinates even if multiple strings are passed to
them at the end.

In addition, the new progress reporting exchanges the length of
the transmitted data between the donor and the joiner before the
start of the transfer, but does not use this information on the
joiner side, which can lead to incorrect calculation of progress
by the joiner (not synchronous with calculations from the donor
side) if from the joiner side reporting works in compatibility
mode with older versions. This commit moves the construction
of the command line for progress reporting to a point where
we already know the size and can use that knowledge.

Also, to facilitate SST script support in the future, the
script code now has been made unified between all versions
from 10.3 to 10.9.

7279343... by Julius Goryavsky <email address hidden>

MDEV-28583 continuation: rc handling in Galera SST scripts

Careful protection against unexpected termination inside signal
handlers (even if for some complex reason the "rm" utility will
return a non-zero error code due to failures) and, conversely,
removing unnecessary protection outside signal handlers, as this
can mask errors in script or in server operation.

30dfd36... by Julius Goryavsky <email address hidden>

MDEV-28583: Galera: binlogs disappear after rsync IST

This commit sends a flag indicating the presence of the "--bypass"
option from the donor node to the joiner nodes during rsync IST,
because without such a flag it is impossible to distinguish IST
from the SST on the joiner nodes (in IST/SST scripts, because the
"--bypass" option is still not passed to scripts from server code).
Specifically, this fixes an issue with binary logs disappearing
after IST (via rsync). There are also changes to diagnostic messages
here that will make it easier to diagnose script-related problems
in the future when debugging and when checking the logs. This commit
also adds more robust signal handlers - to handle exceptions during
script execution. These handlers won't mask some crashes and it
also unifies exit codes between different scripts. These changes
have already been helpful to debugging "bypass" flag handling.

b19ea85... by Julius Goryavsky <email address hidden>

MDEV-28423: Galera IST is failing on Joiner node

This commit fixes an issue with IST handling in
version 10.9 which is a regression after MDEV-26971
and related to trying to get a non-existent "total"
tag on the IST branch (this tag is only defined in
SST mode).

441c26d... by midenok

MDEV-27328 MSAN failure fix

5dba54b... by Marko Mäkelä

Correct misplaced parentheses in an assertion

f1ac830... by Marko Mäkelä

MDEV-20119 fixup: GCC 12 -Wmaybe-uninitialized, -Wunused-but-set-variable

ee2613c... by Oleksandr "Sanja" Byelkin

Versions fix

3537469... by Sergey Petrunia

Optimizer trace: Make ref_optimizer_key_uses[*] show the index name

b9adaeb... by Alexander Barkov

MDEV-28481 SIGSEGV in Lex_charset_collation_st::find_bin_collation