1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
--- 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;
}
|