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 Clement | 30 Jul |