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

Re: TSVNCache memory leaks

From: Stefan Küng <tortoisesvn_at_gmail.com>
Date: Fri, 03 Apr 2009 16:16:10 +0200

Stefan Fuhrmann wrote:
> Stefan Küng wrote:
>
>> Stefan Fuhrmann wrote:
>>> And there is a lot more going on in TSVNCache:
>>>
>>> * tear-down sequence is broken: triggers debug exception
>>> in the CRWSection destructor.
>> That's not really a problem: the CRWSection is destroyed when the
>> process quits, and if you look at the code you'll find that the only
>> place we don't release the section is right at the end before the
>> process exits.
>
> I had a second look at this one. It seems that some
> of the other threads could still be running or continue
> to run as soon as the respective handles are closed.
>
> Are you sure that all of them are blocked an remain
> blocked during tear-down?

The RWSection is in read mode at the time, so no other thread can access
the data at that time. And as soon as the RWSection is destroyed, the
process is in shutdown/cleanup anyway, so if a thread is still running
it will be destroyed too right away.

>>> * someone is writing to deleted data, possibly in
>>> CDirectoryWatcher::CloseInfoMap
>> I thought I fixed that just this afternoon?
>> It happened the WorkerThread(): if GetQueuedCompletionStatus() succeeds,
>> the pdi variable could still point to already deleted memory. That's why
>> I added the check whether the pdi data is still in the watchInfoMap.
>>
>> But if you still get such debug exception, I guess then it's not fixed
>> yet :(
>
> It took some hours of analysis and frantic clicking
> (to provoke the heap corruption) to identify and fix
> the race-conditions.

got one more done in r16030.

Should we merge these (your and mine) changes back to 1.6.x? I think we
should.

Stefan

-- 
       ___
  oo  // \\      "De Chelonian Mobile"
 (_,\/ \_/ \     TortoiseSVN
   \ \_/_\_/>    The coolest Interface to (Sub)Version Control
   /_/   \_\     http://tortoisesvn.net
------------------------------------------------------
http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=757&dsMessageId=1532657
To unsubscribe from this discussion, e-mail: [dev-unsubscribe_at_tortoisesvn.tigris.org].

Received on 2009-04-03 16:16:26 CEST

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

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