mirror of
https://github.com/MariaDB/server.git
synced 2025-01-24 15:54:37 +01:00
Merge perch.ndb.mysql.com:/home/jonas/src/50-work
into perch.ndb.mysql.com:/home/jonas/src/51-work
This commit is contained in:
commit
802990e139
1 changed files with 48 additions and 30 deletions
|
@ -14706,6 +14706,8 @@ void Dblqh::execSr(Signal* signal)
|
|||
LogFileRecordPtr nextLogFilePtr;
|
||||
LogPageRecordPtr tmpLogPagePtr;
|
||||
Uint32 logWord;
|
||||
Uint32 line;
|
||||
const char * crash_msg = 0;
|
||||
|
||||
jamEntry();
|
||||
logPartPtr.i = signal->theData[0];
|
||||
|
@ -14916,8 +14918,14 @@ void Dblqh::execSr(Signal* signal)
|
|||
/* PLACE THAN IN THE FIRST PAGE OF A NEW FILE IN THE FIRST POSITION AFTER THE*/
|
||||
/* HEADER. */
|
||||
/*---------------------------------------------------------------------------*/
|
||||
ndbrequire(logPagePtr.p->logPageWord[ZCURR_PAGE_INDEX] ==
|
||||
(ZPAGE_HEADER_SIZE + ZPOS_NO_FD));
|
||||
if (unlikely(logPagePtr.p->logPageWord[ZCURR_PAGE_INDEX] !=
|
||||
(ZPAGE_HEADER_SIZE + ZPOS_NO_FD)))
|
||||
{
|
||||
line = __LINE__;
|
||||
logWord = logPagePtr.p->logPageWord[ZCURR_PAGE_INDEX];
|
||||
crash_msg = "ZFD_TYPE at incorrect position!";
|
||||
goto crash;
|
||||
}
|
||||
{
|
||||
Uint32 noFdDescriptors =
|
||||
logPagePtr.p->logPageWord[ZPAGE_HEADER_SIZE + ZPOS_NO_FD];
|
||||
|
@ -14954,19 +14962,10 @@ void Dblqh::execSr(Signal* signal)
|
|||
/*---------------------------------------------------------------------------*/
|
||||
/* SEND A SIGNAL TO THE SIGNAL LOG AND THEN CRASH THE SYSTEM. */
|
||||
/*---------------------------------------------------------------------------*/
|
||||
signal->theData[0] = RNIL;
|
||||
signal->theData[1] = logPartPtr.i;
|
||||
Uint32 tmp = logFilePtr.p->fileName[3];
|
||||
tmp = (tmp >> 8) & 0xff;// To get the Directory, DXX.
|
||||
signal->theData[2] = tmp;
|
||||
signal->theData[3] = logFilePtr.p->fileNo;
|
||||
signal->theData[4] = logFilePtr.p->currentFilepage;
|
||||
signal->theData[5] = logFilePtr.p->currentMbyte;
|
||||
signal->theData[6] = logPagePtr.p->logPageWord[ZCURR_PAGE_INDEX];
|
||||
signal->theData[7] = ~0;
|
||||
signal->theData[8] = __LINE__;
|
||||
sendSignal(cownref, GSN_DEBUG_SIG, signal, 9, JBA);
|
||||
return;
|
||||
line = __LINE__;
|
||||
logWord = ZNEXT_MBYTE_TYPE;
|
||||
crash_msg = "end of log wo/ having found last GCI";
|
||||
goto crash;
|
||||
}//if
|
||||
}//if
|
||||
/*---------------------------------------------------------------------------*/
|
||||
|
@ -15021,19 +15020,9 @@ void Dblqh::execSr(Signal* signal)
|
|||
/*---------------------------------------------------------------------------*/
|
||||
/* SEND A SIGNAL TO THE SIGNAL LOG AND THEN CRASH THE SYSTEM. */
|
||||
/*---------------------------------------------------------------------------*/
|
||||
signal->theData[0] = RNIL;
|
||||
signal->theData[1] = logPartPtr.i;
|
||||
Uint32 tmp = logFilePtr.p->fileName[3];
|
||||
tmp = (tmp >> 8) & 0xff;// To get the Directory, DXX.
|
||||
signal->theData[2] = tmp;
|
||||
signal->theData[3] = logFilePtr.p->fileNo;
|
||||
signal->theData[4] = logFilePtr.p->currentMbyte;
|
||||
signal->theData[5] = logFilePtr.p->currentFilepage;
|
||||
signal->theData[6] = logPagePtr.p->logPageWord[ZCURR_PAGE_INDEX];
|
||||
signal->theData[7] = logWord;
|
||||
signal->theData[8] = __LINE__;
|
||||
sendSignal(cownref, GSN_DEBUG_SIG, signal, 9, JBA);
|
||||
return;
|
||||
line = __LINE__;
|
||||
crash_msg = "Invalid logword";
|
||||
goto crash;
|
||||
break;
|
||||
}//switch
|
||||
/*---------------------------------------------------------------------------*/
|
||||
|
@ -15041,6 +15030,35 @@ void Dblqh::execSr(Signal* signal)
|
|||
// that we reach a new page.
|
||||
/*---------------------------------------------------------------------------*/
|
||||
} while (1);
|
||||
return;
|
||||
|
||||
crash:
|
||||
signal->theData[0] = RNIL;
|
||||
signal->theData[1] = logPartPtr.i;
|
||||
Uint32 tmp = logFilePtr.p->fileName[3];
|
||||
tmp = (tmp >> 8) & 0xff;// To get the Directory, DXX.
|
||||
signal->theData[2] = tmp;
|
||||
signal->theData[3] = logFilePtr.p->fileNo;
|
||||
signal->theData[4] = logFilePtr.p->currentMbyte;
|
||||
signal->theData[5] = logFilePtr.p->currentFilepage;
|
||||
signal->theData[6] = logPagePtr.p->logPageWord[ZCURR_PAGE_INDEX];
|
||||
signal->theData[7] = logWord;
|
||||
signal->theData[8] = line;
|
||||
|
||||
char buf[255];
|
||||
BaseString::snprintf(buf, sizeof(buf),
|
||||
"Error while reading REDO log. from %d\n"
|
||||
"D=%d, F=%d Mb=%d FP=%d W1=%d W2=%d : %s",
|
||||
signal->theData[8],
|
||||
signal->theData[2],
|
||||
signal->theData[3],
|
||||
signal->theData[4],
|
||||
signal->theData[5],
|
||||
signal->theData[6],
|
||||
signal->theData[7],
|
||||
crash_msg ? crash_msg : "");
|
||||
|
||||
progError(__LINE__, NDBD_EXIT_SR_REDOLOG, buf);
|
||||
}//Dblqh::execSr()
|
||||
|
||||
/*---------------------------------------------------------------------------*/
|
||||
|
@ -15056,8 +15074,8 @@ void Dblqh::execDEBUG_SIG(Signal* signal)
|
|||
UintR tdebug;
|
||||
|
||||
jamEntry();
|
||||
logPagePtr.i = signal->theData[0];
|
||||
tdebug = logPagePtr.p->logPageWord[0];
|
||||
//logPagePtr.i = signal->theData[0];
|
||||
//tdebug = logPagePtr.p->logPageWord[0];
|
||||
|
||||
char buf[100];
|
||||
BaseString::snprintf(buf, 100,
|
||||
|
|
Loading…
Add table
Reference in a new issue