@@ -1291,6 +1291,7 @@ static bool
1291
1291
MtmBuildConnectivityMatrix (nodemask_t * matrix ,bool nowait )
1292
1292
{
1293
1293
int i ,j ,n = Mtm -> nAllNodes ;
1294
+ fprintf (stderr ,"Connectivity matrix:\n" );
1294
1295
for (i = 0 ;i < n ;i ++ ) {
1295
1296
if (i + 1 != MtmNodeId ) {
1296
1297
void * data = RaftableGet (psprintf ("node-mask-%d" ,i + 1 ),NULL ,NULL ,nowait );
@@ -1301,7 +1302,12 @@ MtmBuildConnectivityMatrix(nodemask_t* matrix, bool nowait)
1301
1302
}else {
1302
1303
matrix [i ]= Mtm -> connectivityMask ;
1303
1304
}
1305
+ for (j = 0 ;j < n ;j ++ ) {
1306
+ putc (BIT_CHECK (matrix [i ],j ) ?'X' :'+' ,stderr );
1307
+ }
1308
+ putc ('\n' ,stderr );
1304
1309
}
1310
+ fputs ("-----------------------\n" ,stderr );
1305
1311
/* make matrix symetric: required for Bron–Kerbosch algorithm */
1306
1312
for (i = 0 ;i < n ;i ++ ) {
1307
1313
for (j = 0 ;j < i ;j ++ ) {
@@ -1332,6 +1338,17 @@ bool MtmRefreshClusterStatus(bool nowait)
1332
1338
1333
1339
clique = MtmFindMaxClique (matrix ,Mtm -> nAllNodes ,& clique_size );
1334
1340
if (clique_size >=Mtm -> nAllNodes /2 + 1 ) {/* have quorum */
1341
+ fprintf (stderr ,"Old mask: " );
1342
+ for (i = 0 ;i < Mtm -> nAllNodes ;i ++ ) {
1343
+ putc (BIT_CHECK (Mtm -> disabledNodeMask ,i ) ?'-' :'+' ,stderr );
1344
+ }
1345
+ putc ('\n' ,stderr );
1346
+ fprintf (stderr ,"New mask: " );
1347
+ for (i = 0 ;i < Mtm -> nAllNodes ;i ++ ) {
1348
+ putc (BIT_CHECK (clique ,i ) ?'+' :'-' ,stderr );
1349
+ }
1350
+ putc ('\n' ,stderr );
1351
+
1335
1352
MTM_LOG1 ("Find clique %lx, disabledNodeMask %lx" , (long )clique , (long )Mtm -> disabledNodeMask );
1336
1353
MtmLock (LW_EXCLUSIVE );
1337
1354
mask = ~clique & (((nodemask_t )1 <<Mtm -> nAllNodes )- 1 )& ~Mtm -> disabledNodeMask ;/* new disabled nodes mask */