Commit a2b6166e authored by unknown's avatar unknown
Browse files

Fix for BUG #4096

Introduced refresh of watch dog at various places and
removed init of memory in allocRecord
Also changed default watch to 6 seconds

parent cdca651f
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -494,7 +494,7 @@ const ConfigInfo::ParamInfo ConfigInfo::m_ParamInfo[] = {
    ConfigInfo::USED,
    true,
    ConfigInfo::INT,
    4000,
    6000,
    70,
    MAX_INT_RNIL },

+7 −0
Original line number Diff line number Diff line
@@ -757,6 +757,7 @@ void Dbacc::initialiseDirRec(Signal* signal)
  DirectoryarrayPtr idrDirptr;
  ndbrequire(cdirarraysize > 0);
  for (idrDirptr.i = 0; idrDirptr.i < cdirarraysize; idrDirptr.i++) {
    refresh_watch_dog();
    ptrAss(idrDirptr, directoryarray);
    for (Uint32 i = 0; i <= 255; i++) {
      idrDirptr.p->pagep[i] = RNIL;
@@ -776,6 +777,7 @@ void Dbacc::initialiseDirRangeRec(Signal* signal)
  ndbrequire(cdirrangesize > 0);
  for (idrDirRangePtr.i = 0; idrDirRangePtr.i < cdirrangesize; idrDirRangePtr.i++) {
    refresh_watch_dog();
    ptrAss(idrDirRangePtr, dirRange);
    idrDirRangePtr.p->dirArray[0] = idrDirRangePtr.i + 1;
    for (Uint32 i = 1; i < 256; i++) {
@@ -798,6 +800,7 @@ void Dbacc::initialiseFragRec(Signal* signal)
  ndbrequire(cfragmentsize > 0);
  for (regFragPtr.i = 0; regFragPtr.i < cfragmentsize; regFragPtr.i++) {
    jam();
    refresh_watch_dog();
    ptrAss(regFragPtr, fragmentrec);
    initFragGeneral(regFragPtr);
    regFragPtr.p->nextfreefrag = regFragPtr.i + 1;
@@ -876,6 +879,7 @@ void Dbacc::initialiseOperationRec(Signal* signal)
{
  ndbrequire(coprecsize > 0);
  for (operationRecPtr.i = 0; operationRecPtr.i < coprecsize; operationRecPtr.i++) {
    refresh_watch_dog();
    ptrAss(operationRecPtr, operationrec);
    operationRecPtr.p->transactionstate = IDLE;
    operationRecPtr.p->operation = ZUNDEFINED_OP;
@@ -898,6 +902,7 @@ void Dbacc::initialiseOverflowRec(Signal* signal)
  ndbrequire(coverflowrecsize > 0);
  for (iorOverflowRecPtr.i = 0; iorOverflowRecPtr.i < coverflowrecsize; iorOverflowRecPtr.i++) {
    refresh_watch_dog();
    ptrAss(iorOverflowRecPtr, overflowRecord);
    iorOverflowRecPtr.p->nextfreeoverrec = iorOverflowRecPtr.i + 1;
  }//for
@@ -958,6 +963,7 @@ void Dbacc::initialiseRootfragRec(Signal* signal)
{
  ndbrequire(crootfragmentsize > 0);
  for (rootfragrecptr.i = 0; rootfragrecptr.i < crootfragmentsize; rootfragrecptr.i++) {
    refresh_watch_dog();
    ptrAss(rootfragrecptr, rootfragmentrec);
    rootfragrecptr.p->nextroot = rootfragrecptr.i + 1;
    rootfragrecptr.p->fragmentptr[0] = RNIL;
@@ -1013,6 +1019,7 @@ void Dbacc::initialiseTableRec(Signal* signal)
{
  ndbrequire(ctablesize > 0);
  for (tabptr.i = 0; tabptr.i < ctablesize; tabptr.i++) {
    refresh_watch_dog();
    ptrAss(tabptr, tabrec);
    for (Uint32 i = 0; i < NO_OF_FRAG_PER_NODE; i++) {
      tabptr.p->fragholder[i] = RNIL;
+2 −0
Original line number Diff line number Diff line
@@ -1313,6 +1313,7 @@ void Dbdict::initTableRecords()
  TableRecordPtr tablePtr;
  while (1) {
    jam();
    refresh_watch_dog();
    c_tableRecordPool.seize(tablePtr);
    if (tablePtr.i == RNIL) {
      jam();
@@ -1373,6 +1374,7 @@ void Dbdict::initTriggerRecords()
  TriggerRecordPtr triggerPtr;
  while (1) {
    jam();
    refresh_watch_dog();
    c_triggerRecordPool.seize(triggerPtr);
    if (triggerPtr.i == RNIL) {
      jam();
+6 −0
Original line number Diff line number Diff line
@@ -6893,6 +6893,7 @@ void Dbdih::initialiseFragstore()
  cfirstfragstore = RNIL;
  cremainingfrags = 0;
  for (Uint32 i = 0; i < noOfChunks; i++) {
    refresh_watch_dog();
    ptrCheckGuard(fragPtr, cfragstoreFileSize, fragmentstore);
    fragPtr.p->nextFragmentChunk = cfirstfragstore;
    cfirstfragstore = fragPtr.i;
@@ -11100,6 +11101,7 @@ void Dbdih::initialiseRecordsLab(Signal* signal,
    jam();
    /******** INTIALIZING API CONNECT RECORDS ********/
    for (apiConnectptr.i = 0; apiConnectptr.i < capiConnectFileSize; apiConnectptr.i++) {
      refresh_watch_dog();
      ptrAss(apiConnectptr, apiConnectRecord);
      apiConnectptr.p->nextApi = RNIL;
    }//for
@@ -11111,6 +11113,7 @@ void Dbdih::initialiseRecordsLab(Signal* signal,
    jam();
    /****** CONNECT ******/
    for (connectPtr.i = 0; connectPtr.i < cconnectFileSize; connectPtr.i++) {
      refresh_watch_dog();
      ptrAss(connectPtr, connectRecord);
      connectPtr.p->userpointer = RNIL;
      connectPtr.p->userblockref = ZNIL;
@@ -11175,6 +11178,7 @@ void Dbdih::initialiseRecordsLab(Signal* signal,
      jam();
      /******* PAGE RECORD ******/
      for (pagePtr.i = 0; pagePtr.i < cpageFileSize; pagePtr.i++) {
        refresh_watch_dog();
	ptrAss(pagePtr, pageRecord);
	pagePtr.p->nextfreepage = pagePtr.i + 1;
      }//for
@@ -11191,6 +11195,7 @@ void Dbdih::initialiseRecordsLab(Signal* signal,
      /******* REPLICA RECORD ******/
      for (initReplicaPtr.i = 0; initReplicaPtr.i < creplicaFileSize;
	   initReplicaPtr.i++) {
        refresh_watch_dog();
	ptrAss(initReplicaPtr, replicaRecord);
	initReplicaPtr.p->lcpIdStarted = 0;
	initReplicaPtr.p->lcpOngoingFlag = false;
@@ -11210,6 +11215,7 @@ void Dbdih::initialiseRecordsLab(Signal* signal,
      /********* TAB-DESCRIPTOR ********/
      for (loopTabptr.i = 0; loopTabptr.i < ctabFileSize; loopTabptr.i++) {
	ptrAss(loopTabptr, tabRecord);
        refresh_watch_dog();
	initTable(loopTabptr);
      }//for
      break;
+7 −0
Original line number Diff line number Diff line
@@ -15931,6 +15931,7 @@ void Dblqh::initialiseAttrbuf(Signal* signal)
    for (attrinbufptr.i = 0; 
	 attrinbufptr.i < cattrinbufFileSize; 
	 attrinbufptr.i++) {
      refresh_watch_dog();
      ptrAss(attrinbufptr, attrbuf);
      attrinbufptr.p->attrbuf[ZINBUF_NEXT] = attrinbufptr.i + 1;
    }//for
@@ -15953,6 +15954,7 @@ void Dblqh::initialiseDatabuf(Signal* signal)
{
  if (cdatabufFileSize != 0) {
    for (databufptr.i = 0; databufptr.i < cdatabufFileSize; databufptr.i++) {
      refresh_watch_dog();
      ptrAss(databufptr, databuf);
      databufptr.p->nextDatabuf = databufptr.i + 1;
    }//for
@@ -15974,6 +15976,7 @@ void Dblqh::initialiseFragrec(Signal* signal)
{
  if (cfragrecFileSize != 0) {
    for (fragptr.i = 0; fragptr.i < cfragrecFileSize; fragptr.i++) {
      refresh_watch_dog();
      ptrAss(fragptr, fragrecord);
      fragptr.p->fragStatus = Fragrecord::FREE;
      fragptr.p->fragActiveStatus = ZFALSE;
@@ -16106,6 +16109,7 @@ void Dblqh::initialiseLogPage(Signal* signal)
{
  if (clogPageFileSize != 0) {
    for (logPagePtr.i = 0; logPagePtr.i < clogPageFileSize; logPagePtr.i++) {
      refresh_watch_dog();
      ptrAss(logPagePtr, logPageRecord);
      logPagePtr.p->logPageWord[ZNEXT_PAGE] = logPagePtr.i + 1;
    }//for
@@ -16283,6 +16287,7 @@ void Dblqh::initialiseScanrec(Signal* signal)
  DLList<ScanRecord> tmp(c_scanRecordPool);
  while (tmp.seize(scanptr)){
    //new (scanptr.p) ScanRecord();
    refresh_watch_dog();
    scanptr.p->scanType = ScanRecord::ST_IDLE;
    scanptr.p->scanState = ScanRecord::SCAN_FREE;
    scanptr.p->scanTcWaiting = ZFALSE;
@@ -16300,6 +16305,7 @@ void Dblqh::initialiseTabrec(Signal* signal)
{
  if (ctabrecFileSize != 0) {
    for (tabptr.i = 0; tabptr.i < ctabrecFileSize; tabptr.i++) {
      refresh_watch_dog();
      ptrAss(tabptr, tablerec);
      tabptr.p->tableStatus = Tablerec::NOT_DEFINED;
      tabptr.p->usageCount = 0;
@@ -16321,6 +16327,7 @@ void Dblqh::initialiseTcrec(Signal* signal)
    for (tcConnectptr.i = 0; 
	 tcConnectptr.i < ctcConnectrecFileSize; 
	 tcConnectptr.i++) {
      refresh_watch_dog();
      ptrAss(tcConnectptr, tcConnectionrec);
      tcConnectptr.p->transactionState = TcConnectionrec::TC_NOT_CONNECTED;
      tcConnectptr.p->tcScanRec = RNIL;
Loading