@@ -1469,6 +1469,7 @@ static void MtmStartRecovery()
14691469{
14701470 MtmLock (LW_EXCLUSIVE );
14711471 BIT_SET (Mtm -> disabledNodeMask , MtmNodeId - 1 );
1472+ Mtm -> nConfigChanges += 1 ;
14721473 MtmSwitchClusterMode (MTM_RECOVERY );
14731474 Mtm -> recoveredLSN = InvalidXLogRecPtr ;
14741475 MtmUnlock ();
@@ -1724,6 +1725,7 @@ static void MtmDisableNode(int nodeId)
17241725 elog (WARNING , "Disable node %d at xlog position %lx, last status change time %d msec ago" , nodeId , GetXLogInsertRecPtr (),
17251726 (int )USEC_TO_MSEC (now - Mtm -> nodes [nodeId - 1 ].lastStatusChangeTime ));
17261727 BIT_SET (Mtm -> disabledNodeMask , nodeId - 1 );
1728+ Mtm -> nConfigChanges += 1 ;
17271729 Mtm -> nodes [nodeId - 1 ].timeline += 1 ;
17281730 Mtm -> nodes [nodeId - 1 ].lastStatusChangeTime = now ;
17291731 Mtm -> nodes [nodeId - 1 ].lastHeartbeat = 0 ; /* defuse watchdog until first heartbeat is received */
@@ -1744,6 +1746,7 @@ static void MtmEnableNode(int nodeId)
17441746{
17451747 BIT_CLEAR (Mtm -> disabledNodeMask , nodeId - 1 );
17461748 BIT_CLEAR (Mtm -> reconnectMask , nodeId - 1 );
1749+ Mtm -> nConfigChanges += 1 ;
17471750 Mtm -> nodes [nodeId - 1 ].lastStatusChangeTime = MtmGetSystemTime ();
17481751 Mtm -> nodes [nodeId - 1 ].lastHeartbeat = 0 ; /* defuse watchdog until first heartbeat is received */
17491752 if (nodeId != MtmNodeId ) {
@@ -1765,6 +1768,7 @@ void MtmRecoveryCompleted(void)
17651768 Mtm -> recoverySlot = 0 ;
17661769 Mtm -> recoveredLSN = GetXLogInsertRecPtr ();
17671770 BIT_CLEAR (Mtm -> disabledNodeMask , MtmNodeId - 1 );
1771+ Mtm -> nConfigChanges += 1 ;
17681772 Mtm -> reconnectMask |= SELF_CONNECTIVITY_MASK ; /* try to reestablish all connections */
17691773 Mtm -> nodes [MtmNodeId - 1 ].lastStatusChangeTime = MtmGetSystemTime ();
17701774 for (i = 0 ; i < Mtm -> nAllNodes ; i ++ ) {
@@ -1868,7 +1872,6 @@ bool MtmRecoveryCaughtUp(int nodeId, XLogRecPtr slotLSN)
18681872 /* We are lucky: caught-up without locking cluster! */
18691873 }
18701874 MtmEnableNode (nodeId );
1871- Mtm -> nConfigChanges += 1 ;
18721875 caughtUp = true;
18731876 } else if (!BIT_CHECK (Mtm -> nodeLockerMask , nodeId - 1 )
18741877 && slotLSN + MtmMinRecoveryLag > walLSN )
@@ -1953,6 +1956,7 @@ MtmCheckClusterLock()
19531956 Assert (Mtm -> walSenderLockerMask == 0 );
19541957 Assert ((Mtm -> nodeLockerMask & Mtm -> disabledNodeMask ) == Mtm -> nodeLockerMask );
19551958 Mtm -> disabledNodeMask &= ~Mtm -> nodeLockerMask ;
1959+ Mtm -> nConfigChanges += 1 ;
19561960 Mtm -> nLiveNodes += Mtm -> nLockers ;
19571961 Mtm -> nLockers = 0 ;
19581962 Mtm -> nodeLockerMask = 0 ;
@@ -2098,7 +2102,6 @@ void MtmRefreshClusterStatus()
20982102 */
20992103void MtmCheckQuorum (void )
21002104{
2101- Mtm -> nConfigChanges += 1 ;
21022105 if (Mtm -> nLiveNodes < Mtm -> nAllNodes /2 + 1 ) {
21032106 if (Mtm -> status == MTM_ONLINE ) { /* out of quorum */
21042107 elog (WARNING , "Node is in minority: disabled mask %lx" , (long ) Mtm -> disabledNodeMask );
@@ -3655,6 +3658,7 @@ mtm_add_node(PG_FUNCTION_ARGS)
36553658 Mtm -> nodes [nodeId ].oldestSnapshot = 0 ;
36563659
36573660 BIT_SET (Mtm -> disabledNodeMask , nodeId );
3661+ Mtm -> nConfigChanges += 1 ;
36583662 Mtm -> nAllNodes += 1 ;
36593663 MtmUnlock ();
36603664
0 commit comments