Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit a546266

Browse files
committed
state bugfixes
1 parent e2d104e commit a546266

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

state.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@ MtmCheckState(void)
9595
/* ANY -> MTM_IN_MINORITY */
9696
if (nConnected < Mtm->nAllNodes/2+1)
9797
{
98+
BIT_SET(Mtm->disabledNodeMask, MtmNodeId-1);
9899
MtmSetClusterStatus(MTM_IN_MINORITY);
99100
return;
100101
}
@@ -119,7 +120,7 @@ MtmCheckState(void)
119120
break;
120121

121122
case MTM_RECOVERED:
122-
if (nReceivers == nEnabled-1 && nSenders == nEnabled-1)
123+
if (nReceivers == nEnabled-1 && nSenders == nEnabled-1 && nEnabled == nConnected)
123124
{
124125
MtmSetClusterStatus(MTM_ONLINE);
125126
return;
@@ -250,7 +251,9 @@ void MtmDisableNode(int nodeId)
250251

251252
if (Mtm->nLiveNodes >= Mtm->nAllNodes/2+1) {
252253
/* Make decision about prepared transaction status only in quorum */
254+
MtmLock(LW_EXCLUSIVE);
253255
MtmPollStatusOfPreparedTransactionsForDisabledNode(nodeId);
256+
MtmUnlock();
254257
}
255258
}
256259

0 commit comments

Comments
 (0)