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

Re: svn: database disk image is malformed

From: Stefan Sperling <stsp_at_elego.de>
Date: Thu, 16 Dec 2010 18:49:22 +0100

On Thu, Dec 16, 2010 at 05:03:00PM +0100, Rainer Dorsch wrote:
> Hello,
>
> I see here a strange behavior of subversion:
>
> I have a local modification:
>
>
> $ svn diff
> Index: README
> ===================================================================
> --- README (revision 929)
> +++ README (working copy)
> @@ -10,3 +10,4 @@
> Contains project administration documents for the project like the project
> plan
> - att
> att traces
> +
> $
>
> I try to commit the change
>
> $ svn commit -m "minor change"
> Sending README
> Transmitting file data .svn: Commit failed (details follow):
> svn: database disk image is malformed
> svn: database disk image is malformed
> $
>
> And get an error back.
>
> $ svn diff
> Index: README
> ===================================================================
> --- README (revision 929)
> +++ README (working copy)
> @@ -10,3 +10,4 @@
> Contains project administration documents for the project like the project
> plan
> - att
> att traces
> +
> $
>
> But the repository has the change(!), and I can update
>
> $ svn update
> G README
> Updated to revision 930.
> $
>
> Then my local diff is gone
>
> $ svn diff
> $
>
>
> I found several posts discussing the
>
> svn: database disk image is malformed
>
> issue. The best solution is saw is to dump the repository and create a new one
> from the dump.
>
> Is there an easier way to fix the problem in a robust manner? Does maybe even
> svn provide some fix scripts?

This error message is coming from sqlite, not from Subversion.
You probably have a broken sqlite database in the repository.

The only place I can think of where sqlite is used in FSFS is
the rep-cache.db file. Have you got rep-sharing enabled on the repository?
See the file repos/db/fsfs.conf.

You can safely disable rep-sharing. Maybe this will get rid of the error.
If it does, try to recover the rep-sharing.db using sqlite (though I
don't know how you could do that). If you cannot recover rep-cache.db,
move it out of the way and Subversion will create a new rep-cache.db
sqlite database. But it will be empty.

Representation sharing is not required for a commit to succeed.
This would explain why you see a successful commit in spite of the error.

Stefan
Received on 2010-12-16 18:50:14 CET

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.