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                                                    *
     *************************************************************