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
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexedi
MariaDB
Commits
20e5bfe8
Commit
20e5bfe8
authored
Oct 08, 2004
by
joreland@mysql.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
wl 1801
Testcases for NF
parent
46b2eae0
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
87 additions
and
37 deletions
+87
-37
ndb/src/kernel/blocks/ERROR_codes.txt
ndb/src/kernel/blocks/ERROR_codes.txt
+3
-1
ndb/src/kernel/blocks/dblqh/DblqhMain.cpp
ndb/src/kernel/blocks/dblqh/DblqhMain.cpp
+3
-0
ndb/src/kernel/blocks/dbtc/DbtcMain.cpp
ndb/src/kernel/blocks/dbtc/DbtcMain.cpp
+13
-1
ndb/test/include/NDBT_Test.hpp
ndb/test/include/NDBT_Test.hpp
+6
-0
ndb/test/ndbapi/testIndex.cpp
ndb/test/ndbapi/testIndex.cpp
+13
-33
ndb/test/ndbapi/testNodeRestart.cpp
ndb/test/ndbapi/testNodeRestart.cpp
+35
-2
ndb/test/src/NDBT_Test.cpp
ndb/test/src/NDBT_Test.cpp
+14
-0
No files found.
ndb/src/kernel/blocks/ERROR_codes.txt
View file @
20e5bfe8
...
...
@@ -3,7 +3,7 @@ Next NDBCNTR 1000
Next NDBFS 2000
Next DBACC 3001
Next DBTUP 4007
Next DBLQH 504
0
Next DBLQH 504
2
Next DBDICT 6006
Next DBDIH 7174
Next DBTC 8035
...
...
@@ -193,6 +193,8 @@ Delay execution of ABORTREQ signal 2 seconds to generate time-out.
5038: Drop LQHKEYREQ + set 5039
5039: Drop ABORT + set 5003
8048: Make TC not choose own node for simple/dirty read
5041: Crash is receiving simple read from other TC on different node
ERROR CODES FOR TESTING TIME-OUT HANDLING IN DBTC
-------------------------------------------------
...
...
ndb/src/kernel/blocks/dblqh/DblqhMain.cpp
View file @
20e5bfe8
...
...
@@ -3305,6 +3305,9 @@ void Dblqh::execLQHKEYREQ(Signal* signal)
UintR
TreclenAiLqhkey
=
LqhKeyReq
::
getAIInLqhKeyReq
(
Treqinfo
);
regTcPtr
->
apiVersionNo
=
0
;
CRASH_INSERTION2
(
5041
,
regTcPtr
->
simpleRead
&&
refToNode
(
signal
->
senderBlockRef
())
!=
cownNodeid
);
regTcPtr
->
reclenAiLqhkey
=
TreclenAiLqhkey
;
regTcPtr
->
currReclenAi
=
TreclenAiLqhkey
;
UintR
TitcKeyLen
=
LqhKeyReq
::
getKeyLen
(
Treqinfo
);
...
...
ndb/src/kernel/blocks/dbtc/DbtcMain.cpp
View file @
20e5bfe8
...
...
@@ -2963,15 +2963,27 @@ void Dbtc::tckeyreq050Lab(Signal* signal)
/*-------------------------------------------------------------*/
arrGuard
(
tnoOfBackup
,
4
);
UintR
Tindex
;
UintR
TownNode
=
cownNodeid
;
for
(
Tindex
=
1
;
Tindex
<=
tnoOfBackup
;
Tindex
++
)
{
UintR
Tnode
=
regTcPtr
->
tcNodedata
[
Tindex
];
UintR
TownNode
=
cownNodeid
;
jam
();
if
(
Tnode
==
TownNode
)
{
jam
();
regTcPtr
->
tcNodedata
[
0
]
=
Tnode
;
}
//if
}
//for
if
(
ERROR_INSERTED
(
8048
))
{
for
(
Tindex
=
0
;
Tindex
<=
tnoOfBackup
;
Tindex
++
)
{
UintR
Tnode
=
regTcPtr
->
tcNodedata
[
Tindex
];
jam
();
if
(
Tnode
!=
TownNode
)
{
jam
();
regTcPtr
->
tcNodedata
[
0
]
=
Tnode
;
}
//if
}
//for
}
}
//if
jam
();
regTcPtr
->
lastReplicaNo
=
0
;
...
...
ndb/test/include/NDBT_Test.hpp
View file @
20e5bfe8
...
...
@@ -82,6 +82,12 @@ public:
*/
int
getNoOfRunningSteps
()
const
;
int
getNoOfCompletedSteps
()
const
;
/**
* Thread sync
*/
void
sync_down
(
const
char
*
key
);
void
sync_up_and_wait
(
const
char
*
key
,
Uint32
count
=
0
);
private:
friend
class
NDBT_Step
;
friend
class
NDBT_TestSuite
;
...
...
ndb/test/ndbapi/testIndex.cpp
View file @
20e5bfe8
...
...
@@ -380,27 +380,6 @@ runVerifyIndex(NDBT_Context* ctx, NDBT_Step* step){
return
NDBT_OK
;
}
int
sync_down
(
NDBT_Context
*
ctx
){
Uint32
threads
=
ctx
->
getProperty
(
"PauseThreads"
,
(
unsigned
)
0
);
if
(
threads
){
ctx
->
decProperty
(
"PauseThreads"
);
}
return
0
;
}
int
sync_up_and_wait
(
NDBT_Context
*
ctx
){
Uint32
threads
=
ctx
->
getProperty
(
"Threads"
,
(
unsigned
)
0
);
ndbout_c
(
"Setting PauseThreads to %d"
,
threads
);
ctx
->
setProperty
(
"PauseThreads"
,
threads
);
ctx
->
getPropertyWait
(
"PauseThreads"
,
(
unsigned
)
0
);
if
(
threads
){
ndbout_c
(
"wait completed"
);
}
return
0
;
}
int
runTransactions1
(
NDBT_Context
*
ctx
,
NDBT_Step
*
step
){
// Verify that data in index match
...
...
@@ -416,7 +395,7 @@ runTransactions1(NDBT_Context* ctx, NDBT_Step* step){
return
NDBT_FAILED
;
}
sync_down
(
ctx
);
ctx
->
sync_down
(
"PauseThreads"
);
if
(
ctx
->
isTestStopped
())
break
;
...
...
@@ -425,7 +404,7 @@ runTransactions1(NDBT_Context* ctx, NDBT_Step* step){
return
NDBT_FAILED
;
}
sync_down
(
ctx
);
ctx
->
sync_down
(
"PauseThreads"
);
}
return
NDBT_OK
;
}
...
...
@@ -446,7 +425,7 @@ runTransactions2(NDBT_Context* ctx, NDBT_Step* step){
return
NDBT_FAILED
;
}
#endif
sync_down
(
ctx
);
ctx
->
sync_down
(
"PauseThreads"
);
if
(
ctx
->
isTestStopped
())
break
;
#if 1
...
...
@@ -455,7 +434,7 @@ runTransactions2(NDBT_Context* ctx, NDBT_Step* step){
return
NDBT_FAILED
;
}
#endif
sync_down
(
ctx
);
ctx
->
sync_down
(
"PauseThreads"
);
}
return
NDBT_OK
;
}
...
...
@@ -476,7 +455,7 @@ runTransactions3(NDBT_Context* ctx, NDBT_Step* step){
g_err
<<
"Load table failed"
<<
endl
;
return
NDBT_FAILED
;
}
sync_down
(
ctx
);
ctx
->
sync_down
(
"PauseThreads"
);
if
(
ctx
->
isTestStopped
())
break
;
...
...
@@ -485,7 +464,7 @@ runTransactions3(NDBT_Context* ctx, NDBT_Step* step){
return
NDBT_FAILED
;
}
sync_down
(
ctx
);
ctx
->
sync_down
(
"PauseThreads"
);
if
(
ctx
->
isTestStopped
())
break
;
...
...
@@ -494,7 +473,7 @@ runTransactions3(NDBT_Context* ctx, NDBT_Step* step){
return
NDBT_FAILED
;
}
sync_down
(
ctx
);
ctx
->
sync_down
(
"PauseThreads"
);
if
(
ctx
->
isTestStopped
())
break
;
...
...
@@ -503,7 +482,7 @@ runTransactions3(NDBT_Context* ctx, NDBT_Step* step){
return
NDBT_FAILED
;
}
sync_down
(
ctx
);
ctx
->
sync_down
(
"PauseThreads"
);
if
(
ctx
->
isTestStopped
())
break
;
...
...
@@ -512,7 +491,7 @@ runTransactions3(NDBT_Context* ctx, NDBT_Step* step){
return
NDBT_FAILED
;
}
sync_down
(
ctx
);
ctx
->
sync_down
(
"PauseThreads"
);
if
(
ctx
->
isTestStopped
())
break
;
...
...
@@ -521,14 +500,14 @@ runTransactions3(NDBT_Context* ctx, NDBT_Step* step){
return
NDBT_FAILED
;
}
sync_down
(
ctx
);
ctx
->
sync_down
(
"PauseThreads"
);
if
(
ctx
->
isTestStopped
())
break
;
int
count
=
-
1
;
if
(
utilTrans
.
selectCount
(
pNdb
,
64
,
&
count
)
!=
0
||
count
!=
0
)
return
NDBT_FAILED
;
sync_down
(
ctx
);
ctx
->
sync_down
(
"PauseThreads"
);
}
return
NDBT_OK
;
}
...
...
@@ -540,6 +519,7 @@ int runRestarts(NDBT_Context* ctx, NDBT_Step* step){
NdbRestarts
restarts
;
int
i
=
0
;
int
timeout
=
240
;
int
sync_threads
=
ctx
->
getProperty
(
"Threads"
,
(
unsigned
)
0
);
while
(
i
<
loops
&&
result
!=
NDBT_FAILED
&&
!
ctx
->
isTestStopped
()){
if
(
restarts
.
executeRestart
(
"RestartRandomNodeAbort"
,
timeout
)
!=
0
){
...
...
@@ -547,7 +527,7 @@ int runRestarts(NDBT_Context* ctx, NDBT_Step* step){
result
=
NDBT_FAILED
;
break
;
}
sync_up_and_wait
(
ctx
);
ctx
->
sync_up_and_wait
(
"PauseThreads"
,
sync_threads
);
i
++
;
}
ctx
->
stopTest
();
...
...
ndb/test/ndbapi/testNodeRestart.cpp
View file @
20e5bfe8
...
...
@@ -219,6 +219,7 @@ int runScanReadVerify(NDBT_Context* ctx, NDBT_Step* step){
int
runRestarter
(
NDBT_Context
*
ctx
,
NDBT_Step
*
step
){
int
result
=
NDBT_OK
;
int
loops
=
ctx
->
getNumLoops
();
int
sync_threads
=
ctx
->
getProperty
(
"SyncThreads"
,
(
unsigned
)
0
);
NdbRestarter
restarter
;
int
i
=
0
;
int
lastId
=
0
;
...
...
@@ -235,7 +236,7 @@ int runRestarter(NDBT_Context* ctx, NDBT_Step* step){
loops
*=
restarter
.
getNumDbNodes
();
while
(
i
<
loops
&&
result
!=
NDBT_FAILED
&&
!
ctx
->
isTestStopped
()){
int
id
=
lastId
%
restarter
.
getNumDbNodes
();
int
nodeId
=
restarter
.
getDbNodeId
(
id
);
ndbout
<<
"Restart node "
<<
nodeId
<<
endl
;
...
...
@@ -251,7 +252,7 @@ int runRestarter(NDBT_Context* ctx, NDBT_Step* step){
break
;
}
NdbSleep_SecSleep
(
1
);
ctx
->
sync_up_and_wait
(
"PauseThreads"
,
sync_threads
);
lastId
++
;
i
++
;
...
...
@@ -295,6 +296,32 @@ int runRestarts(NDBT_Context* ctx, NDBT_Step* step){
return
result
;
}
int
runDirtyRead
(
NDBT_Context
*
ctx
,
NDBT_Step
*
step
){
int
result
=
NDBT_OK
;
int
loops
=
ctx
->
getNumLoops
();
NdbRestarter
restarter
;
HugoTransactions
hugoTrans
(
*
ctx
->
getTab
());
int
i
=
0
;
while
(
i
<
loops
&&
result
!=
NDBT_FAILED
&&
!
ctx
->
isTestStopped
()){
g_info
<<
i
<<
": "
;
int
id
=
i
%
restarter
.
getNumDbNodes
();
int
nodeId
=
restarter
.
getDbNodeId
(
id
);
ndbout
<<
"Restart node "
<<
nodeId
<<
endl
;
restarter
.
insertErrorInNode
(
nodeId
,
5041
);
restarter
.
insertErrorInAllNodes
(
8048
);
if
(
hugoTrans
.
pkReadRecords
(
GETNDB
(
step
),
1
,
1
,
NdbOperation
::
LM_CommittedRead
)
!=
0
)
{
return
NDBT_FAILED
;
}
i
++
;
}
return
result
;
}
NDBT_TESTSUITE
(
testNodeRestart
);
TESTCASE
(
"NoLoad"
,
"Test that one node at a time can be stopped and then restarted "
\
...
...
@@ -545,6 +572,12 @@ TESTCASE("StopOnError",
FINALIZER
(
runScanReadVerify
);
FINALIZER
(
runClearTable
);
}
TESTCASE
(
"CommittedRead"
,
"Test committed read"
){
INITIALIZER
(
runLoadTable
);
STEP
(
runDirtyRead
);
FINALIZER
(
runClearTable
);
}
NDBT_TESTSUITE_END
(
testNodeRestart
);
int
main
(
int
argc
,
const
char
**
argv
){
...
...
ndb/test/src/NDBT_Test.cpp
View file @
20e5bfe8
...
...
@@ -1150,6 +1150,20 @@ void NDBT_Step::print(){
}
void
NDBT_Context
::
sync_down
(
const
char
*
key
){
Uint32
threads
=
getProperty
(
key
,
(
unsigned
)
0
);
if
(
threads
){
decProperty
(
key
);
}
}
void
NDBT_Context
::
sync_up_and_wait
(
const
char
*
key
,
Uint32
value
){
setProperty
(
key
,
value
);
getPropertyWait
(
key
,
(
unsigned
)
0
);
}
template
class
Vector
<
NDBT_TestCase
*
>;
template
class
Vector
<
NDBT_TestCaseResult
*
>;
template
class
Vector
<
NDBT_Step
*
>;
...
...
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