From 5bff971147ed9e895e0fff3d54e3ada8728bd57c Mon Sep 17 00:00:00 2001 From: Marek 'marx' Grac <mgrac@redhat.com> Date: Fri, 8 Apr 2011 15:03:41 +0200 Subject: [PATCH 1/2] postgres-8: Do not send -TERM signal when killing postgres Sending SIGQUIT will ensure Postgres shutdowns immediately, preventing a service failure in some scenarios. Leads to recovery of transactions when started up again, for example on a new node - which makes sense. Also works nice with live streaming replication setups between two databases. Resolves: rhbz#663827 (part 1/2) --- rgmanager/src/resources/postgres-8.metadata | 4 +++- rgmanager/src/resources/postgres-8.sh | 3 ++- rgmanager/src/resources/utils/ra-skelet.sh | 10 +++++++--- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/rgmanager/src/resources/postgres-8.metadata b/rgmanager/src/resources/postgres-8.metadata index 760e865..67c863e 100644 --- a/rgmanager/src/resources/postgres-8.metadata +++ b/rgmanager/src/resources/postgres-8.metadata @@ -53,10 +53,12 @@ <parameter name="shutdown_wait"> <longdesc lang="en"> - Wait X seconds for correct end of service shutdown + Wait X seconds for correct end of service shutdown. + This option is ignored in current release. </longdesc> <shortdesc lang="en"> Wait X seconds for correct end of service shutdown + This option is ignored in current release. </shortdesc> <content type="number" /> </parameter> diff --git a/rgmanager/src/resources/postgres-8.sh b/rgmanager/src/resources/postgres-8.sh index c7c0e6b..8762d36 100755 --- a/rgmanager/src/resources/postgres-8.sh +++ b/rgmanager/src/resources/postgres-8.sh @@ -178,7 +178,8 @@ stop() { clog_service_stop $CLOG_INIT - stop_generic_sigkill "$PSQL_pid_file" "$OCF_RESKEY_shutdown_wait" "$PSQL_kill_timeout" + ## Send -KILL signal immediately + stop_generic_sigkill "$PSQL_pid_file" 0 "$PSQL_kill_timeout" if [ $? -ne 0 ]; then clog_service_stop $CLOG_FAILED return $OCF_ERR_GENERIC diff --git a/rgmanager/src/resources/utils/ra-skelet.sh b/rgmanager/src/resources/utils/ra-skelet.sh index be7b548..171ecd1 100644 --- a/rgmanager/src/resources/utils/ra-skelet.sh +++ b/rgmanager/src/resources/utils/ra-skelet.sh @@ -102,9 +102,13 @@ stop_generic_sigkill() { declare kill_timeout="$3" declare pid - stop_generic "$pid_file" "$stop_timeout" - if [ $? -eq 0 ]; then - return 0; + ## If stop_timeout is equal to zero then we do not want + ## to give -TERM signal at all. + if [ $stop_timeout -ne 0 ]; then + stop_generic "$pid_file" "$stop_timeout" + if [ $? -eq 0 ]; then + return 0; + fi fi read pid < "$pid_file" -- 1.7.4