subversion-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Thorsten Schöning <tschoen...@am-soft.de>
Subject mod_dav_svn: httpd hangs when using PerlAuthenHandler
Date Tue, 11 Aug 2015 21:51:24 GMT
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@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


Mime
View raw message