JITHIN K wrote on Tue, 30 Jul 2019 14:57 +00:00:
> * Verifying metadata at revision 0 ...
> * Error verifying repository metadata.
> svnadmin: E200002: Failed to parse revprops for r0.
> svnadmin: E200002: Serialized hash malformed value data
> "
That's supposed to be impossible *even after a system crash*.

The revprops file is changed by creating a new file, flushing it to
disk, and atomically renaming it into place.  This design is resilient
to crashes… when fflush(3) and rename(2) deliver on their promises.

I would suspect that fflush(3) on your system returns before the data is
actually written to persistent (durable) storage.

> 4. I edited the file manually and tried to sync but it failed. Did 
> anyone faced this problem. Any support would be appreciated.

Well, just edit the revprops file to be valid.  It's a binary file
format so you have to be careful about lengths and trailing spaces,
but it should be straightforward.  If in doubt, do this:

% svnadmin freeze /svn/myrepo /bin/sh
$ cp db/revprops/0/0 db/revprops/0/0.BACKUP
$ printf 'END\n' > db/revprops/0/0
$ cat db/revprops/0/0.BACKUP
[for each key-value pair in the output of the previous command, do:]
    $ svnadmin setrevprop -r0 . key value
$ exit
% 

(Of course, you should never modify anything under the db/ directory except for
fsfs.conf… so don't try hacks such as the above unless you have to, and even
then, _make a backup_ first.)

Cheers,

Daniel

Reply via email to