[prev in list] [next in list] [prev in thread] [next in thread] 

List:       tortoisesvn-users
Subject:    Re: Crash when using nightly 16635
From:       Stefan_Küng <tortoisesvn () gmail ! com>
Date:       2009-06-30 10:33:38
Message-ID: 4A49EA02.6000209 () gmail ! com
[Download RAW message or body]


David Walthall wrote:
> Hello.  (I tried posting this in devel last week, but Thunderbird
> crashed during the posting, so I don't think it ever made it.)
> 
> I was looking into a crash I got from TortoiseSVN.  Although I
> wasn't able to get much information, I did have the debug symbols
> loaded, so I was able to get a stack trace.
> The stack trace was:
> std::_Tree<....>::insert // std::set<CShellExt*>::insert
> CShellExt::CShellExt
> CShellExtClassFactory::CreateInstance
> 
> Is there more than thread that creates/destroys CShellExt objects?  If
> so, shouldn't 'std::set<CShellExt *> g_exts' be protected by a mutex
> since the constructor and destructor modify g_exts?  My understanding is
> that std::set is *not* thread-safe for simultaneous writes to the same
> object from different threads.
> 
> Here is my information:
> TortoiseSVN 1.6.99, Build 16635 - 64 Bit -dev, 2009/06/24 18:04:53
> Subversion 1.6.4, -dev
> apr 1.3.5
> apr-utils 1.3.7
> neon 0.28.4
> OpenSSL 0.9.8k 25 Mar 2009
> zlib 1.2.3
> 
> Thanks,
> David
> 
> PS A mutex is also required for g_exts if
> DllMain(...,DLL_PROCESS_DETACH,...) can be called while other threads
> are creating/destroying CShellExt objects in other threads.

Thanks for the detailed analysis!
Should be fixed in r16654.

Stefan

-- 
       ___
  oo  // \\      "De Chelonian Mobile"
 (_,\/ \_/ \     TortoiseSVN
   \ \_/_\_/>    The coolest Interface to (Sub)Version Control
   /_/   \_\     http://tortoisesvn.net

------------------------------------------------------
http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=4061&dsMessageId=2366661

To unsubscribe from this discussion, e-mail: [users-unsubscribe@tortoisesvn.tigris.org].
["signature.asc" (application/pgp-signature)]

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic