Wedged Subversion Repository
Earlier this morning, one of my projects subversion repositories got wedged. After figuring out that it was actually wedged (no GET response, no PROPFIND/timeout requiring a kill -9 on svn and svnadmin commands), I started playing with svnadmin. Still didn’t work. Hopped into #svn. Asked, was pointed to FAQ.
Copied current repository to another location before attempting anything else, since I’ve fucked up a BDB based subversion repository attempting to repair it before.
Attempted svnadmin repair /var/www/svn/rdfpython: failed with lots and lots of “PANIC” type errors.
Attempted svnadmin repair ~/newcopyofrepos: That seemed to work. An svnadmin verify ~/newcopyofrepos confirmed that it had.
Made another backup of the repos, removed it, copied the new ~/newcopyofrepos into place.
And the world was good again. A verify/checkout process both verified that the files were all in place, and trac started to work again, and all was well, good and happy.
However, I think that from now on, I may use the fsfs storage method rather than BDB, as this is certainly not the first time this has happened to me or anyone else, and I really think I’m just starting to not trust BDB for mission critical tasks, which is what I consider subversion. My version control is one of the few things that I don’t have completely backed up most of the time: files I can copy around easily, but databases of changes to files typically stay in one place. I could recreate the structure, but I couldn’t really recreate the history, and that’s important to me.
If anyone has any experience with fsfs SVN repositories over BDB based ones, I’d be glad to hear it.
October 2nd, 2005 at 6:41 pm
To recover a subversion repos, just run svnadmin recover
I use fsfs in a production environment with 10 developers submitting updates every hour or so. I would have to recover BDB every 4 or 5 days. I haven’t had a problem with fsfs at all.