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

Commit b15bacf

Browse files
committed
state bugfixes
1 parent c98402b commit b15bacf

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

contrib/mmts/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)