From: Date: September 18 2008 4:39pm Subject: bzr push into mysql-5.1 branch (jonas:2667) Bug#39518 List-Archive: http://lists.mysql.com/commits/54313 X-Bug: 39518 Message-Id: <20080918143950.22E2D23B93@perch.localdomain> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit 2667 Jonas Oreland 2008-09-18 ndb - bug#39518 - report error back on SUB_CREATE_REF modified: storage/ndb/src/kernel/blocks/trix/Trix.cpp === modified file 'storage/ndb/src/kernel/blocks/trix/Trix.cpp' --- a/storage/ndb/src/kernel/blocks/trix/Trix.cpp 2008-02-20 09:04:29 +0000 +++ b/storage/ndb/src/kernel/blocks/trix/Trix.cpp 2008-09-18 14:29:25 +0000 @@ -541,7 +541,11 @@ void Trix::execUTIL_PREPARE_REF(Signal* return; } subRecPtr.p = subRec; - subRec->errorCode = BuildIndxRef::InternalError; + subRec->errorCode = (BuildIndxRef::ErrorCode)utilPrepareRef->errorCode; + + UtilReleaseConf* conf = (UtilReleaseConf*)signal->getDataPtrSend(); + conf->senderData = subRecPtr.i; + execUTIL_RELEASE_CONF(signal); } void Trix::execUTIL_EXECUTE_CONF(Signal* signal) @@ -611,20 +615,27 @@ void Trix::execSUB_CREATE_REF(Signal* si { jamEntry(); DBUG_ENTER("Trix::execSUB_CREATE_REF"); - // THIS SIGNAL IS NEVER SENT FROM SUMA? - /* + SubCreateRef * subCreateRef = (SubCreateRef *)signal->getDataPtr(); SubscriptionRecPtr subRecPtr; SubscriptionRecord* subRec; - subRecPtr.i = subCreateRef->subscriberData; - if ((subRec = c_theSubscriptions.getPtr(subRecPtr.i)) == NULL) { + subRecPtr.i = subCreateRef->senderData; + if ((subRec = c_theSubscriptions.getPtr(subRecPtr.i)) == NULL) + { printf("Trix::execSUB_CREATE_REF: Failed to find subscription data %u\n", subRecPtr.i); return; } subRecPtr.p = subRec; - buildFailed(signal, subRecPtr, BuildIndxRef::InternalError); - */ + subRecPtr.p->errorCode = (BuildIndxRef::ErrorCode)subCreateRef->errorCode; + + UtilReleaseReq * const req = (UtilReleaseReq*)signal->getDataPtrSend(); + req->prepareId = subRecPtr.p->prepareId; + req->senderData = subRecPtr.i; + + sendSignal(DBUTIL_REF, GSN_UTIL_RELEASE_REQ, signal, + UtilReleaseReq::SignalLength, JBB); + DBUG_VOID_RETURN; } @@ -731,6 +742,7 @@ void Trix::setupSubscription(Signal* sig sendSignal(SUMA_REF, GSN_SUB_CREATE_REQ, signal, SubCreateReq::SignalLength, JBB); + DBUG_VOID_RETURN; }