Gitweb:
http://git.fedorahosted.org/git/cluster.git?p=cluster.git;a=commitdiff;h=...
Commit: 65a0eef71377d2de4ad94e8f20065c4467a441e9
Parent: b1695c02cb48f34f1d937585429ef4fdbbb570c7
Author: Fabio M. Di Nitto <fdinitto(a)redhat.com>
AuthorDate: Fri Mar 30 09:58:36 2012 +0200
Committer: Fabio M. Di Nitto <fdinitto(a)redhat.com>
CommitterDate: Fri Mar 30 09:58:36 2012 +0200
cman init: fix start sequence error handling
Any daemon that fails to start would leave no traces.
the problem with cman init is that we need to handle multiple daemons
and tools. If one in the chain fails, we never reverted to the original
state of the system. This can indeed cause other issues.
Fix the init script to "stop" cman if any error happens during "start.
Resolves: rhbz#806002
Signed-off-by: Fabio M. Di Nitto <fdinitto(a)redhat.com>
---
cman/init.d/cman.in | 7 +++++++
1 files changed, 7 insertions(+), 0 deletions(-)
diff --git a/cman/init.d/cman.in b/cman/init.d/cman.in
index d0c6f70..a39f19f 100644
--- a/cman/init.d/cman.in
+++ b/cman/init.d/cman.in
@@ -19,6 +19,9 @@
# set secure PATH
PATH="/bin:/usr/bin:/sbin:/usr/sbin:@SBINDIR@"
+# save invokation for rollback ops
+thisinvokation="$0"
+
chkconfig2()
{
case "$1" in
@@ -199,6 +202,9 @@ nok() {
echo -e "$errmsg"
failure
echo
+ if [ "$currentaction" = "start" ]; then
+ $thisinvokation stop
+ fi
exit 1
}
@@ -744,6 +750,7 @@ leave_fence_domain()
start()
{
+ currentaction="start"
breakpoint="$1"
sshd_enabled && cd @INITDDIR@ && ./sshd start