Sophie

Sophie

distrib > Scientific%20Linux > 5x > x86_64 > media > main-src > by-pkgid > e536fc0c6270ec1d92a0fd41bb1f8360 > files > 103

rgmanager-2.0.52-28.el5_8.2.src.rpm

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