From: "Fabio M. Di Nitto" <fdini...@redhat.com>

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 <fdini...@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
-- 
1.7.7.6

Reply via email to