summaryrefslogtreecommitdiff
path: root/storage
diff options
context:
space:
mode:
authorunknown <tomas@poseidon.mysql.com>2007-01-19 11:35:00 +0100
committerunknown <tomas@poseidon.mysql.com>2007-01-19 11:35:00 +0100
commit867e6dc67455bd554fabe252743414566d02c834 (patch)
tree6e4d69e9f0ccc4c4e38d1a6fc4aaaec13a7e4a57 /storage
parent532a2d99423c94c0757a524d4e2d91aafa1e1787 (diff)
downloadmariadb-git-867e6dc67455bd554fabe252743414566d02c834.tar.gz
Bug#25387 ndb: dbug assert in reference counting for event operations
- on blob part execute failure, must leave in state executin, and await dropEventOperation
Diffstat (limited to 'storage')
-rw-r--r--storage/ndb/src/ndbapi/NdbEventOperationImpl.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/storage/ndb/src/ndbapi/NdbEventOperationImpl.cpp b/storage/ndb/src/ndbapi/NdbEventOperationImpl.cpp
index c2a07899143..fe10cf133c2 100644
--- a/storage/ndb/src/ndbapi/NdbEventOperationImpl.cpp
+++ b/storage/ndb/src/ndbapi/NdbEventOperationImpl.cpp
@@ -571,7 +571,12 @@ NdbEventOperationImpl::execute_nolock()
while (blob_op != NULL) {
r = blob_op->execute_nolock();
if (r != 0) {
- break;
+ // since main op is running and possibly some blob ops as well
+ // we can't just reset the main op. Instead return with error,
+ // main op (and blob ops) will be cleaned up when user calls
+ // dropEventOperation
+ m_error.code= myDict->getNdbError().code;
+ DBUG_RETURN(r);
}
// add blob reference to main op
// removed by TE_STOP or TE_CLUSTER_FAILURE