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

Re: Permissions need for deletion

From: Ivan Zhakov <ivan_at_visualsvn.com>
Date: Wed, 31 Aug 2016 15:14:10 +0300

On 31 August 2016 at 14:54, Vacelet, Manuel <manuel.vacelet_at_enalean.com> wrote:
> On Wed, Aug 31, 2016 at 12:37 PM, Ivan Zhakov <ivan_at_visualsvn.com> wrote:
>>
>> On 31 August 2016 at 13:28, Vacelet, Manuel <manuel.vacelet_at_enalean.com>
>> wrote:
>> > On Wed, Aug 31, 2016 at 12:19 PM, Ivan Zhakov <ivan_at_visualsvn.com>
>> > wrote:
>> >>
>> >>
>> >> > - Why this behaviour changed between 1.6 and newer ?
>> >> It was bug before Subversion 1.7.9. The problem was that client tried
>> >> to read some information from repository root when performing remove
>> >> folder. See SVN-4332 for more details [1]
>> >>
>> >> [1] https://issues.apache.org/jira/browse/SVN-4332
>> >>
>> >
>> > I did read that but in my tests, when server is 1.6, whatever version of
>> > client (1.6, 1.7, 1.8, 1.9), cannot remove.
>> >
>> > When server is 1.8, behaviour change depending on client version so it
>> > might
>> > be related to this issue (even if in all cases, the user has access to
>> > the
>> > root).
>> >
>> It's could be related to HTTPv2 protocol introduced in Subversion 1.7.
>> Could you provide requests log with svn server 1.6?
>>
>> [1] https://subversion.apache.org/docs/release-notes/1.7.html#httpv2
>>
>
> Here we go, on client side, svn, version 1.9.3 (r1718519)
>
> Server is svn, version 1.6.11 (r934486)
> 172.17.42.1 - - [31/Aug/2016:11:52:37 +0000] "OPTIONS /svntest/fakerepo/tags
> HTTP/1.1" 401 501
> 172.17.42.1 - alice [31/Aug/2016:11:52:37 +0000] "OPTIONS
> /svntest/fakerepo/tags HTTP/1.1" 200 196
> 172.17.42.1 - alice [31/Aug/2016:11:52:37 +0000] "OPTIONS
> /svntest/fakerepo/tags HTTP/1.1" 200 97
> 172.17.42.1 - alice [31/Aug/2016:11:52:37 +0000] "PROPFIND
> /svntest/fakerepo/tags HTTP/1.1" 207 700
> 172.17.42.1 - alice [31/Aug/2016:11:52:37 +0000] "PROPFIND
> /svntest/fakerepo/tags HTTP/1.1" 207 325
> 172.17.42.1 - alice [31/Aug/2016:11:52:40 +0000] "MKACTIVITY
> /svntest/fakerepo/!svn/act/8267278f-ed0c-42db-a6c8-65f010a954c9 HTTP/1.1"
> 201 337
> 172.17.42.1 - alice [31/Aug/2016:11:52:40 +0000] "PROPFIND /svntest/fakerepo
> HTTP/1.1" 207 400
> 172.17.42.1 - alice [31/Aug/2016:11:52:40 +0000] "CHECKOUT
> /svntest/fakerepo/!svn/vcc/default HTTP/1.1" 201 352
> 172.17.42.1 - alice [31/Aug/2016:11:52:40 +0000] "PROPPATCH
> /svntest/fakerepo/!svn/wbl/8267278f-ed0c-42db-a6c8-65f010a954c9/15 HTTP/1.1"
> 207 469
> 172.17.42.1 - alice [31/Aug/2016:11:52:40 +0000] "CHECKOUT
> /svntest/fakerepo/!svn/ver/15 HTTP/1.1" 403 330
^^^ Here is the problem. Subversion tries to CHECKOUT (DAV HTTP
method) parent of resource when using HTTPv1 protocol, but it should
not. I was able to reproduce this problem locally. As far I see we
don't have test for this case.

> 172.17.42.1 - alice [31/Aug/2016:11:52:40 +0000] "DELETE
> /svntest/fakerepo/!svn/act/8267278f-ed0c-42db-a6c8-65f010a954c9 HTTP/1.1"
> 204 -
>
> Server is svn, version 1.8.16 (r1740329):
> 172.17.42.1 - - [31/Aug/2016:11:43:53 +0000] "OPTIONS /svntest/fakerepo
> HTTP/1.1" 401 501
> 172.17.42.1 - alice [31/Aug/2016:11:43:53 +0000] "OPTIONS /svntest/fakerepo
> HTTP/1.1" 200 196
> 172.17.42.1 - alice [31/Aug/2016:11:43:53 +0000] "OPTIONS /svntest/fakerepo
> HTTP/1.1" 200 97
> 172.17.42.1 - alice [31/Aug/2016:11:43:53 +0000] "POST
> /svntest/fakerepo/!svn/me HTTP/1.1" 201 -
> 172.17.42.1 - alice [31/Aug/2016:11:43:53 +0000] "DELETE
> /svntest/fakerepo/!svn/txr/13-g/tags HTTP/1.1" 204 -
> 172.17.42.1 - alice [31/Aug/2016:11:43:53 +0000] "MERGE /svntest/fakerepo
> HTTP/1.1" 200 756
>
As you see Subversion perform DELETE directly, without CHECKOUT when
using HTTPv2 protocol. That's expected behavior.

-- 
Ivan Zhakov
Received on 2016-08-31 14:14:40 CEST

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