From: Date: August 27 2008 11:53pm Subject: bzr commit into mysql-6.0-falcon branch (vvaintroub:2805) Bug#39024 List-Archive: http://lists.mysql.com/commits/52787 X-Bug: 39024 Message-Id: <200808272153.m7RLr3NV008370@mail.mysql.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit #At file:///C:/bzr/mysql-6.0-falcon-team/ 2805 Vladislav Vaintroub 2008-08-27 Bug#39024 Crash in DeferredIndex::detachTransaction DeferredIndex::syncObject is accessed even after "this" object is destroyed in releaseRef(). I put a block at the start of function and before releaseRef() to force the destructor of sync before the object itself is destroyed. modified: storage/falcon/DeferredIndex.cpp === modified file 'storage/falcon/DeferredIndex.cpp' --- a/storage/falcon/DeferredIndex.cpp 2008-07-25 18:07:24 +0000 +++ b/storage/falcon/DeferredIndex.cpp 2008-08-27 21:52:50 +0000 @@ -825,6 +825,7 @@ void DeferredIndex::detachIndex(void) void DeferredIndex::detachTransaction(void) { + { Sync sync(&syncObject, "DeferredIndex::detachTransaction"); sync.lock(Exclusive); transaction = NULL; @@ -839,6 +840,7 @@ void DeferredIndex::detachTransaction(vo } else sync.unlock(); + } releaseRef(); }