From 1c3f9ce727d7fea6c89b49f1497d935a39374eac Mon Sep 17 00:00:00 2001 From: "mtaylor@qualinost.(none)" <> Date: Tue, 13 Mar 2007 06:06:09 -0700 Subject: [PATCH] BUG#26952: mysql.server needs to be able to not timeout in certain situations For systems running MySQL through heartbeat, it is imperitive that the startup scripts not only return correct return values, but do not return until success or failure has been determined. This is a different behavior than is typically wanted for the startup of a normal machine. This patch adds support for a timeout variable for mysql.server. Read from my.cnf, this variable defaults to 900 (the current default). A value of 0 means not to wait at all for startup confirmation. A negative value means to wait forever. --- support-files/mysql.server.sh | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/support-files/mysql.server.sh b/support-files/mysql.server.sh index 9258fcf10c2..65b56443eea 100644 --- a/support-files/mysql.server.sh +++ b/support-files/mysql.server.sh @@ -46,6 +46,13 @@ basedir= datadir= +# Default value, in seconds, afterwhich the script should timeout waiting +# for server start. +# Value here is overriden by value in my.cnf. +# 0 means don't wait at all +# Negative numbers mean to wait indefinitely +service_startup_timeout=900 + # The following variables are only set for letting mysql.server find things. # Set some defaults @@ -126,6 +133,7 @@ parse_server_arguments() { ;; --user=*) user=`echo "$arg" | sed -e 's/^[^=]*=//'` ;; --pid-file=*) server_pid_file=`echo "$arg" | sed -e 's/^[^=]*=//'` ;; + --service-startup-timeout=*) service_startup_timeout=`echo "$arg" | sed -e 's/^[^=]*=//'` ;; --use-mysqld_safe) use_mysqld_safe=1;; --use-manager) use_mysqld_safe=0;; esac @@ -143,7 +151,7 @@ parse_manager_arguments() { wait_for_pid () { i=0 - while test $i -lt 900 ; do + while test $i -ne $service_startup_timeout ; do sleep 1 case "$1" in 'created')