@@ -1299,6 +1299,7 @@ static bool
1299
1299
MtmBuildConnectivityMatrix (nodemask_t * matrix ,bool nowait )
1300
1300
{
1301
1301
int i ,j ,n = Mtm -> nAllNodes ;
1302
+ fprintf (stderr ,"Connectivity matrix:\n" );
1302
1303
for (i = 0 ;i < n ;i ++ ) {
1303
1304
if (i + 1 != MtmNodeId ) {
1304
1305
void * data = RaftableGet (psprintf ("node-mask-%d" ,i + 1 ),NULL ,NULL ,nowait );
@@ -1309,7 +1310,12 @@ MtmBuildConnectivityMatrix(nodemask_t* matrix, bool nowait)
1309
1310
}else {
1310
1311
matrix [i ]= Mtm -> connectivityMask ;
1311
1312
}
1313
+ for (j = 0 ;j < n ;j ++ ) {
1314
+ putc (BIT_CHECK (matrix [i ],j ) ?'X' :'+' ,stderr );
1315
+ }
1316
+ putc ('\n' ,stderr );
1312
1317
}
1318
+ fputs ("-----------------------\n" ,stderr );
1313
1319
/* make matrix symetric: required for Bron–Kerbosch algorithm */
1314
1320
for (i = 0 ;i < n ;i ++ ) {
1315
1321
for (j = 0 ;j < i ;j ++ ) {
@@ -1340,6 +1346,17 @@ bool MtmRefreshClusterStatus(bool nowait)
1340
1346
1341
1347
clique = MtmFindMaxClique (matrix ,Mtm -> nAllNodes ,& clique_size );
1342
1348
if (clique_size >=Mtm -> nAllNodes /2 + 1 ) {/* have quorum */
1349
+ fprintf (stderr ,"Old mask: " );
1350
+ for (i = 0 ;i < Mtm -> nAllNodes ;i ++ ) {
1351
+ putc (BIT_CHECK (Mtm -> disabledNodeMask ,i ) ?'-' :'+' ,stderr );
1352
+ }
1353
+ putc ('\n' ,stderr );
1354
+ fprintf (stderr ,"New mask: " );
1355
+ for (i = 0 ;i < Mtm -> nAllNodes ;i ++ ) {
1356
+ putc (BIT_CHECK (clique ,i ) ?'+' :'-' ,stderr );
1357
+ }
1358
+ putc ('\n' ,stderr );
1359
+
1343
1360
MTM_LOG1 ("Find clique %lx, disabledNodeMask %lx" , (long )clique , (long )Mtm -> disabledNodeMask );
1344
1361
MtmLock (LW_EXCLUSIVE );
1345
1362
mask = ~clique & (((nodemask_t )1 <<Mtm -> nAllNodes )- 1 )& ~Mtm -> disabledNodeMask ;/* new disabled nodes mask */