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

mod_dav_svn: httpd hangs when using PerlAuthenHandler

From: Thorsten Schöning <tschoening_at_am-soft.de>
Date: Tue, 11 Aug 2015 23:51:24 +0200

Hi all,

I'm serving some repos using mod_dav_svn and svnserve, but don't want
to maintain two configuration files with user accounts. I therefore
had a look into PerlAuthenHandler to parse the passwd file of svnserve
on my own and use that. During some tests I encountered the problem
that most of the checkouts didn't finish properly, instead the process
just seemed to hang. In the logs of httpd with a high trace level I
could see that some RequireAny status wasn't satisfied, so there
seemed to be some problem with authorization, but the logs of my
PerlAuthenHandler looked OK: It got called several times, authorized
the user and succeeded as expected. svn client was often downloading
data during the checkout as well, so it at least partly succeeded. I
had the feeling that httpd was stuck somewhere between recognizing
that authorization is needed and calling my PerlAuthenHandler...

After hours of testing and debugging I think I found the problem: The
number of Perl interpreters configured for the VHOST I use. Using the
default settings[1] the problem occurred very often, but not always,
using a configuration of only 1 interpreter to use at any time the
problem occurred always and configuring 10 interpreters the problem
didn't occur ever. I don't know why this happens because the VM I've
tested has only 2 CPUs and can't process more than two things in
parallel at all, so the default number of Perl interpreters with 3
should be more than enough. But for some reason it isn't...

So my question is:

How does SVN decide how many requests to issue in parallel? I have
the feeling that I need to configure as much Perl interpreters as the
highest number of concurrent requests any svn client may use. Is 10 a
reasonable high number? Does the number e.g. depend on many small
files in a repo directory to checkout and can't be predicted at all?

Or am I totally wrong in my observation and you have some other idea
about the problem?

Thanks!

[1] https://perl.apache.org/docs/2.0/user/config/config.html#C_PerlInterpStart_

Mit freundlichen Grüßen,

Thorsten Schöning

-- 
Thorsten Schöning       E-Mail: Thorsten.Schoening_at_AM-SoFT.de
AM-SoFT IT-Systeme      http://www.AM-SoFT.de/
Telefon...........05151-  9468- 55
Fax...............05151-  9468- 88
Mobil..............0178-8 9468- 04
AM-SoFT GmbH IT-Systeme, Brandenburger Str. 7c, 31789 Hameln
AG Hannover HRB 207 694 - Geschäftsführer: Andreas Muchow
Received on 2015-08-11 23:51:40 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.