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
>> 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
oo // \\ "De Chelonian Mobile"
(_,\/ \_/ \ TortoiseSVN
\ \_/_\_/> The coolest Interface to (Sub)Version Control
/_/ \_\ http://tortoisesvn.net
To unsubscribe from this discussion, e-mail: [dev-unsubscribe_at_tortoisesvn.tigris.org].
Received on 2009-04-03 16:16:26 CEST