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
ecdc2c91
Commit
ecdc2c91
authored
Jan 23, 2006
by
pekka@mysql.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ndb - wl#2972 injector cleanup accessed blob event ops via Ndb => crash
parent
f79075e9
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
16 additions
and
14 deletions
+16
-14
storage/ndb/src/ndbapi/NdbEventOperationImpl.cpp
storage/ndb/src/ndbapi/NdbEventOperationImpl.cpp
+14
-9
storage/ndb/src/ndbapi/NdbEventOperationImpl.hpp
storage/ndb/src/ndbapi/NdbEventOperationImpl.hpp
+2
-5
No files found.
storage/ndb/src/ndbapi/NdbEventOperationImpl.cpp
View file @
ecdc2c91
...
...
@@ -337,14 +337,16 @@ NdbEventOperationImpl::getBlobHandle(const NdbColumnImpl *tAttrInfo, int n)
break
;
}
tLastBlopOp
=
tBlobOp
;
tBlobOp
=
tBlobOp
->
theNextBlobOp
;
tBlobOp
=
tBlobOp
->
m_next
;
}
DBUG_PRINT
(
"info"
,
(
"%s op %s"
,
tBlobOp
?
" reuse"
:
" create"
,
bename
));
// create blob event op if not found
if
(
tBlobOp
==
NULL
)
{
NdbEventOperation
*
tmp
=
m_ndb
->
createEventOperation
(
bename
);
// to hide blob op it is linked under main op, not under m_ndb
NdbEventOperation
*
tmp
=
m_ndb
->
theEventBuffer
->
createEventOperation
(
bename
,
m_error
);
if
(
tmp
==
NULL
)
DBUG_RETURN
(
NULL
);
tBlobOp
=
&
tmp
->
m_impl
;
...
...
@@ -357,8 +359,8 @@ NdbEventOperationImpl::getBlobHandle(const NdbColumnImpl *tAttrInfo, int n)
if
(
tLastBlopOp
==
NULL
)
theBlobOpList
=
tBlobOp
;
else
tLastBlopOp
->
theNextBlobOp
=
tBlobOp
;
tBlobOp
->
theNextBlobOp
=
NULL
;
tLastBlopOp
->
m_next
=
tBlobOp
;
tBlobOp
->
m_next
=
NULL
;
}
}
...
...
@@ -484,7 +486,7 @@ NdbEventOperationImpl::execute_nolock()
r
=
blob_op
->
execute_nolock
();
if
(
r
!=
0
)
break
;
blob_op
=
blob_op
->
theNextBlobOp
;
blob_op
=
blob_op
->
m_next
;
}
}
if
(
r
==
0
)
...
...
@@ -2017,12 +2019,15 @@ NdbEventBuffer::dropEventOperation(NdbEventOperation* tOp)
m_dropped_ev_op
->
m_prev
=
op
;
m_dropped_ev_op
=
op
;
//
drop blob
ops
while
(
op
->
theBlobOpList
!
=
NULL
)
//
stop blob event
ops
if
(
op
->
theMainOp
=
=
NULL
)
{
NdbEventOperationImpl
*
tBlobOp
=
op
->
theBlobOpList
;
op
->
theBlobOpList
=
op
->
theBlobOpList
->
theNextBlobOp
;
(
void
)
m_ndb
->
dropEventOperation
(
tBlobOp
);
while
(
tBlobOp
!=
NULL
)
{
tBlobOp
->
stop
();
tBlobOp
=
tBlobOp
->
m_next
;
}
}
// ToDo, take care of these to be deleted at the
...
...
storage/ndb/src/ndbapi/NdbEventOperationImpl.hpp
View file @
ecdc2c91
...
...
@@ -223,11 +223,8 @@ public:
NdbRecAttr
*
theCurrentDataAttrs
[
2
];
NdbBlob
*
theBlobList
;
union
{
NdbEventOperationImpl
*
theBlobOpList
;
NdbEventOperationImpl
*
theNextBlobOp
;
};
NdbEventOperationImpl
*
theMainOp
;
// blob op pointer to main op
NdbEventOperationImpl
*
theBlobOpList
;
// in main op, list of blob ops
NdbEventOperationImpl
*
theMainOp
;
// in blob op, the main op
NdbEventOperation
::
State
m_state
;
/* note connection to mi_type */
Uint32
mi_type
;
/* should be == 0 if m_state != EO_EXECUTING
...
...
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