Commit bbcb4a56 authored by unknown's avatar unknown
Browse files

bug#17295 - ndb - error while reading REDO log

  fix corruption due to page 0, file 0 gets released


ndb/src/kernel/blocks/dblqh/DblqhMain.cpp:
  Make sure that page 0, file 0 isnt released
parent db4d82ba
Loading
Loading
Loading
Loading
+11 −3
Original line number Diff line number Diff line
@@ -14767,7 +14767,9 @@ void Dblqh::execSr(Signal* signal)
          signal->theData[4] = logFilePtr.p->currentFilepage;
          signal->theData[5] = logFilePtr.p->currentMbyte;
          signal->theData[6] = logPagePtr.p->logPageWord[ZCURR_PAGE_INDEX];
          sendSignal(cownref, GSN_DEBUG_SIG, signal, 7, JBA);
	  signal->theData[7] = ~0;
	  signal->theData[8] = __LINE__;
          sendSignal(cownref, GSN_DEBUG_SIG, signal, 9, JBA);
          return;
        }//if
      }//if
@@ -14833,7 +14835,8 @@ void Dblqh::execSr(Signal* signal)
      signal->theData[5] = logFilePtr.p->currentFilepage;
      signal->theData[6] = logPagePtr.p->logPageWord[ZCURR_PAGE_INDEX];
      signal->theData[7] = logWord;
      sendSignal(cownref, GSN_DEBUG_SIG, signal, 8, JBA);
      signal->theData[8] = __LINE__;
      sendSignal(cownref, GSN_DEBUG_SIG, signal, 9, JBA);
      return;
      break;
    }//switch
@@ -14862,8 +14865,9 @@ void Dblqh::execDEBUG_SIG(Signal* signal)
  char buf[100];
  BaseString::snprintf(buf, 100, 
	   "Error while reading REDO log.\n"
	   "Error while reading REDO log. from %d\n"
	   "D=%d, F=%d Mb=%d FP=%d W1=%d W2=%d",
	   signal->theData[8],
	   signal->theData[2], signal->theData[3], signal->theData[4],
	   signal->theData[5], signal->theData[6], signal->theData[7]);
@@ -15439,6 +15443,10 @@ void Dblqh::readSrFourthZeroLab(Signal* signal)
  // to read a page from file. 
  lfoPtr.p->lfoState = LogFileOperationRecord::WRITE_SR_INVALIDATE_PAGES;
  /**
   * Make sure we dont release zero page
   */
  seizeLogpage(signal);
  invalidateLogAfterLastGCI(signal);
  return;
}//Dblqh::readSrFourthZeroLab()