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
e08993f0
Commit
e08993f0
authored
Jun 13, 2005
by
tulin@dl145c.mysql.com
Browse files
Options
Browse Files
Download
Plain Diff
Merge tulin@bk-internal.mysql.com:/home/bk/mysql-4.1
into dl145c.mysql.com:/home/ndbdev/tomas/mysql-4.1
parents
36ff6744
57ddf522
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
85 additions
and
18 deletions
+85
-18
BitKeeper/etc/logging_ok
BitKeeper/etc/logging_ok
+1
-0
ndb/src/kernel/blocks/dbtc/DbtcMain.cpp
ndb/src/kernel/blocks/dbtc/DbtcMain.cpp
+10
-6
ndb/test/ndbapi/testTimeout.cpp
ndb/test/ndbapi/testTimeout.cpp
+74
-12
No files found.
BitKeeper/etc/logging_ok
View file @
e08993f0
...
...
@@ -177,6 +177,7 @@ mysqldev@melody.local
mysqldev@mysql.com
mysqldev@o2k.irixworld.net
ndbdev@dl145b.mysql.com
ndbdev@dl145c.mysql.com
ndbdev@eel.hemma.oreland.se
ndbdev@ndbmaster.mysql.com
nick@mysql.com
...
...
ndb/src/kernel/blocks/dbtc/DbtcMain.cpp
View file @
e08993f0
...
...
@@ -722,11 +722,14 @@ Dbtc::set_timeout_value(Uint32 timeOut)
void
Dbtc
::
set_appl_timeout_value
(
Uint32
timeOut
)
{
if
(
timeOut
)
{
timeOut
/=
10
;
if
(
timeOut
<
ctimeOutValue
)
{
jam
();
c_appl_timeout_value
=
ctimeOutValue
;
}
//if
}
c_appl_timeout_value
=
timeOut
;
}
...
...
@@ -6133,7 +6136,8 @@ void Dbtc::timeOutFoundLab(Signal* signal, Uint32 TapiConPtr)
particular state we will use the application timeout parameter rather
than the shorter Deadlock detection timeout.
*/
if
((
ctcTimer
-
getApiConTimer
(
apiConnectptr
.
i
))
<=
c_appl_timeout_value
)
{
if
(
c_appl_timeout_value
==
0
||
(
ctcTimer
-
getApiConTimer
(
apiConnectptr
.
i
))
<=
c_appl_timeout_value
)
{
jam
();
return
;
}
//if
...
...
ndb/test/ndbapi/testTimeout.cpp
View file @
e08993f0
...
...
@@ -22,13 +22,13 @@
#include <NdbConfig.hpp>
#include <signaldata/DumpStateOrd.hpp>
#define TIMEOUT 3000
#define TIMEOUT (Uint32)3000
Uint32
g_org_timeout
=
3000
;
int
setTransactionTimeout
(
NDBT_Context
*
ctx
,
NDBT_Step
*
step
){
NdbRestarter
restarter
;
int
timeout
=
ctx
->
getProperty
(
"TransactionInactiveTimeout"
,
TIMEOUT
);
NdbConfig
conf
(
GETNDB
(
step
)
->
getNodeId
()
+
1
);
unsigned
int
nodeId
=
conf
.
getMasterNodeId
();
...
...
@@ -39,7 +39,7 @@ setTransactionTimeout(NDBT_Context* ctx, NDBT_Step* step){
return
NDBT_FAILED
;
}
int
val
[]
=
{
DumpStateOrd
::
TcSetApplTransactionTimeout
,
TIMEOUT
};
int
val
[]
=
{
DumpStateOrd
::
TcSetApplTransactionTimeout
,
timeout
};
if
(
restarter
.
dumpStateAllNodes
(
val
,
2
)
!=
0
){
return
NDBT_FAILED
;
}
...
...
@@ -94,9 +94,11 @@ int runTimeoutTrans(NDBT_Context* ctx, NDBT_Step* step){
unsigned
int
nodeId
=
conf
.
getMasterNodeId
();
int
stepNo
=
step
->
getStepNo
();
int
minSleep
=
(
int
)(
TIMEOUT
*
1.5
);
int
maxSleep
=
TIMEOUT
*
2
;
ndbout
<<
"TransactionInactiveTimeout="
<<
TIMEOUT
int
timeout
=
ctx
->
getProperty
(
"TransactionInactiveTimeout"
,
TIMEOUT
);
int
minSleep
=
(
int
)(
timeout
*
1.5
);
int
maxSleep
=
timeout
*
2
;
ndbout
<<
"TransactionInactiveTimeout="
<<
timeout
<<
", minSleep="
<<
minSleep
<<
", maxSleep="
<<
maxSleep
<<
endl
;
...
...
@@ -134,8 +136,10 @@ int runTimeoutTrans2(NDBT_Context* ctx, NDBT_Step* step){
int
mul2
=
ctx
->
getProperty
(
"Op2"
,
(
Uint32
)
0
);
int
records
=
ctx
->
getNumRecords
();
int
minSleep
=
(
int
)(
TIMEOUT
*
1.5
);
int
maxSleep
=
TIMEOUT
*
2
;
int
timeout
=
ctx
->
getProperty
(
"TransactionInactiveTimeout"
,
TIMEOUT
);
int
minSleep
=
(
int
)(
timeout
*
1.5
);
int
maxSleep
=
timeout
*
2
;
HugoOperations
hugoOps
(
*
ctx
->
getTab
());
Ndb
*
pNdb
=
GETNDB
(
step
);
...
...
@@ -148,7 +152,7 @@ int runTimeoutTrans2(NDBT_Context* ctx, NDBT_Step* step){
op1
=
(
op1
%
5
);
op2
=
(
op2
%
5
);
ndbout
<<
stepNo
<<
": TransactionInactiveTimeout="
<<
TIMEOUT
ndbout
<<
stepNo
<<
": TransactionInactiveTimeout="
<<
timeout
<<
", minSleep="
<<
minSleep
<<
", maxSleep="
<<
maxSleep
<<
", op1="
<<
op1
...
...
@@ -250,8 +254,10 @@ int runDontTimeoutTrans(NDBT_Context* ctx, NDBT_Step* step){
int
loops
=
ctx
->
getNumLoops
();
int
stepNo
=
step
->
getStepNo
();
int
maxSleep
=
(
int
)(
TIMEOUT
*
0.5
);
ndbout
<<
"TransactionInactiveTimeout="
<<
TIMEOUT
int
timeout
=
ctx
->
getProperty
(
"TransactionInactiveTimeout"
,
TIMEOUT
);
int
maxSleep
=
(
int
)(
timeout
*
0.5
);
ndbout
<<
"TransactionInactiveTimeout="
<<
timeout
<<
", maxSleep="
<<
maxSleep
<<
endl
;
...
...
@@ -281,6 +287,51 @@ int runDontTimeoutTrans(NDBT_Context* ctx, NDBT_Step* step){
return
result
;
}
int
runDeadlockTimeoutTrans
(
NDBT_Context
*
ctx
,
NDBT_Step
*
step
){
int
result
=
NDBT_OK
;
int
loops
=
ctx
->
getNumLoops
();
int
stepNo
=
step
->
getStepNo
();
Uint32
deadlock_timeout
;
NdbConfig
conf
(
GETNDB
(
step
)
->
getNodeId
()
+
1
);
unsigned
int
nodeId
=
conf
.
getMasterNodeId
();
if
(
!
conf
.
getProperty
(
nodeId
,
NODE_TYPE_DB
,
CFG_DB_TRANSACTION_DEADLOCK_TIMEOUT
,
&
deadlock_timeout
)){
return
NDBT_FAILED
;
}
int
do_sleep
=
(
int
)(
deadlock_timeout
*
0.5
);
HugoOperations
hugoOps
(
*
ctx
->
getTab
());
Ndb
*
pNdb
=
GETNDB
(
step
);
for
(
int
l
=
0
;
l
<
loops
&&
result
==
NDBT_OK
;
l
++
){
do
{
// Commit transaction
CHECK
(
hugoOps
.
startTransaction
(
pNdb
)
==
0
);
CHECK
(
hugoOps
.
pkReadRecord
(
pNdb
,
stepNo
)
==
0
);
CHECK
(
hugoOps
.
execute_NoCommit
(
pNdb
)
==
0
);
int
sleep
=
deadlock_timeout
*
1.5
+
myRandom48
(
do_sleep
);
ndbout
<<
"Sleeping for "
<<
sleep
<<
" milliseconds"
<<
endl
;
NdbSleep_MilliSleep
(
sleep
);
// Expect that transaction has NOT timed-out
CHECK
(
hugoOps
.
execute_Commit
(
pNdb
)
==
0
);
}
while
(
false
);
hugoOps
.
closeTransaction
(
pNdb
);
}
return
result
;
}
int
runBuddyTransNoTimeout
(
NDBT_Context
*
ctx
,
NDBT_Step
*
step
){
int
result
=
NDBT_OK
;
int
loops
=
ctx
->
getNumLoops
();
...
...
@@ -334,6 +385,17 @@ TESTCASE("DontTimeoutTransaction",
FINALIZER
(
resetTransactionTimeout
);
FINALIZER
(
runClearTable
);
}
TESTCASE
(
"Bug11290"
,
"Setting TransactionInactiveTimeout to 0(zero) "
\
"should result in infinite timeout, and not as "
\
"was the bug, a timeout that is equal to the deadlock timeout"
){
TC_PROPERTY
(
"TransactionInactiveTimeout"
,(
Uint32
)
0
);
INITIALIZER
(
runLoadTable
);
INITIALIZER
(
setTransactionTimeout
);
STEPS
(
runDeadlockTimeoutTrans
,
1
);
FINALIZER
(
resetTransactionTimeout
);
FINALIZER
(
runClearTable
);
}
TESTCASE
(
"DontTimeoutTransaction5"
,
"Test that the transaction does not timeout "
\
"if we sleep during the transaction. Use a sleep "
\
...
...
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