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

Re: strange bug with propget/proplist/propedit via mod_dav_svn UPDATED

From: Sergey Kryzhny <sergey.kryzhny_at_gmail.com>
Date: Wed, 15 Apr 2009 13:03:32 +0300

Hi all!

2009/4/10 Sergey Kryzhny <sergey.kryzhny_at_gmail.com>

> Hi Ryan!
>
>
> 2009/4/9 Ryan Schmidt <subversion-2009a_at_ryandesign.com>
>
>
>> On Apr 9, 2009, at 05:19, Sergey Kryzhny wrote:
>>
>> I try to implement pre-revprop-change hook for change svn:log message and
>>> run into problem with access via apache mod_dav_svn.
>>> Everything work fine via EDITOR=nano svn propedit -r 16385 --revprop
>>> svn:log file:///mnt/svn/repositories/projects/
>>> I get back string like "fixin foo/bar JIRA-blah-blah" and can edit/set
>>> new message.
>>> But if I use EDITOR=nano svn propedit -r 16385 --revprop svn:log
>>> http://svn1.mycompany.org/projects/
>>> on same host or via internet / intranet I get empty response string.
>>> Same behavior for propget and proplist. Proplist does not return
>>> property list via dav.
>>>
>>> Tried different windows/linux client.
>>> Tried different versions of subversion: 1.4.4 via yum on Fedora7, 1.5.4
>>> via yum on Fedora 10, 1.6.0 build from sources on Fedora10, 1.4.6 on Ubuntu
>>> 8.04
>>> Tried FSFS and BDB repository.
>>> Tried Dump/Load repository and svnadmin upgrade repository.
>>>
>>> Very strange that for some repository revision it work normally for both
>>> file/dav access. -> so hooks are OK.
>>> Like for revision 12570 it work, for revision 16385 it dosen't work via
>>> dav.
>>>
>>> And most mistycal that if I rename my repository (on host local FS) from
>>> "projects" to some other name like "projects2" or "projects.orig" it start
>>> work via dav!!!!
>>> I even try to symlink directory "projects" to "projects2" - work on
>>> "projects2" and dosen't work on "projects" !!!
>>>
>>> Any ideas to resolve this strange bug?
>>>
>>
>> Perhaps there is some other Apache directive matching on the string
>> "projects" and interfering. Search your httpd.conf and any other files it
>> includes for the string "projects".
>>
>>
> Only one string in apache configs match projects:
> RedirectMatch "^/?$" "/projects/"
>
> I don't think this may be problem, with some revisions in svn repository
> propget works, with some don't work.
> If I use mod_proxy redirection from /projects to renamed "projects2"
> repository - forks fine.
>
> --
> --
> Best regards,
> Sergey
>
> So, after hours of trying and tweaking I found issue:

propget/propedit for specific revision, that has commit to not anonymous
read directory, silently return empty string.
I explicitly provide username and password to propget command, like:
svn propget --username sergkr --password secret -r 4 --revprop svn:log
http://svn1.exoplatform.org/test1/

For revision, that have commit to directories with anonymous read access it
return properties as expected.

I can propget values on host, serving subversion via command: EDITOR=mcedit
svn propedit -r 4 --revprop svn:log file:///mnt/svn/repositories/test1/, so
I know what properties are exist.

I think this is BUG - do not return "access denied" or "authentication
required" to client, or better ask for user credential, or best case is USE
provided via command line user credential.

How to reproduce this:
Use * Subversion <http://subversion.tigris.org/> version 1.5.4 (r33841). by
Fedora 10 x64 yum install*
(I tried subversion 1.6.1 from sources - same problem)
Create test1 repository
svnadmin create test1
add virtual host apache configuration for svn with LDAP user database
add to svnauthz.conf:
>>>>>
exo-dev=sergkr,root

[test1:/]
* = r
@exo-dev = r
@exo-dev = rw

[test1:/branch]
* =
@exo-dev = r
@exo-dev = rw
<<<<<<<

and make various svn co, svn ci
to "private" branch directory and other "public" directory in various
combination.

Via mod_dav_svn: svn propget --username sergkr --password secret -r 4
--revprop svn:log http://svn1.exoplatform.org/test1/
For revision there no commits to "private" /branch directory you can
successfully get these properties.
For revision there IS commits to "private" /branch directory you get empty
string as result. Silently!!!

Via file:// EDITOR=mcedit svn propget -r 4 --revprop svn:log
file:///mnt/svn/repositories/test1/
You get all properties.

P.S.
When I change svnauthz.conf for allow anonymous read of "branch".
>>>>>>>>>>>>
[test1:/branch]
* = r
@exo-dev = r
....
<<<<<<<<<<<<
I get properties instead of empty string.

-- 
--
Best regards,
Sergey
------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=1065&dsMessageId=1724779
To unsubscribe from this discussion, e-mail: [users-unsubscribe_at_subversion.tigris.org].
Received on 2009-04-15 12:05:28 CEST

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

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.