[MDEV-10538] MariaDB fails to start without galera_recovery in systemd mode Created: 2016-08-11  Updated: 2016-08-25  Resolved: 2016-08-25

Status: Closed
Project: MariaDB Server
Component/s: Scripts & Clients
Affects Version/s: 10.1.16
Fix Version/s: 10.1.17

Type: Bug Priority: Major
Reporter: Hans Kristian Rosbach Assignee: Nirbhay Choubey (Inactive)
Resolution: Fixed Votes: 0
Labels: galera, systemd
Environment:

Scientific Linux 7.2, using systemd



 Description   

We compile our own MariaDB packages, and all galera and wsrep files have been separated into a subpackage along with its dependencies and configuration files.

After upgrading from 10.1.14 to 10.1.16, mariadb server fails to start due to missing the galera_recovery script. From what I can gather in the systemd configuration, it could/should check for the existance of galera_recovery before attempting to run it.

As a workaround I could include the script in the server subpackage, but I am uncertain whether that would actually work since it might just error out due to other missing wsrep/galera files.

The cleanest way I think would be to only run the script if it exists, and otherwise assume galera is not activated. Possibly check for some other file(s) as well and return a warning if galera is present such that it can be activated but the recovery script is missing.



 Comments   
Comment by Hans Kristian Rosbach [ 2016-08-16 ]

We are using the following patch as a temporary workaround. It has the side-effect that it causes _WSREP_START_POSITION to be set even though galera_recovery did not exist and thus was not run. It is a bit ugly, but whether it can actually cause a real problem, I do not know.

--- old/support-files/mariadb.service.in    2016-07-14 03:10:31.000000000 +0200
+++ new/support-files/mariadb.service.in    2016-08-11 10:19:18.421000000 +0200
@@ -63,7 +63,7 @@
 # the script is not expected to return with a non-zero status.
 # It is always safe to unset _WSREP_START_POSITION environment variable.
 ExecStartPre=/bin/sh -c "systemctl unset-environment _WSREP_START_POSITION"
-ExecStartPre=/bin/sh -c "VAR=`/usr/bin/galera_recovery`; [ $? -eq 0 ] && \
+ExecStartPre=/bin/sh -c "[ -e /usr/bin/galera_recovery ] && VAR=`/usr/bin/galera_recovery` || exit 0; [ $? -eq 0 ] && \
  systemctl set-environment _WSREP_START_POSITION=$VAR || exit 1"
 
 # Needed to create system tables etc.

Comment by Nirbhay Choubey (Inactive) [ 2016-08-22 ]

http://lists.askmonty.org/pipermail/commits/2016-August/009682.html

Generated at Thu Feb 08 07:43:00 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.