From: Date: March 12 2008 10:28am Subject: bk commit into 5.1 tree (jonas:1.2533) BUG#35241 List-Archive: http://lists.mysql.com/commits/43812 X-Bug: 35241 Message-Id: <20080312092818.8D5128E1760@perch.localdomain> Below is the list of changes that have just been committed into a local 5.1 repository of jonas. When jonas does a push these changes will be propagated to the main repository and, within 24 hours after the push, to the public repository. For information on how to access the public repository see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html ChangeSet@stripped, 2008-03-12 10:28:14+01:00, jonas@stripped +2 -0 ndb - bug#35241 Out of REDO log due to incorrectly handled stopped node storage/ndb/src/kernel/blocks/dbdih/Dbdih.hpp@stripped, 2008-03-12 10:28:12+01:00, jonas@stripped +2 -1 bug#35241 storage/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp@stripped, 2008-03-12 10:28:12+01:00, jonas@stripped +17 -7 bug#35241 diff -Nrup a/storage/ndb/src/kernel/blocks/dbdih/Dbdih.hpp b/storage/ndb/src/kernel/blocks/dbdih/Dbdih.hpp --- a/storage/ndb/src/kernel/blocks/dbdih/Dbdih.hpp 2007-11-08 10:10:16 +01:00 +++ b/storage/ndb/src/kernel/blocks/dbdih/Dbdih.hpp 2008-03-12 10:28:12 +01:00 @@ -1006,7 +1006,8 @@ private: Uint32 startGci); void findMinGci(ReplicaRecordPtr fmgReplicaPtr, Uint32& keeGci, - Uint32& oldestRestorableGci); + Uint32& oldestRestorableGci, + bool); bool findStartGci(ConstPtr fstReplicaPtr, Uint32 tfstStopGci, Uint32& tfstStartGci, diff -Nrup a/storage/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp b/storage/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp --- a/storage/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp 2008-01-10 12:47:50 +01:00 +++ b/storage/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp 2008-03-12 10:28:12 +01:00 @@ -11809,17 +11809,20 @@ void Dbdih::checkEscalation() /* DESCRIPTION: CHECK FOR MINIMUM GCI RESTORABLE WITH NEW LOCAL */ /* CHECKPOINT. */ /*************************************************************************/ -void Dbdih::checkKeepGci(TabRecordPtr tabPtr, Uint32 fragId, Fragmentstore*, - Uint32 replicaStartIndex) +void Dbdih::checkKeepGci(TabRecordPtr tabPtr, + Uint32 fragId, + Fragmentstore * fragPtrP, + Uint32 replicaStartIndex) { ReplicaRecordPtr ckgReplicaPtr; ckgReplicaPtr.i = replicaStartIndex; + bool stored = (fragPtrP->storedReplicas == replicaStartIndex); while (ckgReplicaPtr.i != RNIL) { jam(); ptrCheckGuard(ckgReplicaPtr, creplicaFileSize, replicaRecord); Uint32 keepGci; Uint32 oldestRestorableGci; - findMinGci(ckgReplicaPtr, keepGci, oldestRestorableGci); + findMinGci(ckgReplicaPtr, keepGci, oldestRestorableGci, stored); if (keepGci < c_lcpState.keepGci) { jam(); /* ------------------------------------------------------------------- */ @@ -12102,7 +12105,8 @@ Uint32 Dbdih::findLogInterval(ConstPtrmaxGciStarted[lcpNo]; ndbassert(fmgReplicaPtr.p->maxGciStarted[lcpNo] createGci[0] == fmgReplicaPtr.p->initialGci) { + if (fmgReplicaPtr.p->createGci[0] == fmgReplicaPtr.p->initialGci) + { jam(); /*------------------------------------------------------------------- * WE CAN STILL RESTORE THIS REPLICA WITHOUT ANY LOCAL CHECKPOINTS BY @@ -12143,7 +12153,7 @@ void Dbdih::findMinGci(ReplicaRecordPtr *-----------------------------------------------------------------*/ keepGci = fmgReplicaPtr.p->createGci[0]; }//if - }//if + } lcpNo = prevLcpNo(lcpNo); } while (lcpNo != nextLcpNo); return;