Commit 14a3b8c8 authored by unknown's avatar unknown

Merge mysql.com:/home/jonas/src/mysql-4.1

into mysql.com:/home/jonas/src/mysql-5.0


ndb/src/kernel/blocks/dbdict/Dbdict.cpp:
  Auto merged
ndb/src/ndbapi/Ndbif.cpp:
  Auto merged
ndb/test/ndbapi/testIndex.cpp:
  Auto merged
parents cb03d5b9 135c7b5a
...@@ -9884,11 +9884,20 @@ Dbdict::execBUILDINDXREQ(Signal* signal) ...@@ -9884,11 +9884,20 @@ Dbdict::execBUILDINDXREQ(Signal* signal)
requestType == BuildIndxReq::RT_ALTER_INDEX || requestType == BuildIndxReq::RT_ALTER_INDEX ||
requestType == BuildIndxReq::RT_SYSTEMRESTART) { requestType == BuildIndxReq::RT_SYSTEMRESTART) {
jam(); jam();
const bool isLocal = req->getRequestFlag() & RequestFlag::RF_LOCAL;
NdbNodeBitmask receiverNodes = c_aliveNodes;
if (isLocal) {
receiverNodes.clear();
receiverNodes.set(getOwnNodeId());
}
if (signal->getLength() == BuildIndxReq::SignalLength) { if (signal->getLength() == BuildIndxReq::SignalLength) {
jam(); jam();
if (getOwnNodeId() != c_masterNodeId) {
if (!isLocal && getOwnNodeId() != c_masterNodeId) {
jam(); jam();
releaseSections(signal); releaseSections(signal);
OpBuildIndex opBad; OpBuildIndex opBad;
opPtr.p = &opBad; opPtr.p = &opBad;
...@@ -9901,9 +9910,9 @@ Dbdict::execBUILDINDXREQ(Signal* signal) ...@@ -9901,9 +9910,9 @@ Dbdict::execBUILDINDXREQ(Signal* signal)
} }
// forward initial request plus operation key to all // forward initial request plus operation key to all
req->setOpKey(++c_opRecordSequence); req->setOpKey(++c_opRecordSequence);
NodeReceiverGroup rg(DBDICT, c_aliveNodes); NodeReceiverGroup rg(DBDICT, receiverNodes);
sendSignal(rg, GSN_BUILDINDXREQ, sendSignal(rg, GSN_BUILDINDXREQ,
signal, BuildIndxReq::SignalLength + 1, JBB); signal, BuildIndxReq::SignalLength + 1, JBB);
return; return;
} }
// seize operation record // seize operation record
...@@ -9926,7 +9935,7 @@ Dbdict::execBUILDINDXREQ(Signal* signal) ...@@ -9926,7 +9935,7 @@ Dbdict::execBUILDINDXREQ(Signal* signal)
} }
c_opBuildIndex.add(opPtr); c_opBuildIndex.add(opPtr);
// master expects to hear from all // master expects to hear from all
opPtr.p->m_signalCounter = c_aliveNodes; opPtr.p->m_signalCounter = receiverNodes;
buildIndex_sendReply(signal, opPtr, false); buildIndex_sendReply(signal, opPtr, false);
return; return;
} }
...@@ -10281,10 +10290,20 @@ Dbdict::buildIndex_sendSlaveReq(Signal* signal, OpBuildIndexPtr opPtr) ...@@ -10281,10 +10290,20 @@ Dbdict::buildIndex_sendSlaveReq(Signal* signal, OpBuildIndexPtr opPtr)
req->setConnectionPtr(opPtr.p->key); req->setConnectionPtr(opPtr.p->key);
req->setRequestType(opPtr.p->m_requestType); req->setRequestType(opPtr.p->m_requestType);
req->addRequestFlag(opPtr.p->m_requestFlag); req->addRequestFlag(opPtr.p->m_requestFlag);
opPtr.p->m_signalCounter = c_aliveNodes; if(opPtr.p->m_requestFlag & RequestFlag::RF_LOCAL)
NodeReceiverGroup rg(DBDICT, c_aliveNodes); {
sendSignal(rg, GSN_BUILDINDXREQ, opPtr.p->m_signalCounter.clearWaitingFor();
signal, BuildIndxReq::SignalLength, JBB); opPtr.p->m_signalCounter.setWaitingFor(getOwnNodeId());
sendSignal(reference(), GSN_BUILDINDXREQ,
signal, BuildIndxReq::SignalLength, JBB);
}
else
{
opPtr.p->m_signalCounter = c_aliveNodes;
NodeReceiverGroup rg(DBDICT, c_aliveNodes);
sendSignal(rg, GSN_BUILDINDXREQ,
signal, BuildIndxReq::SignalLength, JBB);
}
} }
void void
......
...@@ -454,7 +454,7 @@ Ndb::handleReceivedSignal(NdbApiSignal* aSignal, LinearSectionPtr ptr[3]) ...@@ -454,7 +454,7 @@ Ndb::handleReceivedSignal(NdbApiSignal* aSignal, LinearSectionPtr ptr[3])
tFirstDataPtr = int2void(tFirstData); tFirstDataPtr = int2void(tFirstData);
if(tFirstDataPtr != 0){ if(tFirstDataPtr != 0){
tOp = void2rec_op(tFirstDataPtr); tOp = void2rec_op(tFirstDataPtr);
if (tOp->checkMagicNumber() == 0) { if (tOp->checkMagicNumber(false) == 0) {
tCon = tOp->theNdbCon; tCon = tOp->theNdbCon;
if (tCon != NULL) { if (tCon != NULL) {
if ((tCon->theSendStatus == NdbTransaction::sendTC_OP) || if ((tCon->theSendStatus == NdbTransaction::sendTC_OP) ||
...@@ -467,11 +467,11 @@ Ndb::handleReceivedSignal(NdbApiSignal* aSignal, LinearSectionPtr ptr[3]) ...@@ -467,11 +467,11 @@ Ndb::handleReceivedSignal(NdbApiSignal* aSignal, LinearSectionPtr ptr[3])
}//if }//if
}//if }//if
}//if }//if
} else { }
#ifdef VM_TRACE #ifdef VM_TRACE
ndbout_c("Recevied TCKEY_FAILREF wo/ operation"); ndbout_c("Recevied TCKEY_FAILREF wo/ operation");
#endif #endif
} return;
break; break;
} }
case GSN_TCKEYREF: case GSN_TCKEYREF:
......
...@@ -1330,7 +1330,7 @@ TESTCASE("NFNR2_O", ...@@ -1330,7 +1330,7 @@ TESTCASE("NFNR2_O",
INITIALIZER(runLoadTable); INITIALIZER(runLoadTable);
STEP(runRestarts); STEP(runRestarts);
STEP(runTransactions2); STEP(runTransactions2);
STEP(runTransactions2); //STEP(runTransactions2);
FINALIZER(runVerifyIndex); FINALIZER(runVerifyIndex);
FINALIZER(createRandomIndex_Drop); FINALIZER(createRandomIndex_Drop);
FINALIZER(createPkIndex_Drop); FINALIZER(createPkIndex_Drop);
......
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