Gitweb: http://git.fedorahosted.org/git/cluster.git?p=cluster.git;a=commitdiff;h=98c... Commit: 98c9f869ffb041341b835d19da3845b6165af7d2 Parent: 886d6504464e4af32d02da0d64fd09a040b65fe4 Author: Lon Hohberger lhh@redhat.com AuthorDate: Fri Oct 7 12:31:16 2011 -0400 Committer: Lon Hohberger lhh@redhat.com CommitterDate: Tue Oct 25 17:47:44 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@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 dce28db..c02bfda 100644 --- a/rgmanager/src/daemons/rg_state.c +++ b/rgmanager/src/daemons/rg_state.c @@ -2131,8 +2131,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) { + clulog(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
cluster-commits@lists.stg.fedorahosted.org