Gitweb:
http://git.fedorahosted.org/git/?p=cluster.git;a=commitdiff;h=24d751325ef...
Commit: 24d751325ef921e73dc28ba64a13d581a2ea442f
Parent: 1c64c5311961697a66ba3ee745e7b1d847409c8c
Author: Marek 'marx' Grac <mgrac(a)redhat.com>
AuthorDate: Fri Apr 8 15:03:41 2011 +0200
Committer: Ryan McCabe <rmccabe(a)redhat.com>
CommitterDate: Thu Mar 13 13:20:22 2014 -0400
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)
Acked-by: Ryan McCabe <rmccabe(a)redhat.com>
---
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"