You are viewing a plain text version of this content. The canonical link for it is here.
Posted to mod_python-dev@quetz.apache.org by Graham Dumpleton <gr...@dscpl.com.au> on 2005/11/22 01:28:10 UTC
Re: 3.2b5 : mod_python doesn't handle properly signals like KILL,SEGV...
Michel Jouvin wrote ..
> Hi,
>
> I recently installed mod_python 3.2b5 on Apache 2.0.54. I am running with
> problems if httpd slave process segfaults or is killed. In this case,
> master process restart the max number of processes/threads. We are running
> Apache with the MPM worker (on Tru64 platform).
>
> This behaviour appears only if mod_python is loaded into Apache. this
> doesn't seem to be related to mod_python usage : this can happen if you
> load mod_python even if no URL is configured to use it. You can easily
> reproduce the problem by doing 'kill -KILL' of an Apache slave process.
>
> Is it a known issue ? Are they any workaround ?
What settings do you have in Apache config for:
<IfModule worker.c>
#StartServers 2
StartServers 1
MaxClients 150
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
MaxRequestsPerChild 0
</IfModule>
Can you then relate your problem to your configuration with actual
numbers?
Note that with "worker" configuration, there isn't generally a
MaxSpareServers or MinSpareServers setting as I understand, that is for
prefork only.
<IfModule prefork.c>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 150
MaxRequestsPerChild 0
</IfModule>
So not sure when you say that it creates maximum number of processes
what you are exactly talking about. I might expect it to create number
of processes as specified by StartServers.
Thus, can you please clarify.
Graham
Re: 3.2b5 : mod_python doesn't handle properly signals like
KILL,SEGV...
Posted by Michel Jouvin <jo...@lal.in2p3.fr>.
Graham,
Sorry for the ambiguity. With worker MPM, the max number of process is the
max number of threads divided by the number of thread per process. My
config is :
# worker MPM
# StartServers: initial number of server processes to start
# MaxClients: maximum number of simultaneous client connections
# MinSpareThreads: minimum number of worker threads which are kept spare
# MaxSpareThreads: maximum number of worker threads which are kept spare
# ThreadsPerChild: constant number of worker threads in each server process
<IfModule worker.c>
MaxClients 245
StartServers 1
MinSpareThreads 5
MaxSpareThreads 10
ThreadsPerChild 35
</IfModule>
In our case that means that one process can handle 35 requessts and
normally we have only one httpd slave running.
After mod_python receives a signal like KILL or SEGV (in fact anything
except TERM or HUP if I am right, you can test with kill command), I have
8 httpd slave processes and the following message in main Apache error log
file :
[error] server reached MaxClients setting, consider raising the MaxClients
setting
The only solution is to stop and start (not graceful restart) Apache.
Cheers,
Michel
--On lundi 21 novembre 2005 19:28 -0500 Graham Dumpleton
<gr...@dscpl.com.au> wrote:
> Michel Jouvin wrote ..
>> Hi,
>>
>> I recently installed mod_python 3.2b5 on Apache 2.0.54. I am running with
>> problems if httpd slave process segfaults or is killed. In this case,
>> master process restart the max number of processes/threads. We are
>> running Apache with the MPM worker (on Tru64 platform).
>>
>> This behaviour appears only if mod_python is loaded into Apache. this
>> doesn't seem to be related to mod_python usage : this can happen if you
>> load mod_python even if no URL is configured to use it. You can easily
>> reproduce the problem by doing 'kill -KILL' of an Apache slave process.
>>
>> Is it a known issue ? Are they any workaround ?
>
> What settings do you have in Apache config for:
>
> <IfModule worker.c>
># StartServers 2
> StartServers 1
> MaxClients 150
> MinSpareThreads 25
> MaxSpareThreads 75
> ThreadsPerChild 25
> MaxRequestsPerChild 0
> </IfModule>
>
> Can you then relate your problem to your configuration with actual
> numbers?
>
> Note that with "worker" configuration, there isn't generally a
> MaxSpareServers or MinSpareServers setting as I understand, that is for
> prefork only.
>
> <IfModule prefork.c>
> StartServers 5
> MinSpareServers 5
> MaxSpareServers 10
> MaxClients 150
> MaxRequestsPerChild 0
> </IfModule>
>
> So not sure when you say that it creates maximum number of processes
> what you are exactly talking about. I might expect it to create number
> of processes as specified by StartServers.
>
> Thus, can you please clarify.
>
> Graham
*************************************************************
* Michel Jouvin Email : jouvin@lal.in2p3.fr *
* LAL / CNRS Tel : +33 1 64468932 *
* B.P. 34 Fax : +33 1 69079404 *
* 91898 Orsay Cedex *
* France *
*************************************************************