@@ -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 */
0 commit comments