blob: d4a5780c014256e13f5c6db026443b04e91f7c8b [file] [log] [blame]
--- a/lib/cluster/legacy.c 2012-11-08 11:55:09.297354491 +0100
+++ b/lib/cluster/legacy.c 2012-11-08 11:54:57.507587115 +0100
@@ -1362,17 +1362,27 @@
/* If we can still talk to our peer process on that node,
* then its also part of the corosync membership
*/
- crm_trace("%s: processes=%.16x", node->uname, node->processes);
+ crm_trace("%s: processes=%.8x", node->uname, node->processes);
return TRUE;
- } else if(is_classic_ais_cluster() && (node->processes & crm_proc_plugin) == 0) {
- crm_trace("%s: processes=%.16x", node->uname, node->processes);
- return FALSE;
+ } else if(is_classic_ais_cluster()) {
+ if(node->processes < crm_proc_none) {
+ crm_debug("%s: unknown process list, assuming active for now", node->uname);
+ return TRUE;
+
+ } else if(is_set(node->processes, crm_proc_none)) {
+ crm_debug("%s: all processes are inactive", node->uname);
+ return FALSE;
+
+ } else if(is_not_set(node->processes, crm_proc_plugin)) {
+ crm_trace("%s: processes=%.8x", node->uname, node->processes);
+ return FALSE;
+ }
}
proc = text2proc(crm_system_name);
- if(proc != crm_proc_none && (node->processes & proc) == 0) {
- crm_trace("%s: proc %.16x not in %.16x", node->uname, proc, node->processes);
+ if(proc > crm_proc_none && (node->processes & proc) == 0) {
+ crm_trace("%s: proc %.8x not in %.8x", node->uname, proc, node->processes);
return FALSE;
}