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

Re: svn commit: r29087 - in branches/svnadmin-upgrade/subversion: include libsvn_fs libsvn_fs_base libsvn_fs_fs libsvn_repos svnadmin

From: C. Michael Pilato <cmpilato_at_collab.net>
Date: Thu, 31 Jan 2008 22:00:04 -0500

David Glasser wrote:
>> +/* A callback which is called when the upgrade starts. */
>> +static svn_error_t *
>> +upgrade_started(void *baton)
>> +{
>> + apr_pool_t *pool = (apr_pool_t *)baton;
>> +
>> + SVN_ERR(svn_cmdline_printf(pool,
>> + _("Repository lock acquired.\n"
>> + "Please wait; upgrading the"
>> + " repository may take some time...\n")));
>> + SVN_ERR(svn_cmdline_fflush(stdout));
>> +
>> + /* Enable cancellation signal handlers. */
>> + setup_cancellation_signals(signal_handler);
>> +
>> + return SVN_NO_ERROR;
>> +}
>
> I believe this callback is being called in the repos function, not the
> FS function, so when it is called it is simply not true for FSFS: the
> lock has not been acquired yet. (Yeah, it's a pain that the BDB lock
> is acquired in repos code but not the FSFS lock...)

This code was copied wholesale from the implementation of 'svnadmin
recover', so we'll need to fix that, too.

>> + SVN_ERR(svn_cmdline_fflush(stdout));
>> + SVN_ERR(svn_repos_upgrade(opt_state->repository_path, FALSE,
>> + upgrade_started, pool, pool));
>> + }
>> + else if (err->apr_err == SVN_ERR_REPOS_UNSUPPORTED_UPGRADE)
>
> This should probably be the FS error?

Oops! Yep. I'll make that quick fix. Not sure what to do about the other.

(I find it both surprising and utterly annoying that we apparently can't
serialize access to FSFS repositories, only FSFS filesystems inside
repositories. What night of drunken revelry inspired that?)

-- 
C. Michael Pilato <cmpilato_at_collab.net>
CollabNet   <>   www.collab.net   <>   Distributed Development On Demand

Received on 2008-02-01 09:14:41 CET

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