Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
mariadb
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
mariadb
Commits
67a5d98c
Commit
67a5d98c
authored
Aug 28, 2006
by
jonas@perch.ndb.mysql.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ndb - bug#21615
Improve error message when detecting corrupted REDO log
parent
7cb75fc8
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
48 additions
and
30 deletions
+48
-30
ndb/src/kernel/blocks/dblqh/DblqhMain.cpp
ndb/src/kernel/blocks/dblqh/DblqhMain.cpp
+48
-30
No files found.
ndb/src/kernel/blocks/dblqh/DblqhMain.cpp
View file @
67a5d98c
...
...
@@ -14622,6 +14622,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
];
...
...
@@ -14832,8 +14834,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
];
...
...
@@ -14870,19 +14878,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
/*---------------------------------------------------------------------------*/
...
...
@@ -14937,19 +14936,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
/*---------------------------------------------------------------------------*/
...
...
@@ -14957,6 +14946,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()
/*---------------------------------------------------------------------------*/
...
...
@@ -14972,8 +14990,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
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment