3756 Jonas Oreland 2010-09-14
ndb - redo - fix bug found by autotest
modified:
storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp
3755 Jonas Oreland 2010-09-13
ndb - redo enhancements - commit to test
modified:
mysql-test/include/default_ndbd.cnf
storage/ndb/include/kernel/signaldata/LqhKey.hpp
storage/ndb/include/kernel/signaldata/TcKeyReq.hpp
storage/ndb/include/mgmapi/mgmapi_config_parameters.h
storage/ndb/include/ndbapi/NdbOperation.hpp
storage/ndb/src/common/debugger/signaldata/LqhKey.cpp
storage/ndb/src/common/debugger/signaldata/TcKeyReq.cpp
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/kernel/blocks/dbtc/Dbtc.hpp
storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp
storage/ndb/src/mgmsrv/ConfigInfo.cpp
storage/ndb/src/ndbapi/NdbOperation.cpp
storage/ndb/src/ndbapi/NdbOperationDefine.cpp
storage/ndb/src/ndbapi/NdbOperationExec.cpp
storage/ndb/src/ndbapi/NdbOperationInt.cpp
storage/ndb/src/ndbapi/NdbScanOperation.cpp
storage/ndb/src/ndbapi/TransporterFacade.cpp
storage/ndb/src/ndbapi/TransporterFacade.hpp
storage/ndb/src/ndbapi/ndberror.c
storage/ndb/test/run-test/conf-dl145a.cnf
storage/ndb/test/run-test/conf-ndb07.cnf
=== modified file 'storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp'
--- a/storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp 2010-09-13 07:34:55 +0000
+++ b/storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp 2010-09-14 12:31:26 +0000
@@ -300,6 +300,12 @@ void Dblqh::execCONTINUEB(Signal* signal
save = logPartPtr;
logPartPtr.p->LogLqhKeyReqSent = ZFALSE;
+
+ if (logPartPtr.p->waitWriteGciLog == LogPartRecord::WWGL_TRUE)
+ {
+ jam();
+ goto startnext;
+ }
if (logPartPtr.p->m_log_complete_queue.isEmpty())
{
jam();
@@ -393,6 +399,7 @@ void Dblqh::execCONTINUEB(Signal* signal
/**
* LogFile/LogPage could have altered due to above
*/
+ startnext:
logPartPtr = save;
logFilePtr.i = logPartPtr.p->currentLogfile;
ptrCheckGuard(logFilePtr, clogFileFileSize, logFileRecord);
@@ -13922,6 +13929,14 @@ void Dblqh::execGCP_SAVEREQ(Signal* sign
jam();
logPartPtr.p->waitWriteGciLog = LogPartRecord::WWGL_TRUE;
tlogActive = true;
+ if (logPartPtr.p->LogLqhKeyReqSent == ZFALSE)
+ {
+ jam();
+ logPartPtr.p->LogLqhKeyReqSent = ZTRUE;
+ signal->theData[0] = ZLOG_LQHKEYREQ;
+ signal->theData[1] = logPartPtr.i;
+ sendSignal(cownref, GSN_CONTINUEB, signal, 2, JBB);
+ }
} else {
jam();
logPartPtr.p->waitWriteGciLog = LogPartRecord::WWGL_FALSE;
@@ -14693,25 +14708,8 @@ void Dblqh::timeSup(Signal* signal)
ptrCheckGuard(logPagePtr, clogPageFileSize, logPageRecord);
if (logPartPtr.p->logPartTimer != logPartPtr.p->logTimer) {
jam();
-/*--------------------------------------------------------------------------*/
-/* THIS LOG PART HAS NOT WRITTEN TO DISK DURING THE LAST SECOND. */
-/*--------------------------------------------------------------------------*/
- switch (logPartPtr.p->logPartState) {
- case LogPartRecord::ACTIVE:
- jam();
-/*---------------------------------------------------------------------------*/
-/* AN OPERATION IS CURRENTLY ACTIVE IN WRITING THIS LOG PART. WE THUS CANNOT */
-/* WRITE ANYTHING TO DISK AT THIS MOMENT. WE WILL SEND A SIGNAL DELAYED FOR */
-/* 10 MS AND THEN TRY AGAIN. POSSIBLY THE LOG PART WILL HAVE BEEN WRITTEN */
-/* UNTIL THEN OR ELSE IT SHOULD BE FREE TO WRITE AGAIN. */
-/*---------------------------------------------------------------------------*/
- signal->theData[0] = ZTIME_SUPERVISION;
- signal->theData[1] = logPartPtr.i;
- sendSignalWithDelay(cownref, GSN_CONTINUEB, signal, 10, 2);
- return;
- break;
- case LogPartRecord::IDLE:
- jam();
+ if (true) // less merge conflicts
+ {
/*---------------------------------------------------------------------------*/
/* IDLE AND NOT WRITTEN TO DISK IN A SECOND. ALSO WHEN WE HAVE A TAIL PROBLEM*/
/* WE HAVE TO WRITE TO DISK AT TIMES. WE WILL FIRST CHECK WHETHER ANYTHING */
@@ -14773,12 +14771,9 @@ void Dblqh::timeSup(Signal* signal)
}//if
}//if
}//if
- break;
- default:
- ndbrequire(false);
- break;
- }//switch
- }//if
+ }
+ }
+
logPartPtr.p->logTimer++;
return;
}//Dblqh::timeSup()
@@ -21675,7 +21670,7 @@ Dblqh::execDUMP_STATE_ORD(Signal* signal
Ptr<LogPartRecord> lp;
lp.i = i;
ptrCheckGuard(lp, clogPartFileSize, logPartRecord);
- ndbout_c("LP %d blockInstance: %d partNo: %d state: %d WW_Gci: %d gcprec: %d flq: %u %u currfile: %d tailFileNo: %d logTailMbyte: %d",
+ ndbout_c("LP %d blockInstance: %d partNo: %d state: %d WW_Gci: %d gcprec: %d flq: %u %u currfile: %d tailFileNo: %d logTailMbyte: %d cnoOfLogPages: %u problems: 0x%x",
i,
instance(),
lp.p->logPartNo,
@@ -21686,7 +21681,9 @@ Dblqh::execDUMP_STATE_ORD(Signal* signal
lp.p->m_log_complete_queue.firstElement,
lp.p->currentLogfile,
lp.p->logTailFileNo,
- lp.p->logTailMbyte);
+ lp.p->logTailMbyte,
+ cnoOfLogPages,
+ lp.p->m_log_problems);
if(gcp.i == RNIL && lp.p->gcprec != RNIL)
gcp.i = lp.p->gcprec;
Attachment: [text/bzr-bundle] bzr/jonas@mysql.com-20100914123126-iuf9cc4gt03gp8ao.bundle
| Thread |
|---|
| • bzr push into mysql-5.1-telco-7.0 branch (jonas:3755 to 3756) | Jonas Oreland | 14 Sep |