This commit fixes two issues:
1. A Fedora downstream one, since 11.6
(https://jira.mariadb.org/browse/MDEV-19210), MariaDB upstream use
environment files in their systemd service files to load environment
variables and pass the arguments '--wsrep-new-cluster' and
'--wsrep_start_position' when starting the daemon. The Fedora downstream
service file has been missing the variable for '--wsrep_start_position' since
it was added into MariaDB upstream in 10.1.15
(a6816995ee).
And this Fedora downstream commit adds those missing environment
variables and their arguments into the service files. After I tested
it, the recovery of failed nodes works.
2. A MariaDB upstream one, where the temporary 'wsrep' files have
incorrect SELinux policies set ('mysqld-db-t' instead of
'mysqld-run-t') because of their parent directories. This occurs
because their location is tied to the location of 'mysql.sock' in the
CMake files. As RPMs get built to have 'mysql.sock' in
'/var/lib/mysql' as opposed to inside '/run' like Debian or Arch, the
temporary files for the service could not actually be read by the
service during start-up, resulting in failure as no primary node was
ever created. Discussion with the MariaDB upstream
(https://jira.mariadb.org/browse/MDEV-37726) resulted in a patch that
separates the location of the socket file and the temporary
environment files into two CMake flags and allows for more flexible
building of the package. We use this patch temporarily until we
update to a version with it included.
Prefer the systemctl edit mysql.service syntax
and leave the more complex alternatives to the
existing documents referenced.
Also show how to use the multiinstance a bit more.
MariaDB-10.4 onwards included a pam_helper subprocess to help
with the pam authentication module.
If the user is running with Galera there are SST modules that could
be executing.
By dropping KillMode=process this reverts back to control-group to
cover all of these subprocesses. This is what upstream does.
https://jira.mariadb.org/browse/MDEV-25233 suggests moving to
KillMode=mixed, which is probably ok too, but has been tested less.
Don't use conditionals macros verided by the values outside the SPEC. They don't work thay way.
Fix the server Recommends. They won't be parsed correctly, if they have whitespaces in front of them in contidional macros.
Move the upstream systemd config file for tokudb to the correct location.
Tweak the systemd unit files, to be closer to their upstream variants.
Heavy update of the skipped tests list. PPC64le seems problematic lately. Spider tests are disabled in the first testsuite run as a whole testsuite, so no need to explicitly list them.
Extend the testsuite timeout to 15 hours; 12 hours just wasn't enough for PPC64le; allow to retry failed test one time.
Build with Jemalloc again. Require Jemalloc by TokuDB. Set precise version of Jemalloc library to systemd config for TokuDB.