Repository became corrupt on commit

2018-10-20 Thread Alan Spark
Hi,

Yesterday one of our repositories became corrupt when someone
committed a simple text file.

In the end we deleted the file and re-added it and it has been fine
since then. We are using SVN 1.9.3 on the server. This is one of many
repositories and the first time we have encountered such a situation.

A verify showed this error:

* Error verifying revision 728.
svnadmin: E160013: Filesystem path 'trunk/scripts/script.py' is
neither a file nor a directory

The content of that file is what had replaced what used to be the
trunk folder. When in that state it was not possible to checkout the
repository or browse its contents (i.e. it was corrupt). We could see
the log messages for the level above trunk but still could not check
it out.

Now that we have deleted then re-committed exactly the same file, the
repository is back to normal and it seems like an unreproducable bug
at this stage.

Is this a known issue?

Regards,
Alan


Re: Repository became corrupt on commit

2018-10-20 Thread Daniel Shahaf
Alan Spark wrote on Fri, 19 Oct 2018 16:04 +0100:
> * Error verifying revision 728.
> svnadmin: E160013: Filesystem path 'trunk/scripts/script.py' is
> neither a file nor a directory

E160013 is SVN_ERR_FS_CORRUPT, but this message is a new one.

Can you share the output of
.
% dump-noderev.pl ${REPO_DIR} /trunk/scripts/script.py 728
.
where dump-noderev.pl is [1]?  The output should be just a few rfc822-like
headers specifying the offset and checksum of the file contents representation
("rep").  One of the headers should be "type: file".

> The content of that file is what had replaced what used to be the trunk
> folder. [...]  Now that we have deleted then re-committed exactly the same
> file, the repository is back to normal and it seems like an unreproducable
> bug at this stage.

Sorry, I don't follow.  Can you explain again what the contents of the
file is and what's its significance?  Has the server been restarted
between the two commit attempts?  Is it svnserve (in which mode,
-i/-t/-d/-T/service) or mod_dav_svn (which MPM)?

Cheers,

Daniel

[1] 
https://github.com/apache/infrastructure-puppet/blob/0a97d8e60798656d856bb0521bee76b24fbe5574/modules/rootbin_asf/files/bin/dump-noderev.pl