From: Date: July 3 2009 5:41pm Subject: bzr push into mysql-5.1-telco-7.1 branch (frazer:2930 to 2931) List-Archive: http://lists.mysql.com/commits/77924 Message-Id: <200907031541.n63FfeIC018548@localhost.localdomain> MIME-Version: 1.0 Content-Type: text/plain; CHARSET=US-ASCII Content-Transfer-Encoding: 7BIT 2931 Frazer Clement 2009-07-03 WL4675 Fix signal train assembly for ScanTabReq modified: storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp 2930 Frazer Clement 2009-07-03 [merge] Merge 7.0->7.1 modified: storage/ndb/test/include/NDBT_Test.hpp storage/ndb/test/ndbapi/testIndex.cpp storage/ndb/test/src/NDBT_Test.cpp storage/ndb/test/tools/create_index.cpp === modified file 'storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp' --- a/storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp 2009-07-03 11:13:59 +0000 +++ b/storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp 2009-07-03 15:40:10 +0000 @@ -2929,6 +2929,9 @@ Dbtc::handleScanTabReqTrainStart(Signal* if (signal->header.m_noOfSections > 1) return SimulatedBlock::OK_TrainComplete; + if (signal->header.m_noOfSections != 1) + return Error; + ScanTabReq * const scanTabReq = (ScanTabReq *)&signal->theData[0]; Uint32 totalKeyLen= scanTabReq->attrLenKeyLen >> 16; @@ -2941,13 +2944,14 @@ Dbtc::handleScanTabReqTrainStart(Signal* } /* Short SCAN_TABREQs do not include any inline KeyInfo or AttrInfo */ - Uint32 secCount= 1 + (totalKeyLen?1:0); + Uint32 secCount= 2 + (totalKeyLen?1:0); /* Make received short signal look like long signal */ scanTabReq->attrLenKeyLen = 0; /* Fill in Train spec and Train key */ tspec.sectionCount= secCount; + tspec.remaining[ ScanTabReq::ReceiverIdSectionNum ] = 0; // Already got it tspec.remaining[ ScanTabReq::AttrInfoSectionNum ] = totalAttrLen; tspec.sectionToGsnMapping[ ScanTabReq::AttrInfoSectionNum ] = GSN_ATTRINFO; tspec.remaining[ ScanTabReq::KeyInfoSectionNum ]= totalKeyLen; @@ -4425,9 +4429,6 @@ void Dbtc::linkApiToGcp(Ptr r void Dbtc::crash_gcp(Uint32 line) { - UintR Tfirstgcp = cfirstgcp; - UintR TgcpFilesize = cgcpFilesize; - GcpRecord *localGcpRecord = gcpRecord; GcpRecordPtr localGcpPointer; localGcpPointer.i = cfirstgcp; @@ -4575,7 +4576,6 @@ void Dbtc::sendCommitLqh(Signal* signal, // currently packed signal cannot address specific instance const bool send_unpacked = getNodeInfo(Thostptr.i).m_lqh_workers != 0; if (send_unpacked) { - Uint32* data = signal->getDataPtrSend(); memcpy(&signal->theData[0], &Tdata[0], len << 2); Uint32 Tnode = Thostptr.i; Uint32 instanceKey = regTcPtr->lqhInstanceKey;