On Fri, Oct 7, 2011 at 2:50 PM, Andrew Beekhof <and...@beekhof.net> wrote: > On Fri, Oct 7, 2011 at 2:21 PM, Andrew Beekhof <and...@beekhof.net> wrote: >> On Fri, Oct 7, 2011 at 11:39 AM, Andrew Beekhof <and...@beekhof.net> wrote: >>> On Fri, Sep 30, 2011 at 3:44 PM, Junko IKEDA <tsukishima...@gmail.com> >>> wrote: >>>> Hi, >>>> >>>> sorry for the confusion. >>>> >>>> Pacemaker 1.0.10 OK(group resource can failover) >>>> Pacemaker 1.0.11 NG(gruop resource just stop, can not failover) >>>> Pacemaker 1.1 <- the latest hg (gruop resource just stop, can not failover) >>> >>> We've actually moved over 1.1 to git: >>> http://www.clusterlabs.org/wiki/Contributing_Patches >>> >>> I should mark that somehow in the HG tree. >>> >>>> >>>> By the way, your simulation showed dummy01 restart on bl460g1n13 again, >>>> but dummy01 failed on bl460g1n13, so dummy01 should move to bl460g1n14. >>> >>> Hmmm. True. I'll take another look. >> >> Getting this and coloc-clone-stays-active to behave at the same time >> is proving a challenge :-( >> > > I'm not 100% sure I like this patch but could you see how it behaves > in your testing?
Or if it helps: https://github.com/beekhof/pacemaker/commit/3312b9e (The beekhof repo is my private playground for things that may not yet be ready for the ClusterLabs tree) > > > diff --git a/pengine/native.c b/pengine/native.c > index 52f6f0f..8718abb 100644 > --- a/pengine/native.c > +++ b/pengine/native.c > @@ -26,6 +26,7 @@ > #include <utils.h> > > #define DELETE_THEN_REFRESH 1 /* The crmd will remove the resource > from the CIB itself, making this redundant */ > +#define INFINITY_HACK (INFINITY * -100) > > #define VARIANT_NATIVE 1 > #include <lib/pengine/variant.h> > @@ -287,8 +288,12 @@ node_hash_update(GHashTable * list1, GHashTable * > list2, const char *attr, int f > crm_trace("%s: Filtering %d + %d*%d (factor * score)", > node->details->uname, node->weight, factor, score); > > + } else if (node->weight == INFINITY_HACK) { > + crm_trace("%s: Filtering %d + %d*%d (node < 0)", > + node->details->uname, node->weight, factor, score); > + > } else if (only_positive && new_score < 0 && node->weight > 0) { > - node->weight = 1; > + node->weight = INFINITY_HACK; > crm_trace("%s: Filtering %d + %d*%d (score > 0)", > node->details->uname, node->weight, factor, score); > > @@ -300,7 +305,6 @@ node_hash_update(GHashTable * list1, GHashTable * > list2, const char *attr, int f > crm_trace("%s: %d + %d*%d", node->details->uname, > node->weight, factor, score); > node->weight = new_score; > } > - > } > } > > @@ -405,6 +409,17 @@ rsc_merge_weights(resource_t * rsc, const char > *rhs, GHashTable * nodes, const c > > } > > + if(is_set(flags, pe_weights_positive)) { > + node_t *node = NULL; > + GHashTableIter iter; > + g_hash_table_iter_init(&iter, work); > + while (g_hash_table_iter_next(&iter, NULL, (void **)&node)) { > + if (node->weight == INFINITY_HACK) { > + node->weight = 1; > + } > + } > + } > + > if (nodes) { > g_hash_table_destroy(nodes); > } > _______________________________________________ Pacemaker mailing list: Pacemaker@oss.clusterlabs.org http://oss.clusterlabs.org/mailman/listinfo/pacemaker Project Home: http://www.clusterlabs.org Getting started: http://www.clusterlabs.org/doc/Cluster_from_Scratch.pdf Bugs: http://developerbugs.linux-foundation.org/enter_bug.cgi?product=Pacemaker