Hi All, Appointment of "quorum-policy" does not become it effectively when we use Pacemaker development version.(Pacemaker-1-0-93b87931206e.tar.gz)
The reason is because the problem adds "votes" of the node that it lost, and it handles it. I offer a patch. Because I call member_loop_fn processing twice, my patch may not be good. ------------------------------------ diff -r 8271cd63cc48 lib/ais/plugin.c --- a/lib/ais/plugin.c Fri Mar 05 12:48:45 2010 +0900 +++ b/lib/ais/plugin.c Fri Mar 05 14:53:57 2010 +0900 @@ -1116,8 +1116,12 @@ struct member_loop_data *data = user_data; ais_debug_2("Dumping node %u", node->id); - data->string = append_member(data->string, node); - plugin_has_votes += node->votes; + if (data != NULL) { + data->string = append_member(data->string, node); + } + if (ais_str_eq(CRM_NODE_MEMBER, node->state)) { + plugin_has_votes += node->votes; + } } char *pcmk_generate_membership_data(void) @@ -1127,6 +1131,13 @@ size = 256; ais_malloc0(data.string, size); + + plugin_has_votes = 0; + g_hash_table_foreach(membership_list, member_loop_fn, NULL); + if(plugin_has_votes > plugin_expected_votes) { + update_expected_votes(plugin_has_votes); + } + snprintf(data.string, size, "<nodes id=\""U64T"\" quorate=\"%s\" expected=\"%u\" actual=\"%u\">", membership_seq, plugin_has_quorum()?"true":"false", @@ -1134,9 +1145,6 @@ plugin_has_votes = 0; g_hash_table_foreach(membership_list, member_loop_fn, &data); - if(plugin_has_votes > plugin_expected_votes) { - update_expected_votes(plugin_has_votes); - } size = strlen(data.string); data.string = realloc(data.string, size + 9) ;/* 9 = </nodes> + nul */ ------------------------------------ Best Regards, Hideo Yamauchi. _______________________________________________ Pacemaker mailing list Pacemaker@oss.clusterlabs.org http://oss.clusterlabs.org/mailman/listinfo/pacemaker