If libsvn_fs_fs/transaction.c:commit_body is interrupted after the new
l2p and p2l indices have been created but before the revision is
completed then the revs dir contains index files for the aborted commit
and the presence of these files causes subsequent commits to fail:
$ svnlook youngest repo
0
$ ls -l repo/db/revs/0/
total 20
-r--r--r-- 1 pm pm 107 Dec 10 16:58 0
-r--r--r-- 1 pm pm 14 Dec 10 16:58 0.l2p
-r--r--r-- 1 pm pm 38 Dec 10 16:58 0.p2l
-r--r--r-- 1 pm pm 21 Dec 10 17:00 1.l2p
-r--r--r-- 1 pm pm 75 Dec 10 17:00 1.p2l
$ svn mkdir -mm file://`pwd`/repo/A
../src/subversion/svn/mkdir-cmd.c:100,
../src/subversion/libsvn_client/add.c:1297,
../src/subversion/libsvn_repos/commit.c:795,
../src/subversion/libsvn_fs/fs-loader.c:845,
../src/subversion/libsvn_fs_fs/tree.c:2144,
../src/subversion/libsvn_fs_fs/transaction.c:3920,
../src/subversion/libsvn_fs_fs/fs_fs.c:206,
../src/subversion/libsvn_fs_fs/fs_fs.c:189,
../src/subversion/libsvn_fs_fs/transaction.c:3807,
../src/subversion/libsvn_fs_fs/index.c:637,
../src/subversion/libsvn_subr/io.c:3432: (apr_err=EACCES)
svn: E000013: Can't open file '/home/pm/sw/subversion/obj2/repo/db/revs/0/1.l2p': Permission denied
$ rm repo/db/revs/0/1*
$ svn mkdir -mm file://`pwd`/repo/A
Committed revision 1.
--
Philip
Received on 2013-12-10 18:12:08 CET