List:Commits« Previous MessageNext Message »
From:Jonas Oreland Date:September 14 2010 12:35pm
Subject:bzr push into mysql-5.1-telco-7.0 branch (jonas:3755 to 3756)
View as plain text  
 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 Oreland14 Sep