#At file:///home/jonas/src/71-coord/ based on revid:craig.russell@stripped
4031 jonas oreland 2011-02-16
ndb coord - only access coordTrans if bit is set...or else all --suite=ndb tests fail
modified:
storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp
=== modified file 'storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp'
--- a/storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp 2011-02-03 01:15:12 +0000
+++ b/storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp 2011-02-16 09:30:25 +0000
@@ -10295,11 +10295,6 @@ void Dbtc::execSCAN_TABREQ(Signal* signa
// Set the savepoint based on whether this transaction is coordinated with another
if (buddyPtr != RNIL)
{
- // the buddy pointer refers to the transaction that might be coordinated
- ApiConnectRecordPtr coordTransPtr;
- Uint32 coordIndex = ScanTabReq::getDistributionKeyFlag(ri);
- coordTransPtr.i = (&scanTabReq->distributionKey)[coordIndex];
- ptrCheckGuard(coordTransPtr, capiConnectFilesize, apiConnectRecord);
// is buddy linked to another transaction?
if (buddyApiPtr.p->nextJoinApiConnect != RNIL)
{
@@ -10310,12 +10305,17 @@ void Dbtc::execSCAN_TABREQ(Signal* signa
jam();
goto SCAN_TAB_error;
}
- } else
+ }
+ else
{
// buddy is not already coordinated with another transaction
// are we coordinating with another transaction?
if (coordFlag)
{
+ ApiConnectRecordPtr coordTransPtr;
+ Uint32 coordIndex = ScanTabReq::getDistributionKeyFlag(ri);
+ coordTransPtr.i = (&scanTabReq->distributionKey)[coordIndex];
+ ptrCheckGuard(coordTransPtr, capiConnectFilesize, apiConnectRecord);
// coordinate our buddy with another transaction
if (unlikely(errCode = coordinateTransactions(buddyApiPtr, coordTransPtr)) != 0)
{
Attachment: [text/bzr-bundle] bzr/jonas@mysql.com-20110216093025-7wcu1dnkj2n0q0hw.bundle
| Thread |
|---|
| • bzr commit into mysql-5.1-telco-7.1 branch (jonas:4031) | jonas oreland | 16 Feb |