Re: E175002: Server sent unexpected return value (500 Internal Server Error) in response to POST request for '/repos/svntest/!svn/me'

2012-01-05 Thread Pierre Berthier
On Thu, 22 Dec 2011 22:58:44 +0100
Pierre Berthier  wrote:

> Hi
> 
> after upgrading a SVN server from 1.6 to 1.7.2 (r1207936), I am
> getting this error message when committing:
> 
> svn: E175002: Commit failed (details follow):
> svn: E175002: Server sent unexpected return value (500 Internal Server
> Error) in response to POST request for '/repos/svntest/!svn/me'
> 
> The corresponding error on the server is:
> (20014)Internal error: Can't open file '/srv/svn/repos/!svn/format':
> No such file or directory
> 
> My apache configuration on the server includes:
> 
> 
>   DAV svn
>   SVNParentPath /srv/svn/repos/
>   SVNListParentPath on
> ...
> 
> 

(Thanks to Daniel Shahaf for his advice in an earlier email)

I have now reduced my configuration to two variations, the following
works fine:


  DAV svn
  SVNParentPath /srv/svn/repos/
  SVNListParentPath on
  AuthzSVNAccessFile /etc/apache2/svnaccess.conf
  AuthzSVNAnonymous Off
  AuthzSVNAuthoritative On
  SVNPathAuthz On

  AuthType Basic
  AuthName "Login required"
  AuthBasicProvider ldap
  AuthLDAPURL
  ldap://..
  Require valid-user


With some repositories in /srv/svn/repos/:
$ ls -l /srv/svn/repos/
drwxr-xr-x 6 wwwrun www 4096 2011-12-22 21:14 svntest
drwxr-xr-x 6 wwwrun www 4096 2011-12-22 22:05 svntest2

and the content of /etc/apache2/svnaccess.conf:
$ cat /etc/apache2/svnaccess.conf
[/]
* = rw


Now the following variation does not work:  I wanted to disable
path-based authentication in general, and enable it on a per-repository
basis, so I have changed the above config to this (only differences are
the SVNPathAuthz parameters):


  DAV svn
  SVNParentPath /srv/svn/repos/
  SVNListParentPath on
  AuthzSVNAccessFile /etc/apache2/svnaccess.conf
  AuthzSVNAnonymous Off
  AuthzSVNAuthoritative On
  SVNPathAuthz Off

  AuthType Basic
  AuthName "Login required"
  AuthBasicProvider ldap
  AuthLDAPURL
  ldap://..
  Require valid-user



  SVNPathAuthz on



Now this does not work and I get the error messages I have previously
reported.  If I comment out the "Location /repos/svntest/" section, it
works again.

I am now wondering if that should be considered a bug at all, or is
this expected behaviour?  My rational in setting SVNPathAuthz Off
globally was to save server resources as explained in the svn book
section:
http://svnbook.red-bean.com/en/1.7/svn-book.html#svn.serverconfig.httpd.authz.pathauthzoff

and I thought enabling it again per repository only if needed would at
the end be optimal.  It used to work fine with 1.6 (meaning: without
errors), and this problem started with 1.7 so that hints to some kind
of regression (?).  

Cheers
Pierre


-- 

~
Pierre Berthier
CIO / Leiter IT
Institute of Neuroinformatics, 55.G.70
University of Zurich and ETH Zurich
Winterthurerstrasse 190, CH-8057 Zurich, Switzerland
Tel: +41 (0)44 63 530 17
Fax: +41 (0)44 63 530 53



signature.asc
Description: PGP signature


Re: E175002: Server sent unexpected return value (500 Internal Server Error) in response to POST request for '/repos/svntest/!svn/me'

2012-01-05 Thread Philip Martin
Pierre Berthier  writes:

> 
>   DAV svn
>   SVNParentPath /srv/svn/repos/
>   SVNListParentPath on
>   AuthzSVNAccessFile /etc/apache2/svnaccess.conf
>   AuthzSVNAnonymous Off
>   AuthzSVNAuthoritative On
>   SVNPathAuthz Off
>
>   AuthType Basic
>   AuthName "Login required"
>   AuthBasicProvider ldap
>   AuthLDAPURL
>   ldap://..
>   Require valid-user
> 
>
> 
>   SVNPathAuthz on
> 

Wow! A nested Location without "DAV svn" but with a Subversion
directive.  I can see that we might be able to make that work, but I'm
not sure that we ever did.  Does that work in 1.6?

You may be able to work around the problem by making /repos/svntest into
a self-contained "DAV svn" Location by adding SVNPath,
AuthzSVNAccessFile, etc.

If this was supported by 1.6 and the problem only occurs with POST
requests then you may be able to work around it by disabling the v2
protocol.

-- 
Philip


svn cannot read file io error

2012-01-05 Thread 馬小布
 Hi, all :


Today i run checkout command  via Windows svn client from the SVN Server,
it  display these error message:

xxx
xxx
Error : REPORT of xxx: could not read chunk size: connection
Error : was closed by server .

Then i run the following command to see the error log:

root@test ~: tailf /var/log/httpd/error_log
xxx
xxx
xx  Cannot read file '/opt/svn/repos/xxx/db/revs/3/3820": input/output
error

I  find that file is too large,it's size is 1G


By the way, the svn server is CentOS 5.6 i386 and svn version is 1.6.11

I googled for a long time , but have no result for it .


What  maybe causes it ? Would anyone can give me a hand?


Thanks .


Re: E175002: Server sent unexpected return value (500 Internal Server Error) in response to POST request for '/repos/svntest/!svn/me'

2012-01-05 Thread Daniel Shahaf
Pierre Berthier wrote on Thu, Jan 05, 2012 at 10:12:56 +0100:
> I have now reduced my configuration to two variations, the following
> works fine:
> 

(Thanks for the additional details, it's _much_ easier to respond
usefully given them.)

> I am now wondering if that should be considered a bug at all, or is
> this expected behaviour?  My rational in setting SVNPathAuthz Off
> globally was to save server resources as explained in the svn book
> section:
> http://svnbook.red-bean.com/en/1.7/svn-book.html#svn.serverconfig.httpd.authz.pathauthzoff
> 
> and I thought enabling it again per repository only if needed would at
> the end be optimal. [...]

If you use 'SVNPathAuthz short_circuit" and supply an empty (0-byte, or
"[/]\n *=rw") authz file for repositories that don't need authz, I think
the effect on server resources will be minimal.

(The code will still try to authz every path, but the overhead of
reading/parsing/applying the authz file will be small.)

Though, in general, agreed with Philip here --- it'd be nice if
per-repository httpd.conf settings in SVNParentPath configurations
Just Worked.


How to control where to put .subversion directory

2012-01-05 Thread Phil
Not sure if this is even possible but subversion place the ".subversion"
directory based on your unix environment variable called $HOME.  Well, on
one server, we have specifically specify $HOME to a location that could be
deleted in the future.  If that's the case, then there goes the
".subversion" information.  So, can the ".subversion" directory be backed
up and manually move it somewhere else?  I'm assuming not since the
subversion program is relying on the $HOME variable.  If that directory
every got lost, what's the best approach on recovering it so that
subversion can still function as normal.  Thanks for your inputs.

-Phillip


Re: How to control where to put .subversion directory

2012-01-05 Thread Ryan Schmidt

On Jan 5, 2012, at 11:49, Phil wrote:

> Not sure if this is even possible but subversion place the ".subversion" 
> directory based on your unix environment variable called $HOME.  Well, on one 
> server, we have specifically specify $HOME to a location that could be 
> deleted in the future.  If that's the case, then there goes the ".subversion" 
> information.  So, can the ".subversion" directory be backed up and manually 
> move it somewhere else?  I'm assuming not since the subversion program is 
> relying on the $HOME variable.  If that directory every got lost, what's the 
> best approach on recovering it so that subversion can still function as 
> normal.  Thanks for your inputs.

The .subversion folder only contains your settings. If it's missing, Subversion 
will create a new one from its defaults.

You can specify an alternate location for this directory by using the 
--config-dir argument. You'd have to specify it every time you run the svn 
command.




Re: How to control where to put .subversion directory

2012-01-05 Thread Ed
On Thu, Jan 5, 2012 at 10:49 AM, Phil  wrote:
> Not sure if this is even possible but subversion place the ".subversion"
> directory based on your unix environment variable called $HOME.  Well, on
> one server, we have specifically specify $HOME to a location that could be
> deleted in the future.  If that's the case, then there goes the
> ".subversion" information.  So, can the ".subversion" directory be backed up
> and manually move it somewhere else?  I'm assuming not since the subversion
> program is relying on the $HOME variable.  If that directory every got lost,
> what's the best approach on recovering it so that subversion can still
> function as normal.  Thanks for your inputs.
>
> -Phillip


Keep your .subversion in a safe place and make $HOME/.subversion a
link to it (ln -s) - if $HOME goes away you only loose the link. This
will save your settings, but more importantly your credentials to any
repos you access (proxy settings too).

add this link to the other ones you will need (like .ssh) when you
rebuild your $HOME - on your workstation. There is also a system wide
config file in /etc, but it would apply to all users of the system.


Re: How to control where to put .subversion directory

2012-01-05 Thread Phil
Thank you Ed and Ryan.  You provided me some ideas around this topic.  I
appreciated it.

On Thu, Jan 5, 2012 at 3:06 PM, Ed  wrote:

>  On Thu, Jan 5, 2012 at 10:49 AM, Phil  wrote:
> > Not sure if this is even possible but subversion place the ".subversion"
> > directory based on your unix environment variable called $HOME.  Well, on
> > one server, we have specifically specify $HOME to a location that could
> be
> > deleted in the future.  If that's the case, then there goes the
> > ".subversion" information.  So, can the ".subversion" directory be
> backed up
> > and manually move it somewhere else?  I'm assuming not since the
> subversion
> > program is relying on the $HOME variable.  If that directory every got
> lost,
> > what's the best approach on recovering it so that subversion can still
> > function as normal.  Thanks for your inputs.
> >
> > -Phillip
>
>
> Keep your .subversion in a safe place and make $HOME/.subversion a
> link to it (ln -s) - if $HOME goes away you only loose the link. This
> will save your settings, but more importantly your credentials to any
> repos you access (proxy settings too).
>
> add this link to the other ones you will need (like .ssh) when you
> rebuild your $HOME - on your workstation. There is also a system wide
> config file in /etc, but it would apply to all users of the system.
>


LDAP authz aliases with svn+ssh

2012-01-05 Thread Owen Loy
Hi there,

I'm wondering if my desired setup is possible:

1. Using svn+ssh
2. Using pam_ldap to handle SSH access
3. Using authz-db to handle ACL (against LDAP accounts)

I'm running into a problem with #3. My current test setup is as follows:

svnserve.conf:
-
[general]
authz-db = authz
...

authz:
-
[aliases]
svnaccess = CN=svngroup,CN=groups,DC=example,DC=com

[/]
&svnaccess = rw

With this setup, SSH is no problem (file permissions are correct, LDAP
works fine, etc...), but SVN returns Not Authorized. To debug, I tried the
following scenarios:

authz with "local" user (works):

[/]
user1 = rw


authz with LDAP alias for specific user (does not work):

[aliases]
svnaccess = CN=user1,CN=users,DC=example,DC=com

[/]
&svnaccess = rw

Has anyone run this sort of setup successfully, or is able to determine
what I'm doing wrong? I'm 99% sure the DNs are correct (in that they work
for SSH purposes, and other non-related issues), but don't seem to work
within the authz file, even though the docs suggest it should.

Thanks!


Re: LDAP authz aliases with svn+ssh

2012-01-05 Thread Patrick Burma
You might try this to sync your authz file to an ldap group, it will write
in the entries for you, nice way to avoid issues with syntax perhaps?

http://www.thoughtspark.org/node/26

Never used it myself, meant to try it, but I've heard good things.

-Pat

On Thu, Jan 5, 2012 at 3:07 PM, Owen Loy  wrote:

> Hi there,
>
> I'm wondering if my desired setup is possible:
>
> 1. Using svn+ssh
> 2. Using pam_ldap to handle SSH access
> 3. Using authz-db to handle ACL (against LDAP accounts)
>
> I'm running into a problem with #3. My current test setup is as follows:
>
> svnserve.conf:
> -
> [general]
> authz-db = authz
> ...
>
> authz:
> -
> [aliases]
> svnaccess = CN=svngroup,CN=groups,DC=example,DC=com
>
> [/]
> &svnaccess = rw
>
> With this setup, SSH is no problem (file permissions are correct, LDAP
> works fine, etc...), but SVN returns Not Authorized. To debug, I tried the
> following scenarios:
>
> authz with "local" user (works):
> 
> [/]
> user1 = rw
>
>
> authz with LDAP alias for specific user (does not work):
> 
> [aliases]
> svnaccess = CN=user1,CN=users,DC=example,DC=com
>
> [/]
> &svnaccess = rw
>
> Has anyone run this sort of setup successfully, or is able to determine
> what I'm doing wrong? I'm 99% sure the DNs are correct (in that they work
> for SSH purposes, and other non-related issues), but don't seem to work
> within the authz file, even though the docs suggest it should.
>
> Thanks!
>