[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Crash when using nightly 16635

From: David Walthall <walthall_at_stanfordalumni.org>
Date: Mon, 29 Jun 2009 08:30:11 -0700

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.

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

To unsubscribe from this discussion, e-mail: [users-unsubscribe_at_tortoisesvn.tigris.org].
Received on 2009-06-29 17:32:27 CEST

This is an archived mail posted to the TortoiseSVN Users mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.