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

Help needed to recover BDB repos

From: Gregory Youngblood <greg_at_netio.org>
Date: 2005-10-20 08:51:27 CEST

I'm running SuSE 9.3 right now. Previously I ran an older version of
SuSE. Currently I have svn 1.1.3. I've also compiled from source 1.2.3
(all-static, with bdb 4.1.25). I think the previous system had svn
1.0.??? but I'm not sure.

I have two older repos that I believe were created with db 4.1 (based on
FAQ, checking bytes in log file with od tool).

SVN as installed on 9.3 will not dump or recover those repos. So I
downloaded the latest SVN and bdb 4.1.25 tar balls and built static
version of SVN. Still can't read repos, and still getting error telling
me to run recover. I recovered the original files from backup and still
get same error. svnadmin recover halts with error telling me to do
db_recover.

I ran db_recover on one of them and get a panic telling me:
db_recover -c -v -h /path/to/oldrepo/SVN/db

db_recover: unable to join the environment
db_recover: Finding last valid log LSN: file: 444 offset 655229
db_recover: Recovery starting from [1][28]
db_recover: DB_LOGC->get: invalid log record header
db_recover: PANIC: Input/output error
db_recover: fatal region error detected; run recovery
db_recover: fatal region error detected; run recovery
db_recover: DB_ENV->open: DB_RUNRECOVERY: Fatal error, run database
recovery

I ran db_recover on the other repo, and it looks like it completed OK
(db_recover -c -v -h /path/to/repo/db).

db_recover: Finding last valid log LSN: file: 50 offset 109170
db_recover: Recovery starting from [1][28]
db_recover: Recovery complete at Wed Oct 19 23:44:24 2005
db_recover: Maximum transaction ID 80013b29 Recovery checkpoint
[50][109170]
db_recover: Recovery complete at Wed Oct 19 23:44:24 2005
db_recover: Maximum transaction id 80000000 Recovery checkpoint
[50][109170]

After this, svnadmin dump on the repaired repo db now produces the
error:

Please wait; recovering the repository may take some time...
svnadmin: DB_RUNRECOVERY: Fatal error, run database recovery
svnadmin:
bdb: /export/storage/svnroot/export/SVN-orig/db/log.0000000051: log file
open failed: No such file or directory
svnadmin: bdb: PANIC: No such file or directory
svnadmin: bdb: DB_ENV->log_put: 51: DB_RUNRECOVERY: Fatal error, run
database recovery

--
Ignoring the obvious, that I should have done an svnadmin dump when I
backed up the old repository, is there anything I can do to get my
repository back? I really need to get it back. My next step will be to
install an older version of SuSE and hopefully be able to dump the data
from that. I'm hoping there will be an easier method.
Follow up question, I'm assuming the fsfs back end will be much more
stable and less prone to (nonrecoverable?) errors than the bdb version.
Is it? If you copy a repos from an old machine to a newer one (older SVN
to newer SVN), will the old fsfs data be read by the newer version of
svn? Or will it have to go through a dump/load to upgrade as well?
Thanks,
Greg
Received on Thu Oct 20 12:04:42 2005

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

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