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

Re: svnadmin dump || hotcopy : Program version matching error

From: Ryan Schmidt <subversion-2009b_at_ryandesign.com>
Date: Tue, 20 Oct 2009 14:11:29 -0500

On Oct 20, 2009, at 13:53, Ryan Schmidt wrote:

>> 1/ when using svnadmin from the machine where the repositories are,
>> most
>> subcommands throw an error in the form:
>> “svn: Berkeley DB error while opening environment for filesystem
>> cordisoff/db:
>> Argument invalide
>> svn: bdb: Program version 4.2 doesn't match environment version”
> Then your svnadmin was built for a version of BerkeleyDB different
> from 4.2.
>> 2/ when using svn with the http protocol, from ANY machine,
>> everything
>> goes always OK.
> Then presumably your mod_dav_svn was built for BerkeleyDB 4.2. So it
> sounds like your mod_dav_svn may not be matched with the rest of your
> Subversion software. On many systems, you need to manually copy
> mod_dav_svn to the right place for Apache to see when you upgrade

Thinking about this further, I may have this a bit backward. It's the
repository that is "built" for a particular BerkeleyDB version, not
the Subversion parts. Presumably when you're using svnadmin and when
you're using mod_dav_svn you're talking to the same repository. So
then, the error message you get from svnadmin shows that BerkeleyDB
4.2 is what svnadmin is using, but this isn't the right version for
accessing the repository. Conversely, your mod_dav_svn has no problem
using the repository, so maybe your mod_dav_svn is using a different
version of BerkeleyDB -- maybe you have multiple versions installed on
your server simultaneously.

Or is it possible that your Apache has just never been restarted after
BerkeleyDB was updated to 4.2, and that if you were to now restart
Apache, you would no longer be able to access the repository from
there either? I suppose you would prefer not to test that theory at
the moment. :) But it might be useful to know your Apache's uptime.

You may want to follow this FAQ entry to determine which version of
BerkeleyDB your repository is "built" for at this moment:


If you find your repository is "built" for BerkeleyDB < 4.2, you can
apparently upgrade it to BerkeleyDB 4.2 specs by using "svnadmin
recover". If you wanted to upgrade to a later version of BerkeleyDB,
this FAQ would be relevant:


Also note that as of Subversion 1.2, the default repository format is
no longer BerkeleyDB but "FSFS". If you manage to find a way to dump
your repository and load it into a new one, you'll get an FSFS
repository (unless you explicitly ask for a BDB one). FSFS was
specifically designed for Subversion to avoid the intricacies of
managing BerkeleyDB -- such as these version mismatches -- so if you
use FSFS, you won't ever have to deal with this again (or even have
BerkeleyDB installed). As you can imagine, I recommend using FSFS.


To unsubscribe from this discussion, e-mail: [users-unsubscribe_at_subversion.tigris.org].
Received on 2009-10-20 21:12:52 CEST

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