mirror of
https://github.com/MariaDB/server.git
synced 2026-01-06 05:22:24 +03:00
bug#17295 - ndb - error while reading REDO log
fix corruption due to page 0, file 0 gets released
This commit is contained in:
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user