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