cluster: STABLE3 - rgmanager: Fix corner case in critical/non-critical handling
Lon Hohberger
lon at fedoraproject.org
Fri Sep 24 22:19:59 UTC 2010
Gitweb: http://git.fedorahosted.org/git/cluster.git?p=cluster.git;a=commitdiff;h=6dc5ed853217fa44014d29f309b2bc90a2fa3f19
Commit: 6dc5ed853217fa44014d29f309b2bc90a2fa3f19
Parent: 1631855bb29f799d71a178dffb72f5debf8cbbee
Author: Lon Hohberger <lhh at redhat.com>
AuthorDate: Fri Sep 24 16:45:29 2010 -0400
Committer: Lon Hohberger <lhh at redhat.com>
CommitterDate: Fri Sep 24 18:17:22 2010 -0400
rgmanager: Fix corner case in critical/non-critical handling
If a subtree had failed and you removed
__independent_subtree from the configuration for that
subtree as part of a reconfiguration operation, the
subtree would fail to stop, causing the service to enter
the failed state.
Resolves: rhbz#605733
Signed-off-by: Lon Hohberger <lhh at redhat.com>
---
rgmanager/src/daemons/restree.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/rgmanager/src/daemons/restree.c b/rgmanager/src/daemons/restree.c
index 55cc146..9652c6e 100644
--- a/rgmanager/src/daemons/restree.c
+++ b/rgmanager/src/daemons/restree.c
@@ -1596,8 +1596,8 @@ _res_op_internal(resource_node_t __attribute__ ((unused)) **tree,
assert(node->rn_resource->r_incarnations >= 0);
if (node->rn_resource->r_incarnations > 0)
--node->rn_resource->r_incarnations;
- } else if (node->rn_state != RES_DISABLED &&
- !(node->rn_flags & RF_QUIESCE)) {
+ } else if (rv != 0 && (node->rn_state != RES_DISABLED &&
+ !(node->rn_flags & RF_QUIESCE))) {
node->rn_state = RES_FAILED;
pthread_mutex_unlock(&node->rn_resource->r_mutex);
return SFL_FAILURE;
More information about the cluster-commits
mailing list