@@ -84,11 +84,14 @@ MtmCheckState(void)
84
84
{
85
85
// int nVotingNodes = MtmGetNumberOfVotingNodes();
86
86
bool isEnabledState ;
87
+ MtmNodeStatus old_status ;
87
88
int nEnabled = countZeroBits (Mtm -> disabledNodeMask , Mtm -> nAllNodes );
88
89
int nConnected = countZeroBits (SELF_CONNECTIVITY_MASK , Mtm -> nAllNodes );
89
90
int nReceivers = Mtm -> nAllNodes - countZeroBits (Mtm -> pglogicalReceiverMask , Mtm -> nAllNodes );
90
91
int nSenders = Mtm -> nAllNodes - countZeroBits (Mtm -> pglogicalSenderMask , Mtm -> nAllNodes );
91
92
93
+ old_status = Mtm -> status ;
94
+
92
95
MTM_LOG1 ("[STATE] Status = (disabled=%s, unaccessible=%s, clique=%s, receivers=%s, senders=%s, total=%i, major=%d, stopped=%s)" ,
93
96
maskToString (Mtm -> disabledNodeMask , Mtm -> nAllNodes ),
94
97
maskToString (SELF_CONNECTIVITY_MASK , Mtm -> nAllNodes ),
@@ -122,6 +125,9 @@ MtmCheckState(void)
122
125
if (isEnabledState )
123
126
{
124
127
MtmSetClusterStatus (MTM_RECOVERY );
128
+
129
+ if (old_status != Mtm -> status )
130
+ MtmCheckState ();
125
131
return ;
126
132
}
127
133
break ;
@@ -132,6 +138,9 @@ MtmCheckState(void)
132
138
MTM_LOG1 ("[LOCK] set lock on MTM_RECOVERY switch" );
133
139
BIT_SET (Mtm -> originLockNodeMask , MtmNodeId - 1 ); // kk trick, XXXX: log that
134
140
MtmSetClusterStatus (MTM_RECOVERED );
141
+
142
+ if (old_status != Mtm -> status )
143
+ MtmCheckState ();
135
144
return ;
136
145
}
137
146
break ;
@@ -154,6 +163,9 @@ MtmCheckState(void)
154
163
MTM_LOG1 ("[LOCK] release lock on MTM_RECOVERED switch" );
155
164
BIT_CLEAR (Mtm -> originLockNodeMask , MtmNodeId - 1 );
156
165
MtmSetClusterStatus (MTM_ONLINE );
166
+
167
+ if (old_status != Mtm -> status )
168
+ MtmCheckState ();
157
169
return ;
158
170
}
159
171
break ;
0 commit comments