You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by Brian Buesker <bb...@qualcomm.com> on 2006/11/22 00:19:54 UTC

Committing Locked File fails over ra_dav

I have been doing some testing with SVN 1.4.2 with Apache 2.2.3 and Neon 
0.26.1 (I tried 0.26.2 as well), and cannot seem to get locking working. 
I can lock and unlock files fine, but I get the errors when attempting 
to commit, as shown in this excerpt from running lock_tests.py:

PASS:  lock_tests.py 1: lock a file and verify that it's locked
subversion/libsvn_client/commit.c:865: (apr_err=160037)
svn: Commit failed (details follow):
subversion/libsvn_ra_dav/util.c:827: (apr_err=160037)
svn: MERGE request failed on '/svn-test-work/repositories/lock_tests-2/A'
subversion/libsvn_ra_dav/util.c:389: (apr_err=160037)
svn: Cannot verify lock on path '/A/mu'; no matching lock-token available
FAIL:  lock_tests.py 2: commit a file and keep lock
subversion/libsvn_client/commit.c:865: (apr_err=160037)
svn: Commit failed (details follow):
subversion/libsvn_ra_dav/util.c:827: (apr_err=160037)
svn: MERGE request failed on '/svn-test-work/repositories/lock_tests-3/A'
subversion/libsvn_ra_dav/util.c:389: (apr_err=160037)
svn: Cannot verify lock on path '/A/mu'; no matching lock-token available
FAIL:  lock_tests.py 3: commit a file and release lock
subversion/libsvn_client/commit.c:865: (apr_err=160037)
svn: Commit failed (details follow):
subversion/libsvn_ra_dav/util.c:827: (apr_err=160037)
svn: MERGE request failed on '/svn-test-work/repositories/lock_tests-4/A'
subversion/libsvn_ra_dav/util.c:389: (apr_err=160037)
svn: Cannot verify lock on path '/A/mu'; no matching lock-token available
FAIL:  lock_tests.py 4: commit a locked file with a prop change
PASS:  lock_tests.py 5: lock a file and verify lock breaking behavior
PASS:  lock_tests.py 6: lock a file and verify lock stealing behavior
PASS:  lock_tests.py 7: examine the fields of a lockfile for correctness
PASS:  lock_tests.py 8: verify behavior when a lock in a wc is defunct
PASS:  lock_tests.py 9: verify svn:needs-lock read-only behavior
PASS:  lock_tests.py 10: verify svn:needs-lock behavior with defunct lock

When looking at the apache error log, it shows the following:

[Tue Nov 21 16:09:13 2006] [error] [client 10.45.214.219] Could not 
MERGE resource 
"/svn-test-work/repositories/lock_tests-2/!svn/act/626333ce-b67c-4070-b9c2-aad4a1678cb4" 
into "/svn-test-work/repositories/lock_tests-2/A".  [409, #0]
[Tue Nov 21 16:09:13 2006] [error] [client 10.45.214.219] An error 
occurred while committing the transaction.  [409, #160037]
[Tue Nov 21 16:09:13 2006] [error] [client 10.45.214.219] Cannot verify 
lock on path '/A/mu'; no matching lock-token available  [409, #160037]

These results are with the basic apache configuration given in the 
README for this directory. I am using a somewhat stripped down apache 
configuration (for directives which I thought would be unrelated to 
SVN). Is there another apache configuration setting that could be 
causing these errors? Any other ideas on possible causes of the error?

Thanks,
Brian

$ svn --version
svn, version 1.4.2 (r22196)
   compiled Nov 21 2006, 15:48:52

Copyright (C) 2000-2006 CollabNet.
Subversion is open source software, see http://subversion.tigris.org/
This product includes software developed by CollabNet 
(http://www.Collab.Net/).

The following repository access (RA) modules are available:

* ra_dav : Module for accessing a repository via WebDAV (DeltaV) protocol.
  - handles 'http' scheme
  - handles 'https' scheme
* ra_svn : Module for accessing a repository using the svn network protocol.
  - handles 'svn' scheme
* ra_local : Module for accessing a repository on local disk.
  - handles 'file' scheme

OS: RedHat Enterprise Linux 4 Update 4 (x86_64)

Apache 2.2.3

Neon 0.26.1

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

Re: Committing Locked File fails over ra_dav

Posted by Brian Buesker <bb...@qualcomm.com>.
Brian Buesker wrote:
> I have been doing some testing with SVN 1.4.2 with Apache 2.2.3 and 
> Neon 0.26.1 (I tried 0.26.2 as well), and cannot seem to get locking 
> working. I can lock and unlock files fine, but I get the errors when 
> attempting to commit, as shown in this excerpt from running 
> lock_tests.py:
>
> PASS:  lock_tests.py 1: lock a file and verify that it's locked
> subversion/libsvn_client/commit.c:865: (apr_err=160037)
> svn: Commit failed (details follow):
> subversion/libsvn_ra_dav/util.c:827: (apr_err=160037)
> svn: MERGE request failed on '/svn-test-work/repositories/lock_tests-2/A'
> subversion/libsvn_ra_dav/util.c:389: (apr_err=160037)
> svn: Cannot verify lock on path '/A/mu'; no matching lock-token available
> FAIL:  lock_tests.py 2: commit a file and keep lock
> subversion/libsvn_client/commit.c:865: (apr_err=160037)
> svn: Commit failed (details follow):
> subversion/libsvn_ra_dav/util.c:827: (apr_err=160037)
> svn: MERGE request failed on '/svn-test-work/repositories/lock_tests-3/A'
> subversion/libsvn_ra_dav/util.c:389: (apr_err=160037)
> svn: Cannot verify lock on path '/A/mu'; no matching lock-token available
> FAIL:  lock_tests.py 3: commit a file and release lock
> subversion/libsvn_client/commit.c:865: (apr_err=160037)
> svn: Commit failed (details follow):
> subversion/libsvn_ra_dav/util.c:827: (apr_err=160037)
> svn: MERGE request failed on '/svn-test-work/repositories/lock_tests-4/A'
> subversion/libsvn_ra_dav/util.c:389: (apr_err=160037)
> svn: Cannot verify lock on path '/A/mu'; no matching lock-token available
> FAIL:  lock_tests.py 4: commit a locked file with a prop change
> PASS:  lock_tests.py 5: lock a file and verify lock breaking behavior
> PASS:  lock_tests.py 6: lock a file and verify lock stealing behavior
> PASS:  lock_tests.py 7: examine the fields of a lockfile for correctness
> PASS:  lock_tests.py 8: verify behavior when a lock in a wc is defunct
> PASS:  lock_tests.py 9: verify svn:needs-lock read-only behavior
> PASS:  lock_tests.py 10: verify svn:needs-lock behavior with defunct lock
>
> When looking at the apache error log, it shows the following:
>
> [Tue Nov 21 16:09:13 2006] [error] [client 10.45.214.219] Could not 
> MERGE resource 
> "/svn-test-work/repositories/lock_tests-2/!svn/act/626333ce-b67c-4070-b9c2-aad4a1678cb4" 
> into "/svn-test-work/repositories/lock_tests-2/A".  [409, #0]
> [Tue Nov 21 16:09:13 2006] [error] [client 10.45.214.219] An error 
> occurred while committing the transaction.  [409, #160037]
> [Tue Nov 21 16:09:13 2006] [error] [client 10.45.214.219] Cannot 
> verify lock on path '/A/mu'; no matching lock-token available  [409, 
> #160037]
I tried falling back to Apache 2.0.59, and with that version (plus the 
bundled APR), all the lock tests pass. The apache configs I am using are 
obviously slightly different between the two versions, but I have not 
found any substantial differences which should be causing a failure like 
this.

Do others have locking working with Apache 2.2.3 and APR 1.2.7 on Linux?

Thanks,
Brian

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

Re: Committing Locked File fails over ra_dav

Posted by Brian Buesker <bb...@qualcomm.com>.
Brian Buesker wrote:
> I apologize for resurrecting a very old thread, but I wanted to reply to
> this for the sake of the archives.
>
> Brian Buesker wrote:
>   
>> I have been doing some testing with SVN 1.4.2 with Apache 2.2.3 and
>> Neon 0.26.1 (I tried 0.26.2 as well), and cannot seem to get locking
>> working. I can lock and unlock files fine, but I get the errors when
>> attempting to commit, as shown in this excerpt from running
>> lock_tests.py:
>>
>> PASS:  lock_tests.py 1: lock a file and verify that it's locked
>> subversion/libsvn_client/commit.c:865: (apr_err=160037)
>> svn: Commit failed (details follow):
>> subversion/libsvn_ra_dav/util.c:827: (apr_err=160037)
>> svn: MERGE request failed on '/svn-test-work/repositories/lock_tests-2/A'
>> subversion/libsvn_ra_dav/util.c:389: (apr_err=160037)
>> svn: Cannot verify lock on path '/A/mu'; no matching lock-token available
>>     
> I didn't debug this problem much back then, but I came back to it this
> week and dug into it a little more. I believe the problem is due to
> symbols being included in the httpd executable which should not have
> been. A couple of the apr_bucket_types seem to be defined in the BSS
> segment, which causes the APR_BUCKET_IS_EOS macro to fail even on an EOS
> bucket.
>
> % nm /opt/crad-infratools/sbin/httpd  | grep apr_bucket_type
> 0000000000652100 B apr_bucket_type_eos
> 00000000006520c0 B apr_bucket_type_file
> 0000000000652140 B apr_bucket_type_flush
>
> When I look at the httpd that is delivered with RHEL5, it looks correct:
>
> % nm /usr/lib/debug/usr/sbin/httpd.debug  | grep apr_bucket_type
>                  U apr_bucket_type_eos
>                  U apr_bucket_type_file
>                  U apr_bucket_type_flush
>
> Does anybody have an idea of what might be causing these additional
> symbols to get defined in my build? One difference between RHEL5 and my
> build is that RedHat builds APR and APR-UTIL separately, whereas I build
> them directly out of the httpd source. I would think this should work.
> Has anybody run into this and found a workaround?
>   
Turns out that by building apache with --enable-pie, the symbols were not included in the BSS and thus committing a locked file over ra_dav worked just fine.

Brian


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

Re: Committing Locked File fails over ra_dav

Posted by Brian Buesker <bb...@qualcomm.com>.
I apologize for resurrecting a very old thread, but I wanted to reply to 
this for the sake of the archives.

Brian Buesker wrote:
> I have been doing some testing with SVN 1.4.2 with Apache 2.2.3 and 
> Neon 0.26.1 (I tried 0.26.2 as well), and cannot seem to get locking 
> working. I can lock and unlock files fine, but I get the errors when 
> attempting to commit, as shown in this excerpt from running 
> lock_tests.py:
>
> PASS:  lock_tests.py 1: lock a file and verify that it's locked
> subversion/libsvn_client/commit.c:865: (apr_err=160037)
> svn: Commit failed (details follow):
> subversion/libsvn_ra_dav/util.c:827: (apr_err=160037)
> svn: MERGE request failed on '/svn-test-work/repositories/lock_tests-2/A'
> subversion/libsvn_ra_dav/util.c:389: (apr_err=160037)
> svn: Cannot verify lock on path '/A/mu'; no matching lock-token available
I didn't debug this problem much back then, but I came back to it this 
week and dug into it a little more. I believe the problem is due to 
symbols being included in the httpd executable which should not have 
been. A couple of the apr_bucket_types seem to be defined in the BSS 
segment, which causes the APR_BUCKET_IS_EOS macro to fail even on an EOS 
bucket.

% nm /opt/crad-infratools/sbin/httpd  | grep apr_bucket_type
0000000000652100 B apr_bucket_type_eos
00000000006520c0 B apr_bucket_type_file
0000000000652140 B apr_bucket_type_flush

When I look at the httpd that is delivered with RHEL5, it looks correct:

% nm /usr/lib/debug/usr/sbin/httpd.debug  | grep apr_bucket_type
                 U apr_bucket_type_eos
                 U apr_bucket_type_file
                 U apr_bucket_type_flush

Does anybody have an idea of what might be causing these additional 
symbols to get defined in my build? One difference between RHEL5 and my 
build is that RedHat builds APR and APR-UTIL separately, whereas I build 
them directly out of the httpd source. I would think this should work. 
Has anybody run into this and found a workaround?

Thanks,
Brian

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