You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Philip Martin <ph...@codematters.co.uk> on 2004/04/30 21:27:29 UTC

stress.pl fails using FSFS backend

I'm seeing stress.pl failures when using the new FSFS backend.  I'm
running two instances

$ .../stress.pl -c -s0
$ .../stress.pl -s0

Here's what the stress.pl -c -s0 instance did

Committed revision 2.
Status:
M               2   wcstress.3751/trunk/bar1/foo2
M               2   wcstress.3751/trunk/foo2
M               1   wcstress.3751/trunk/bar2/foo1
M               1   wcstress.3751/trunk/bar2/foo2
Status against revision:      2
Updating:
At revision 2.
Committing:
Sending        wcstress.3751/trunk/bar1/foo2
Sending        wcstress.3751/trunk/bar2/foo1
Sending        wcstress.3751/trunk/bar2/foo2
Sending        wcstress.3751/trunk/foo2                  <<<<<<<<<<
Transmitting file data ....
Committed revision 3.
Status:
       *        2   wcstress.3751/trunk/bar1/foo1
M      *        3   wcstress.3751/trunk/bar1/foo2
M      *        3   wcstress.3751/trunk/bar2/foo1
       *        3   wcstress.3751/trunk/bar2/foo2
M      *        2   wcstress.3751/trunk/foo1
M      *        3   wcstress.3751/trunk/foo2
Status against revision:      4
Updating:
C  wcstress.3751/trunk/foo2
C  wcstress.3751/trunk/bar1/foo2
U  wcstress.3751/trunk/bar1/foo1
C  wcstress.3751/trunk/bar2/foo1
U  wcstress.3751/trunk/bar2/foo2
G  wcstress.3751/trunk/foo1
Updated to revision 4.
Committing:
../svn/subversion/libsvn_client/commit.c:747: (apr_err=155015)
svn: Commit failed (details follow):
../svn/subversion/libsvn_client/commit_util.c:269: (apr_err=155015)
svn: Aborting commit: '/home/pm/sw/subversion/obj/subversion/tests/wcstress.3751/trunk/foo2' remains in conflict
unexpected commit fail: exit status: 256

and here's what the stress.pl -s0 instance did

Checked out revision 2.
Status:
M               2   wcstress.3769/trunk/foo1
M               2   wcstress.3769/trunk/bar1/foo1
M               2   wcstress.3769/trunk/bar1/foo2
M               2   wcstress.3769/trunk/foo2
Status against revision:      2
Updating:
At revision 2.
Committing:
Sending        wcstress.3769/trunk/bar1/foo1
Sending        wcstress.3769/trunk/bar1/foo2
Sending        wcstress.3769/trunk/foo1
Sending        wcstress.3769/trunk/foo2              <<<<<<<<<<
Transmitting file data ....
Committed revision 4.
Status:
M               4   wcstress.3769/trunk/bar1/foo2
M               4   wcstress.3769/trunk/foo2
M               2   wcstress.3769/trunk/bar2/foo1
M               2   wcstress.3769/trunk/bar2/foo2
Status against revision:      4
Updating:
At revision 4.
Committing:
Sending        wcstress.3769/trunk/bar1/foo2
Sending        wcstress.3769/trunk/bar2/foo1
Sending        wcstress.3769/trunk/bar2/foo2
Sending        wcstress.3769/trunk/foo2
Transmitting file data ....
Committed revision 5.

In particular note the two lines marked <<<<<<<<<< as they both
involve a modification and commit of r2 trunk/foo2, the first creates
r3 and the second creates r4.  The r4 commit should have failed with a
message about trunk/foo2 being out-of-date.

A postmortem shows

$ svn cat -r2 file://`pwd`/repostress/trunk/foo2 | head -5
A0
0,1
A1
1
A2
$ svn cat -r3 file://`pwd`/repostress/trunk/foo2 | head -5
A0
0,1,2
A1
1
A2
$ svn cat -r4 file://`pwd`/repostress/trunk/foo2 | head -5
A0
0,1
A1
1,1
A2

The r3 commit correctly appends ",2" to line 2 and the r4 commit
correctly appends ",1" to line 4, but r4 also clobbers the r3 commit
to line 2.

This problem is repeatable (the failure revision varies) using FSFS,
it doesn't occur using BDB.

-- 
Philip Martin

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: stress.pl fails using FSFS backend

Posted by Josh Pieper <jp...@andrew.cmu.edu>.
Philip Martin wrote:
> > I'm seeing stress.pl failures when using the new FSFS backend.  I'm
> > running two instances
> >
> > $ .../stress.pl -c -s0
> > $ .../stress.pl -s0
> 
> Oops!  I'm using r9587 and passing -f to get FSFS so that should be
> 
> $ .../stress.pl -c -s0 -f
> $ .../stress.pl -s0

I believe I know the cause of this, I forgot the actually check to see
if the transaction was out of date after acquiring the write lock.  It
fixes the stress test, and I'll commit once it makes it through all
the normal tests.

-Josh

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: stress.pl fails using FSFS backend

Posted by Philip Martin <ph...@codematters.co.uk>.
Philip Martin <ph...@codematters.co.uk> writes:

> I'm seeing stress.pl failures when using the new FSFS backend.  I'm
> running two instances
>
> $ .../stress.pl -c -s0
> $ .../stress.pl -s0

Oops!  I'm using r9587 and passing -f to get FSFS so that should be

$ .../stress.pl -c -s0 -f
$ .../stress.pl -s0

-- 
Philip Martin

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: stress.pl fails using FSFS backend

Posted by Josh Pieper <jp...@andrew.cmu.edu>.
Philip Martin wrote:
> I'm seeing stress.pl failures when using the new FSFS backend.  I'm
> running two instances
>
> ...
>
> Committed revision 5.
> 
> In particular note the two lines marked <<<<<<<<<< as they both
> involve a modification and commit of r2 trunk/foo2, the first creates
> r3 and the second creates r4.  The r4 commit should have failed with a
> message about trunk/foo2 being out-of-date.
>
> ....
>
> This problem is repeatable (the failure revision varies) using FSFS,
> it doesn't occur using BDB.

I believe this problem is fixed in r9588.  Let me know otherwise.

-Josh

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org