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

Re: Testers wanted for FSFS svnadmin recover feature (r23595)

From: David Glasser <glasser_at_mit.edu>
Date: 2007-03-07 20:48:00 CET

On 3/7/07, Malcolm Rowe <malcolm-svn-dev@farside.org.uk> wrote:
> On Wed, Mar 07, 2007 at 01:43:46PM -0500, David Glasser wrote:
> > I started to run this on my 114285-revision svk depot. The first
> > thing I noticed was that it seems to not want to be canceled; it seems
> > to ignore SIGINTS, and I had to kill -9 it to cancel it. I assume
> > this is intentional?
> No, it's not intentional as such, but it's the same behaviour as BDB
> recovery, I believe. Unfortunately the current recovery API doesn't
> provide for cancellation or feedback, though it should be pretty trivial
> to extend the new API to include at least cancellation (for FSFS, anyway)
> - does that sound like a good idea?

I think that it would be useful, especially since there's nothing that
gets broken by an early cancellation.

> > More disturbingly, despite the message "Repository lock acquired.", I
> > was able to run multiple copies of svnadmin recover on the repository
> > at the same time. When I noticed that, I freaked out and killed them
> > both; I'll run it for real once I do an actual backup of my computer
> > at home sometime soon.
> >
> Heh. FSFS recovery doesn't require an exclusive lock, so this is actually
> okay. That said, the user experience is certainly sub-optimal, but it's
> not entirely clear how we can improve it (the locking is semi-hardcoded
> in svnadmin and libsvn_repos). Suggestions welcome.

Hmm. But svn_fs_fs__recover does take out a write lock on the
repository (not an exclusive lock, of course)...

Oh, I see. svn_repos_recover2 opens the repository, and in BDB only
it takes the lock at this time. It then calls back to svnadmin, which
prints out "Repository lock acquired." even if the lock was not asked
for (ie, FSFS). It then gets to svn_fs_fs__recover... at which point
the second svnadmin blocks. Heh.

Does anyone know what the reason for special-casing BDB locking in
libsvn_repos/repos.c was (instead of moving that behavior into
libsvn_fs_base)? Is it possible for us to fix this incongruity?


David Glasser | glasser_at_mit.edu | http://www.davidglasser.net/
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Wed Mar 7 20:48:22 2007

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

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