List:Commits« Previous MessageNext Message »
From:Frazer Clement Date:July 30 2012 11:17am
Subject:bzr push into mysql-5.1-telco-6.3 branch (frazer.clement:3289 to 3290)
View as plain text  
 3290 Frazer Clement	2012-07-30
      Commit for more testing

    modified:
      storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp
 3289 Frazer Clement	2012-07-25
      Commit for autotest

    modified:
      Makefile.am
      storage/ndb/src/kernel/blocks/dblqh/Dblqh.hpp
      storage/ndb/src/kernel/blocks/dblqh/DblqhInit.cpp
      storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp
      storage/ndb/src/mgmsrv/ConfigInfo.cpp
=== modified file 'storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp'
--- a/storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp	2012-07-25 09:52:32 +0000
+++ b/storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp	2012-07-30 11:14:51 +0000
@@ -14930,6 +14930,15 @@ void Dblqh::readSrLastMbyteLab(Signal* s
   }//if
   logFilePtr.p->logFileStatus = LogFileRecord::CLOSING_SR;
   closeFile(signal, logFilePtr, __LINE__);
+
+  /* Head file is initialised by reading per-MB headers rather than per-file
+   * headers.  Therefore, when stepping back through the redo files to get
+   * the previous file's metadata, we must be careful not to read the 
+   * per-file header info over the just-read per-MB headers, invalidating
+   * the head metainfo.
+   */
+  Uint32 nonHeadFileCount = logPartPtr.p->noLogFiles - 1;
+
   if (logPartPtr.p->noLogFiles > cmaxValidLogFilesInPageZero) {
     /* Step back from head to get file:mb metadata from a 
      * previous file's page zero
@@ -14953,11 +14962,11 @@ void Dblqh::readSrLastMbyteLab(Signal* s
        * -------------------------------------------------------------------- */
       fileNo = 1;
       logPartPtr.p->srRemainingFiles = 
-	logPartPtr.p->noLogFiles - (cmaxValidLogFilesInPageZero - 1);
+	nonHeadFileCount - (cmaxValidLogFilesInPageZero - 1);
     } else {
       jam();
       logPartPtr.p->srRemainingFiles = 
-	logPartPtr.p->noLogFiles - cmaxValidLogFilesInPageZero;
+	nonHeadFileCount - cmaxValidLogFilesInPageZero;
     }//if
     /* Check we're making progress */
     ndbrequire(fileNo != logFilePtr.p->fileNo);
@@ -18854,6 +18863,14 @@ void Dblqh::initGciInLogFileRec(Signal*
   LogFileRecordPtr filePtr = logFilePtr;
   Uint32 pos = ZPAGE_HEADER_SIZE + ZFD_HEADER_SIZE;
   ndbrequire(noFdDescriptors <= cmaxValidLogFilesInPageZero);
+
+  /* We start by initialising the previous file's metadata, 
+   * so lets move there now...
+   */
+  filePtr.i = filePtr.p->prevLogFile;
+  ptrCheckGuard(filePtr, clogFileFileSize, logFileRecord);
+    
+           
   for (Uint32 fd = 1; fd <= noFdDescriptors; fd++)
   {
     jam();

No bundle (reason: useless for push emails).
Thread
bzr push into mysql-5.1-telco-6.3 branch (frazer.clement:3289 to 3290) Frazer Clement30 Jul