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

Re: log cache corruption

From: <Stefan.Fuhrmann_at_etas.com>
Date: Thu, 15 May 2008 02:26:05 +0200

Stefan Küng <tortoisesvn_at_gmail.com> wrote on 05/14/2008 06:43:37 PM:

> We've already got some crash reports for the RC releases where the log
> cache got corrupted (I've sent you one via PM - the other ones crash for

> the same reason).

Back then I couldn't find the root cause. So I fixed only
the spot that triggered the crash. (Did you get my reply?)

> From what I could find out, this happens when users
> set up test repos, remove them, create new test repos at the same
> location -> the cache somehow fails to recognize that there's a
> different repository even though the URL stays the same.

Hm. Sounds reasonable. Give me some time to experiment on this.

As long as the data file itself doesn't get corrupted, adding
(unleated) new data or asking for things that aren't there
should be (made) possible without restricting performance or
features.

> Now, even though we have to fix this bug and the crash, I suggest one
> 'fallback' for this:
>
> if the cache can't be loaded (because it crashes), we should catch that
> exception and remove the cache file automatically. That way the user can

> keep working without crashing every time from that moment on. Yes I know

> the user can clear the cache manually, but most users won't know that
> the crash happens because of the cache (most won't even know about the
> cache) and many won't come to the mailing list for help either - they
> will just rant about TSVN instead.

I agree on the "cache does not fit - so drop it!" principle.
TSVN would otherwise continue to accumulate stale cache files.

> So, I propose the following:
> * before loading the cache file, rename it
> * load the renamed file
> * if there's a crash, next time the cache should be loaded it isn't
> there anymore (only the renamed one which isn't used)
> * if there's no crash (which should be the default :) ) then after a
> successful load the file is renamed back
>
> This however assumes that no two instances of TortoiseProc access the
> cache file at the same time.

You time-out commit should be fine for the time being.
My major concern is about off-line functionality. The way I use
TSVN, this is one of the most important improvements in 1.5.

We are speaking of something similar to the "allow ambiguous URLs"
option but this time it has to work without being noticed :/
 
Basically, I need some time to think and experiment about it.
Have been a bit off TSVN lately, so it takes time to speed up ;)

-- Stefan^2.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe_at_tortoisesvn.tigris.org
For additional commands, e-mail: dev-help_at_tortoisesvn.tigris.org
Received on 2008-05-15 02:26:17 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.