cluster: STABLE31 - rgmanager: Fix dependency restart bug
Lon Hohberger
lon at fedoraproject.org
Tue Oct 11 23:00:56 UTC 2011
Gitweb: http://git.fedorahosted.org/git/cluster.git?p=cluster.git;a=commitdiff;h=c2697a0eae26d6542edbaaf72efdeb4cbf6e476f
Commit: c2697a0eae26d6542edbaaf72efdeb4cbf6e476f
Parent: afe8df67ab28a9fed6ba01a4a952354a012d9b25
Author: Lon Hohberger <lhh at redhat.com>
AuthorDate: Fri Oct 7 12:31:16 2011 -0400
Committer: Lon Hohberger <lhh at redhat.com>
CommitterDate: Tue Oct 11 18:59:57 2011 -0400
rgmanager: Fix dependency restart bug
If we:
- had a service with 'depend' set on another
service,
- both services were running on the same host,
- that host died, and
- the service which depended on the other service
also had the 'restart' recovery policy,
rgmanager would enter handle_start_req and return
an immediate error - with no further recovery action
performed.
Resolves: rhbz#743442
Signed-off-by: Lon Hohberger <lhh at redhat.com>
---
rgmanager/src/daemons/rg_state.c | 10 +++++++++-
1 files changed, 9 insertions(+), 1 deletions(-)
diff --git a/rgmanager/src/daemons/rg_state.c b/rgmanager/src/daemons/rg_state.c
index 3db6bd9..0d6a0e5 100644
--- a/rgmanager/src/daemons/rg_state.c
+++ b/rgmanager/src/daemons/rg_state.c
@@ -2075,8 +2075,16 @@ handle_start_req(char *svcName, int req, int *new_owner)
/* Check for dependency. We cannot start unless our
dependency is met */
- if (check_depend_safe(svcName) == 0)
+ if (check_depend_safe(svcName) == 0) {
+ if (req == RG_START_RECOVER) {
+ logt_print(LOG_INFO, "Dependency for %s missing "
+ "during recovery; marking as stopped",
+ svcName);
+
+ _svc_stop_finish(svcName, 0, RG_STATE_STOPPED);
+ }
return RG_EDEPEND;
+ }
/*
* This is a 'root' start request. We need to clear out our failure
More information about the cluster-commits
mailing list