Commit bb8dd31b authored by joreland@mysql.com's avatar joreland@mysql.com

ndb - replication bug fix

Fix gci reply on TC_COMMITREQ
  (prefered way of mysqld)
parent 738b9f9b
......@@ -36,7 +36,7 @@ class TcCommitConf {
friend class NdbTransaction;
public:
STATIC_CONST( SignalLength = 3 );
STATIC_CONST( SignalLength = 4 );
private:
/**
......@@ -49,6 +49,7 @@ private:
Uint32 transId1;
Uint32 transId2;
Uint32 gci;
};
class TcCommitRef {
......
......@@ -4688,8 +4688,9 @@ void Dbtc::sendApiCommit(Signal* signal)
}
commitConf->transId1 = regApiPtr->transid[0];
commitConf->transId2 = regApiPtr->transid[1];
sendSignal(regApiPtr->ndbapiBlockref, GSN_TC_COMMITCONF, signal, 3, JBB);
commitConf->gci = regApiPtr->globalcheckpointid;
sendSignal(regApiPtr->ndbapiBlockref, GSN_TC_COMMITCONF, signal,
TcCommitConf::SignalLength, JBB);
} else if (regApiPtr->returnsignal == RS_NO_RETURN) {
jam();
} else {
......@@ -5382,8 +5383,9 @@ void Dbtc::execTC_COMMITREQ(Signal* signal)
commitConf->apiConnectPtr = apiConnectPtr;
commitConf->transId1 = transId1;
commitConf->transId2 = transId2;
sendSignal(apiBlockRef, GSN_TC_COMMITCONF, signal, 3, JBB);
commitConf->gci = 0;
sendSignal(apiBlockRef, GSN_TC_COMMITCONF, signal,
TcCommitConf::SignalLength, JBB);
regApiPtr->returnsignal = RS_NO_RETURN;
releaseAbortResources(signal);
......
......@@ -1490,6 +1490,7 @@ NdbTransaction::receiveTC_COMMITCONF(const TcCommitConf * commitConf)
if(checkState_TransId(&commitConf->transId1)){
theCommitStatus = Committed;
theCompletionStatus = CompletedSuccess;
theGlobalCheckpointId = commitConf->gci;
return 0;
} else {
#ifdef NDB_NO_DROPPED_SIGNAL
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment