Vlad, very good catch. OK to push.
>-----Original Message-----
>From: Vladislav Vaintroub [mailto:vvaintroub@stripped]
>Sent: Wednesday, August 27, 2008 4:53 PM
>To: commits@stripped
>Subject: bzr commit into mysql-6.0-falcon branch (vvaintroub:2805)
Bug#39024
>
>#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();
> }
>
>
>--
>MySQL Code Commits Mailing List
>For list archives: http://lists.mysql.com/commits
>To unsubscribe: http://lists.mysql.com/commits?unsub=1