[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: svn commit: r38105 - trunk/subversion/libsvn_ra_serf

From: Paul Burba <ptburba_at_gmail.com>
Date: Thu, 15 Apr 2010 10:21:22 -0400

On Sat, Apr 10, 2010 at 5:11 PM, Stephen Butler <sbutler_at_elego.de> wrote:
> Hi folks,
>
> This email was filed as issue 3532 "svn update' via ra_serf of locked
> file in locally deleted dir triggers assert and breaks WC".  (I've been
> looking into 3525 "Locked file which is scheduled for delete causes
> tree conflict".)
>
> OMM (svn-trunk, serf-0.3.1, on OS X 10.6.3) the test mentioned
> below, update_tests.py 57, fails normally without raising the
> assertion.

Hi Stephen,

Are you sure it is failing "normally"? Could you post your test run
output for both ra_neon and ra_serf?

I don't get the assert anymore, but the test fails in a different way
with ra_serf vs. ra_neon (see attachments). Also, the WC in the
ra_serf test is still broken once the test completes. This time
however, svn cleanup doesn't assert, but gives this error:

C:\SVN\src-trunk-2\Release\subversion\tests\cmdline\svn-test-work\working_copies\update_tests-57>svn
st
! L .
! L A
..\..\..\subversion\svn\status-cmd.c:289: (apr_err=155037)
..\..\..\subversion\svn\util.c:960: (apr_err=155037)
..\..\..\subversion\libsvn_client\status.c:491: (apr_err=155037)
..\..\..\subversion\libsvn_wc\status.c:2298: (apr_err=155037)
..\..\..\subversion\libsvn_wc\status.c:1116: (apr_err=155037)
..\..\..\subversion\libsvn_wc\status.c:847: (apr_err=155037)
..\..\..\subversion\libsvn_wc\status.c:1095: (apr_err=155037)
..\..\..\subversion\libsvn_wc\entries.c:1306: (apr_err=155037)
..\..\..\subversion\libsvn_wc\entries.c:627: (apr_err=155037)
..\..\..\subversion\libsvn_wc\entries.c:627: (apr_err=155037)
..\..\..\subversion\libsvn_wc\wc_db.c:6182: (apr_err=155037)
..\..\..\subversion\libsvn_wc\wc_db.c:1077: (apr_err=155037)
..\..\..\subversion\libsvn_wc\wc_db.c:443: (apr_err=155037)
..\..\..\subversion\libsvn_wc\wc_db.c:341: (apr_err=155037)
svn: Previous operation was interrupted; run 'svn cleanup'

C:\SVN\src-trunk-2\Release\subversion\tests\cmdline\svn-test-work\working_copies\update_tests-57>svn
cleanup
..\..\..\subversion\svn\cleanup-cmd.c:67: (apr_err=720002)
..\..\..\subversion\libsvn_client\cleanup.c:58: (apr_err=720002)
..\..\..\subversion\libsvn_wc\log.c:1209: (apr_err=720002)
..\..\..\subversion\libsvn_wc\log.c:1170: (apr_err=720002)
..\..\..\subversion\libsvn_wc\log.c:1170: (apr_err=720002)
..\..\..\subversion\libsvn_wc\log.c:1170: (apr_err=720002)
..\..\..\subversion\libsvn_wc\log.c:1146: (apr_err=720002)
..\..\..\subversion\libsvn_wc\workqueue.c:2294: (apr_err=720002)
..\..\..\subversion\libsvn_wc\workqueue.c:89: (apr_err=720002)
..\..\..\subversion\libsvn_wc\workqueue.c:89: (apr_err=720002)
..\..\..\subversion\libsvn_subr\io.c:1508: (apr_err=720002)
svn: Can't set file
'C:\SVN\src-trunk-2\Release\subversion\tests\cmdline\svn-test-work\working_copies\update_tests-57\A\B\E\alpha'
read-write: The system cannot
 find the file specified.

Paul

> Can anyone still reproduce this issue?
>
> Thanks,
> Steve
>
> Begin forwarded message:
>
>> From: Paul Burba <ptburba_at_gmail.com>
>> Date: November 6, 2009 14:45:12 GMT
>> To: dev_at_subversion.tigris.org
>> Cc: Bert Huijben <rhuijben_at_sharpsvn.net>
>> Subject: Re: svn commit: r38105 - trunk/subversion/libsvn_ra_serf
>>
>> On Fri, Jun 19, 2009 at 3:08 PM, Bert Huijben <rhuijben_at_sharpsvn.net> wrote:
>>> Author: rhuijben
>>> Date: Fri Jun 19 13:08:39 2009
>>> New Revision: 38105
>>>
>>> Log:
>>> Make all response handlers in svn_ra_serf return svn_error_t* for
>>> a much cleaner error handling. This fixes issue #3375, but some further
>>> refactoring would be welcome.
>>>
>>> * subversion/libsvn_ra_serf/commit.c
>>>  (handle_checkout): Updated for new handler prototype and replace abort()
>>>    with normal SVN_ERR_MALFUNCTION()
>>>  (post_response_handler): Updated for changed prototype.
>>>
>>> * subversion/libsvn_ra_serf/locks.c
>>>  (handle_lock): Updated for new prototype. Return errors where possible.
>>>
>>> * subversion/libsvn_ra_serf/options.c
>>>  (options_response_handler): Updated for new prototype.
>>>
>>> * subversion/libsvn_ra_serf/ra_serf.h
>>>  (svn_ra_serf__response_handler_t): Updated to return svn_error_t * and
>>>    remove the temporary session argument.
>>>  (svn_ra_serf__handle_status_only, svn_ra_serf__handle_discard_body,
>>>   svn_ra_serf__handle_server_error, svn_ra_serf__handle_multistatus_only,
>>>   svn_ra_serf__handle_xml_parser): Updated to follow new prototype.
>>>  (SVN_SESSION_ERR): Removed macro.
>>>
>>> * subversion/libsvn_ra_serf/update.c
>>>  (error_fetch): Return svn_error_t *
>>>  (handle_fetch, handle_stream): Update error handling for new prototype.
>>>
>>> * subversion/libsvn_ra_serf/util.c
>>>  (svn_ra_serf__handle_discard_body,
>>>   svn_ra_serf__handle_status_only,
>>>   svn_ra_serf__handle_multistatus_only):
>>>    Implement new prototype.
>>>  (svn_ra_serf__handle_xml_parser):
>>>    Implement new prototype. Return errors instead of adding them to
>>>    the session. And remove an obsolete test.
>>>  (svn_ra_serf__handle_server_error):
>>>    Updated for new prototype. Clear ignored errors.
>>>  (handle_response):
>>>    Use apr_status_t handler for discarding data, clear ignored
>>>    authentication errors. Compose session errors instead of overwriting
>>>    existing values. Add specific handling for serfs error handling.
>>>
>>> Modified:
>>>   trunk/subversion/libsvn_ra_serf/commit.c
>>>   trunk/subversion/libsvn_ra_serf/locks.c
>>>   trunk/subversion/libsvn_ra_serf/options.c
>>>   trunk/subversion/libsvn_ra_serf/ra_serf.h
>>>   trunk/subversion/libsvn_ra_serf/update.c
>>>   trunk/subversion/libsvn_ra_serf/util.c
>>
>> Hi Bert,
>>
>> Just an fyi:
>>
>> In addition to the error handling problem I already fixed in r40377,
>> is seems this change is also responsible for triggering an assert in
>> update_tests.py 57 'verify update of deleted locked files'.  This test
>> was not added until after your change, but on a hunch I checked if the
>> test would pass with ra_serf back to r38104.  It does, and then fails
>> with the introduction of r38105.
>>
>> The test is marked as XFail so assert has gone unnoticed.  I've
>> attached the test run output for the test using ra_neon, where it
>> fails "as expected" and from ra_serf where the assert occurs.
>>
>> This assert can quickly be replicated from the command line by locking
>> a file, deleting the files containing directory and the updating.
>>
>> I haven't yet been able to figure out what abour r38105 is causing
>> this.  I'm out of the office today and will look at it more on Monday,
>> but in the meantime if you have anything to add...
>>
>> Thanks,
>>
>> Paul
>>
>>
>> Paul
>>
>> ------------------------------------------------------
>> http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=2415110
>
> Stephen Butler | Software Developer
> elego Software Solutions GmbH
> Gustav-Meyer-Allee 25 | 13355 Berlin | Germany
> fon: +49 30 2345 8696 | mobile: +49 163 25 45 015
> fax: +49 30 2345 8695 | http://www.elegosoft.com
> Geschäftsführer: Olaf Wagner | Sitz der Gesellschaft: Berlin
> Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: DE163214194
>
>
>
>

Received on 2010-04-15 16:21:49 CEST

This is an archived mail posted to the Subversion Dev mailing list.