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
fe808115
Commit
fe808115
authored
Sep 04, 2006
by
jonas@perch.ndb.mysql.com
Browse files
Options
Browse Files
Download
Plain Diff
Merge perch.ndb.mysql.com:/home/jonas/src/50-work
into perch.ndb.mysql.com:/home/jonas/src/mysql-5.0-ndb
parents
1ff0ef83
7ff631e8
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
71 additions
and
38 deletions
+71
-38
ndb/src/kernel/blocks/dblqh/DblqhMain.cpp
ndb/src/kernel/blocks/dblqh/DblqhMain.cpp
+48
-30
ndb/src/ndbapi/NdbScanOperation.cpp
ndb/src/ndbapi/NdbScanOperation.cpp
+9
-4
sql/log.cc
sql/log.cc
+7
-2
sql/sql_class.h
sql/sql_class.h
+1
-0
sql/sql_repl.cc
sql/sql_repl.cc
+6
-2
No files found.
ndb/src/kernel/blocks/dblqh/DblqhMain.cpp
View file @
fe808115
...
...
@@ -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,
...
...
ndb/src/ndbapi/NdbScanOperation.cpp
View file @
fe808115
...
...
@@ -475,6 +475,8 @@ int NdbScanOperation::nextResultImpl(bool fetchAllowed, bool forceSend)
idx
=
m_current_api_receiver
;
last
=
m_api_receivers_count
;
Uint32
timeout
=
tp
->
m_waitfor_timeout
;
do
{
if
(
theError
.
code
){
...
...
@@ -502,7 +504,7 @@ int NdbScanOperation::nextResultImpl(bool fetchAllowed, bool forceSend)
*/
theNdb
->
theImpl
->
theWaiter
.
m_node
=
nodeId
;
theNdb
->
theImpl
->
theWaiter
.
m_state
=
WAIT_SCAN
;
int
return_code
=
theNdb
->
receiveResponse
(
WAITFOR_SCAN_TIMEOUT
);
int
return_code
=
theNdb
->
receiveResponse
(
3
*
timeout
);
if
(
return_code
==
0
&&
seq
==
tp
->
getNodeSequence
(
nodeId
))
{
continue
;
}
else
{
...
...
@@ -1365,6 +1367,7 @@ NdbIndexScanOperation::next_result_ordered(bool fetchAllowed,
return
-
1
;
Uint32
seq
=
theNdbCon
->
theNodeSequence
;
Uint32
nodeId
=
theNdbCon
->
theDBnode
;
Uint32
timeout
=
tp
->
m_waitfor_timeout
;
if
(
seq
==
tp
->
getNodeSequence
(
nodeId
)
&&
!
send_next_scan_ordered
(
s_idx
,
forceSend
)){
Uint32
tmp
=
m_sent_receivers_count
;
...
...
@@ -1372,7 +1375,7 @@ NdbIndexScanOperation::next_result_ordered(bool fetchAllowed,
while
(
m_sent_receivers_count
>
0
&&
!
theError
.
code
){
theNdb
->
theImpl
->
theWaiter
.
m_node
=
nodeId
;
theNdb
->
theImpl
->
theWaiter
.
m_state
=
WAIT_SCAN
;
int
return_code
=
theNdb
->
receiveResponse
(
WAITFOR_SCAN_TIMEOUT
);
int
return_code
=
theNdb
->
receiveResponse
(
3
*
timeout
);
if
(
return_code
==
0
&&
seq
==
tp
->
getNodeSequence
(
nodeId
))
{
continue
;
}
...
...
@@ -1513,6 +1516,8 @@ NdbScanOperation::close_impl(TransporterFacade* tp, bool forceSend){
return
-
1
;
}
Uint32
timeout
=
tp
->
m_waitfor_timeout
;
/**
* Wait for outstanding
*/
...
...
@@ -1520,7 +1525,7 @@ NdbScanOperation::close_impl(TransporterFacade* tp, bool forceSend){
{
theNdb
->
theImpl
->
theWaiter
.
m_node
=
nodeId
;
theNdb
->
theImpl
->
theWaiter
.
m_state
=
WAIT_SCAN
;
int
return_code
=
theNdb
->
receiveResponse
(
WAITFOR_SCAN_TIMEOUT
);
int
return_code
=
theNdb
->
receiveResponse
(
3
*
timeout
);
switch
(
return_code
){
case
0
:
break
;
...
...
@@ -1590,7 +1595,7 @@ NdbScanOperation::close_impl(TransporterFacade* tp, bool forceSend){
{
theNdb
->
theImpl
->
theWaiter
.
m_node
=
nodeId
;
theNdb
->
theImpl
->
theWaiter
.
m_state
=
WAIT_SCAN
;
int
return_code
=
theNdb
->
receiveResponse
(
WAITFOR_SCAN_TIMEOUT
);
int
return_code
=
theNdb
->
receiveResponse
(
3
*
timeout
);
switch
(
return_code
){
case
0
:
break
;
...
...
sql/log.cc
View file @
fe808115
...
...
@@ -723,13 +723,18 @@ shutdown the MySQL server and restart it.", name, errno);
int
MYSQL_LOG
::
get_current_log
(
LOG_INFO
*
linfo
)
{
pthread_mutex_lock
(
&
LOCK_log
);
int
ret
=
raw_get_current_log
(
linfo
);
pthread_mutex_unlock
(
&
LOCK_log
);
return
ret
;
}
int
MYSQL_LOG
::
raw_get_current_log
(
LOG_INFO
*
linfo
)
{
strmake
(
linfo
->
log_file_name
,
log_file_name
,
sizeof
(
linfo
->
log_file_name
)
-
1
);
linfo
->
pos
=
my_b_tell
(
&
log_file
);
pthread_mutex_unlock
(
&
LOCK_log
);
return
0
;
}
/*
Move all data up in a file in an filename index file
...
...
sql/sql_class.h
View file @
fe808115
...
...
@@ -342,6 +342,7 @@ public:
bool
need_mutex
);
int
find_next_log
(
LOG_INFO
*
linfo
,
bool
need_mutex
);
int
get_current_log
(
LOG_INFO
*
linfo
);
int
raw_get_current_log
(
LOG_INFO
*
linfo
);
uint
next_file_id
();
inline
bool
is_open
()
{
return
log_type
!=
LOG_CLOSED
;
}
inline
char
*
get_index_fname
()
{
return
index_file_name
;}
...
...
sql/sql_repl.cc
View file @
fe808115
...
...
@@ -1494,10 +1494,14 @@ bool show_binlogs(THD* thd)
if
(
protocol
->
send_fields
(
&
field_list
,
Protocol
::
SEND_NUM_ROWS
|
Protocol
::
SEND_EOF
))
DBUG_RETURN
(
TRUE
);
pthread_mutex_lock
(
mysql_bin_log
.
get_log_lock
());
mysql_bin_log
.
lock_index
();
index_file
=
mysql_bin_log
.
get_index_file
();
mysql_bin_log
.
get_current_log
(
&
cur
);
mysql_bin_log
.
raw_get_current_log
(
&
cur
);
// dont take mutex
pthread_mutex_unlock
(
mysql_bin_log
.
get_log_lock
());
// lockdep, OK
cur_dir_len
=
dirname_length
(
cur
.
log_file_name
);
reinit_io_cache
(
index_file
,
READ_CACHE
,
(
my_off_t
)
0
,
0
,
0
);
...
...
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