Daniel Shahaf wrote on Sun, Mar 18, 2012 at 16:28:21 +0200:
> [ cc += dev@. summary for dev@: investigating issue #4129: predecessor
> count of rN is not incremented by one wrt that of r(N-1); see
> http://subversion.tigris.org/issues/show_bug.cgi?id=4129 ]
Okay, count me happy :-) I can reproduce this:
[[[
$SVN ps svn:mergeinfo '/branch/A:2' wc1/trunk/A
$SVN ps svn:mergeinfo '/branch/iota:2' wc2/trunk/iota
$SVN mkdir wc1/foo
$SVN mkdir wc2/bar
$svn ci -mm wc1 & $svn ci -mm wc2 & wait
]]]
Output:
[[[
Adding wc1/foo
Sending wc1/trunk/A
Adding wc2/bar
Sending wc2/trunk/iota
Committed revision 2.
subversion/svn/commit-cmd.c:183: (apr_err=160004)
subversion/libsvn_client/commit.c:876: (apr_err=160004)
subversion/libsvn_client/commit.c:876: (apr_err=160004)
svn: E160004: Commit failed (details follow):
subversion/libsvn_ra_serf/commit.c:2216: (apr_err=160004)
subversion/libsvn_ra_serf/commit.c:2216: (apr_err=160004)
subversion/libsvn_ra_serf/commit.c:2216: (apr_err=160004)
subversion/libsvn_ra_serf/util.c:774: (apr_err=160004)
subversion/libsvn_ra_serf/util.c:2087: (apr_err=160004)
subversion/libsvn_ra_serf/util.c:2087: (apr_err=160004)
subversion/libsvn_ra_serf/util.c:920: (apr_err=160004)
svn: E160004: predecessor count for the root node-revision is wrong: found (2+1 != 2), committing r3
]]]
Error log:
[[[
[Mon Mar 19 14:19:41.388413 2012] [dav:error] [pid 17156:tid 3064073072] [client ::1:40969] Could not MERGE resource "/t/r1/!svn/txn/1-2" into "/t/r1". [409, #0]
[Mon Mar 19 14:19:41.388497 2012] [dav:error] [pid 17156:tid 3064073072] [client ::1:40969] An error occurred while committing the transaction. [409, #160004]
[Mon Mar 19 14:19:41.388518 2012] [dav:error] [pid 17156:tid 3064073072] [client ::1:40969] predecessor count for the root node-revision is wrong: found (2+1 != 2), committing r3 [409, #160004]
[Mon Mar 19 14:19:42.024052 2012] [authz_core:debug] [pid 17156:tid 3055680368] mod_authz_core.c(783): [client ::1:40971] AH01626: authorization result of Require all granted: granted
[Mon Mar 19 14:19:42.024114 2012] [authz_core:debug] [pid 17156:tid 3055680368] mod_authz_core.c(783): [client ::1:40971] AH01626: authorization result of <RequireAny>: granted
[Mon Mar 19 14:19:42.024781 2012] [dav:error] [pid 17156:tid 3055680368] [client ::1:40971] Could not fetch resource information. [404, #0]
[Mon Mar 19 14:19:42.024820 2012] [dav:error] [pid 17156:tid 3055680368] [client ::1:40971] Named transaction doesn't exist. [404, #0]
]]]
Using another property, or omitting either propset, is enough to cause
the bug not to trigger.
The bug reproduced both with and without the following patch:
[[[
--- subversion/libsvn_fs_fs/tree.c (revision 1301511)
+++ subversion/libsvn_fs_fs/tree.c (working copy)
@@ -1 +1,2 @@
+#include <unistd.h>
/* tree.c : tree-like filesystem, built on DAG filesystem
@@ -1701 +1702,2 @@ svn_fs_fs__commit_txn(const char **conflict_p,
+ sleep(3);
err = svn_fs_fs__commit(new_rev, fs, txn, iterpool);
@@ -1729,3 +1731,4 @@ svn_fs_fs__commit_txn(const char **conflict_p,
cleanup:
+ sleep(3);
svn_fs_fs__reset_txn_caches(fs);
]]]
The bug reproduced with either "ServerLimit 1" or "ThreadLimit 1" in
httpd.conf. (That forced both commits to be served by the same process
(resp., by different processes).) I use httpd 2.4.1 with event MPM.
Received on 2012-03-19 13:25:44 CET