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
c95ef332
Commit
c95ef332
authored
Aug 02, 2004
by
joreland@mysql.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Bug fix for testBasic -n MassiveRollback, a bug in LCP in LQH
parent
2e95d812
Changes
5
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
130 additions
and
105 deletions
+130
-105
ndb/src/kernel/blocks/dblqh/Dblqh.hpp
ndb/src/kernel/blocks/dblqh/Dblqh.hpp
+1
-2
ndb/src/kernel/blocks/dblqh/DblqhMain.cpp
ndb/src/kernel/blocks/dblqh/DblqhMain.cpp
+72
-56
ndb/src/ndbapi/Ndbif.cpp
ndb/src/ndbapi/Ndbif.cpp
+49
-45
ndb/test/ndbapi/testBasic.cpp
ndb/test/ndbapi/testBasic.cpp
+7
-1
ndb/test/src/HugoTransactions.cpp
ndb/test/src/HugoTransactions.cpp
+1
-1
No files found.
ndb/src/kernel/blocks/dblqh/Dblqh.hpp
View file @
c95ef332
...
...
@@ -410,7 +410,6 @@
*/
class
Dblqh
:
public
SimulatedBlock
{
public:
enum
LcpCloseState
{
LCP_IDLE
=
0
,
LCP_RUNNING
=
1
,
// LCP is running
...
...
@@ -1990,7 +1989,6 @@ public:
UintR
nextTcLogQueue
;
UintR
nextTc
;
UintR
nextTcConnectrec
;
Uint16
nodeAfterNext
[
2
];
UintR
prevHashRec
;
UintR
prevLogTcrec
;
UintR
prevTc
;
...
...
@@ -2027,6 +2025,7 @@ public:
Uint16
nextReplica
;
Uint16
primKeyLen
;
Uint16
save1
;
Uint16
nodeAfterNext
[
3
];
Uint8
activeCreat
;
Uint8
apiVersionNo
;
...
...
ndb/src/kernel/blocks/dblqh/DblqhMain.cpp
View file @
c95ef332
This diff is collapsed.
Click to expand it.
ndb/src/ndbapi/Ndbif.cpp
View file @
c95ef332
...
...
@@ -350,47 +350,46 @@ Ndb::handleReceivedSignal(NdbApiSignal* aSignal, LinearSectionPtr ptr[3])
return
;
}
case
GSN_TRANSID_AI
:
{
tFirstDataPtr
=
int2void
(
tFirstData
);
assert
(
tFirstDataPtr
);
if
(
tFirstDataPtr
==
0
)
goto
InvalidSignal
;
NdbReceiver
*
tRec
=
void2rec
(
tFirstDataPtr
);
assert
(
tRec
->
checkMagicNumber
());
assert
(
tRec
->
getTransaction
());
assert
(
tRec
->
getTransaction
()
->
checkState_TransId
(((
const
TransIdAI
*
)
tDataPtr
)
->
transId
));
if
(
tRec
->
checkMagicNumber
()
&&
(
tCon
=
tRec
->
getTransaction
())
&&
tCon
->
checkState_TransId
(((
const
TransIdAI
*
)
tDataPtr
)
->
transId
)){
Uint32
com
;
if
(
aSignal
->
m_noOfSections
>
0
){
com
=
tRec
->
execTRANSID_AI
(
ptr
[
0
].
p
,
ptr
[
0
].
sz
);
}
else
{
com
=
tRec
->
execTRANSID_AI
(
tDataPtr
+
TransIdAI
::
HeaderLength
,
tLen
-
TransIdAI
::
HeaderLength
);
}
if
(
com
==
1
){
switch
(
tRec
->
getType
()){
case
NdbReceiver
:
:
NDB_OPERATION
:
case
NdbReceiver
:
:
NDB_INDEX_OPERATION
:
if
(
tCon
->
OpCompleteSuccess
()
!=
-
1
){
completedTransaction
(
tCon
);
return
;
}
break
;
case
NdbReceiver
:
:
NDB_SCANRECEIVER
:
tCon
->
theScanningOp
->
receiver_delivered
(
tRec
);
theWaiter
.
m_state
=
(
tWaitState
==
WAIT_SCAN
?
NO_WAIT
:
tWaitState
);
break
;
default:
goto
InvalidSignal
;
case
GSN_TRANSID_AI
:{
tFirstDataPtr
=
int2void
(
tFirstData
);
NdbReceiver
*
tRec
;
if
(
tFirstDataPtr
&&
(
tRec
=
void2rec
(
tFirstDataPtr
))
&&
tRec
->
checkMagicNumber
()
&&
(
tCon
=
tRec
->
getTransaction
())
&&
tCon
->
checkState_TransId
(((
const
TransIdAI
*
)
tDataPtr
)
->
transId
)){
Uint32
com
;
if
(
aSignal
->
m_noOfSections
>
0
){
com
=
tRec
->
execTRANSID_AI
(
ptr
[
0
].
p
,
ptr
[
0
].
sz
);
}
else
{
com
=
tRec
->
execTRANSID_AI
(
tDataPtr
+
TransIdAI
::
HeaderLength
,
tLen
-
TransIdAI
::
HeaderLength
);
}
if
(
com
==
1
){
switch
(
tRec
->
getType
()){
case
NdbReceiver
:
:
NDB_OPERATION
:
case
NdbReceiver
:
:
NDB_INDEX_OPERATION
:
if
(
tCon
->
OpCompleteSuccess
()
!=
-
1
){
completedTransaction
(
tCon
);
return
;
}
break
;
case
NdbReceiver
:
:
NDB_SCANRECEIVER
:
tCon
->
theScanningOp
->
receiver_delivered
(
tRec
);
theWaiter
.
m_state
=
(
tWaitState
==
WAIT_SCAN
?
NO_WAIT
:
tWaitState
);
break
;
default:
goto
InvalidSignal
;
}
break
;
}
else
{
goto
InvalidSignal
;
}
break
;
}
else
{
/**
* This is ok as transaction can have been aborted before TRANSID_AI
* arrives (if TUP on other node than TC)
*/
return
;
}
}
case
GSN_TCKEY_FAILCONF
:
{
tFirstDataPtr
=
int2void
(
tFirstData
);
...
...
@@ -695,7 +694,8 @@ Ndb::handleReceivedSignal(NdbApiSignal* aSignal, LinearSectionPtr ptr[3])
(
tCon
=
void2con
(
tFirstDataPtr
))
&&
(
tCon
->
checkMagicNumber
()
==
0
)){
if
(
aSignal
->
m_noOfSections
>
0
){
tReturnCode
=
tCon
->
receiveSCAN_TABCONF
(
aSignal
,
ptr
[
0
].
p
,
ptr
[
0
].
sz
);
tReturnCode
=
tCon
->
receiveSCAN_TABCONF
(
aSignal
,
ptr
[
0
].
p
,
ptr
[
0
].
sz
);
}
else
{
tReturnCode
=
tCon
->
receiveSCAN_TABCONF
(
aSignal
,
...
...
@@ -730,12 +730,11 @@ Ndb::handleReceivedSignal(NdbApiSignal* aSignal, LinearSectionPtr ptr[3])
}
case
GSN_KEYINFO20
:
{
tFirstDataPtr
=
int2void
(
tFirstData
);
if
(
tFirstDataPtr
==
0
)
goto
InvalidSignal
;
NdbReceiver
*
tRec
=
void2rec
(
tFirstDataPtr
);
if
(
tRec
->
checkMagicNumber
()
&&
(
tCon
=
tRec
->
getTransaction
())
&&
tCon
->
checkState_TransId
(
&
((
const
KeyInfo20
*
)
tDataPtr
)
->
transId1
)){
NdbReceiver
*
tRec
;
if
(
tFirstDataPtr
&&
(
tRec
=
void2rec
(
tFirstDataPtr
))
&&
tRec
->
checkMagicNumber
()
&&
(
tCon
=
tRec
->
getTransaction
())
&&
tCon
->
checkState_TransId
(
&
((
const
KeyInfo20
*
)
tDataPtr
)
->
transId1
)){
Uint32
len
=
((
const
KeyInfo20
*
)
tDataPtr
)
->
keyLen
;
Uint32
info
=
((
const
KeyInfo20
*
)
tDataPtr
)
->
scanInfo_Node
;
int
com
=
-
1
;
...
...
@@ -756,8 +755,13 @@ Ndb::handleReceivedSignal(NdbApiSignal* aSignal, LinearSectionPtr ptr[3])
goto
InvalidSignal
;
}
break
;
}
else
{
/**
* This is ok as transaction can have been aborted before KEYINFO20
* arrives (if TUP on other node than TC)
*/
return
;
}
goto
InvalidSignal
;
}
case
GSN_TCINDXCONF
:{
tFirstDataPtr
=
int2void
(
tFirstData
);
...
...
ndb/test/ndbapi/testBasic.cpp
View file @
c95ef332
...
...
@@ -962,6 +962,7 @@ int runMassiveRollback(NDBT_Context* ctx, NDBT_Step* step){
const
Uint32
OPS_TOTAL
=
4096
;
for
(
int
row
=
0
;
row
<
records
;
row
++
){
int
res
;
CHECK
(
hugoOps
.
startTransaction
(
pNdb
)
==
0
);
for
(
int
i
=
0
;
i
<
OPS_TOTAL
;
i
+=
OPS_PER_TRANS
){
for
(
int
j
=
0
;
j
<
OPS_PER_TRANS
;
j
++
){
...
...
@@ -972,7 +973,12 @@ int runMassiveRollback(NDBT_Context* ctx, NDBT_Step* step){
if
(
result
!=
NDBT_OK
){
break
;
}
CHECK
(
hugoOps
.
execute_NoCommit
(
pNdb
)
==
0
);
res
=
hugoOps
.
execute_NoCommit
(
pNdb
);
if
(
res
!=
0
){
NdbError
err
=
pNdb
->
getNdbError
(
res
);
CHECK
(
err
.
classification
==
NdbError
::
TimeoutExpired
);
break
;
}
}
if
(
result
!=
NDBT_OK
){
break
;
...
...
ndb/test/src/HugoTransactions.cpp
View file @
c95ef332
...
...
@@ -1364,7 +1364,7 @@ HugoTransactions::pkUpdateRecords(Ndb* pNdb,
allocRows
(
batch
);
g_info
<<
"|- Updating records..."
<<
endl
;
g_info
<<
"|- Updating records
(batch="
<<
batch
<<
")
..."
<<
endl
;
while
(
r
<
records
){
if
(
retryAttempt
>=
retryMax
){
...
...
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