You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by Ruediger Pluem <rp...@apache.org> on 2014/08/18 14:20:05 UTC

Re: svn commit: r1618555 - /httpd/httpd/trunk/server/mpm/prefork/prefork.c


jkaluza@apache.org wrote:
> Author: jkaluza
> Date: Mon Aug 18 07:43:43 2014
> New Revision: 1618555
> 
> URL: http://svn.apache.org/r1618555
> Log:
> prefork: Ignore SIGINT in child. This fixes race-condition in signals handling
> when httpd is runnning on foreground and user hits ctrl+c. In this case, SIGINT
> is sent to all children followed by SIGTERM from the main process, which
> interrupts the SIGINT handler and leads to inconsistency (process freezes
> or crashes).
> 
> Modified:
>     httpd/httpd/trunk/server/mpm/prefork/prefork.c
> 

Don't we need to do this for the other MPM's as well?

Regards

Rüdiger

Re: svn commit: r1618555 - /httpd/httpd/trunk/server/mpm/prefork/prefork.c

Posted by Jan Kaluža <jk...@redhat.com>.
On 08/18/2014 04:31 PM, Jan Kaluža wrote:
> On 08/18/2014 02:20 PM, Ruediger Pluem wrote:
>>
>>
>> jkaluza@apache.org wrote:
>>> Author: jkaluza
>>> Date: Mon Aug 18 07:43:43 2014
>>> New Revision: 1618555
>>>
>>> URL: http://svn.apache.org/r1618555
>>> Log:
>>> prefork: Ignore SIGINT in child. This fixes race-condition in signals
>>> handling
>>> when httpd is runnning on foreground and user hits ctrl+c. In this
>>> case, SIGINT
>>> is sent to all children followed by SIGTERM from the main process, which
>>> interrupts the SIGINT handler and leads to inconsistency (process
>>> freezes
>>> or crashes).
>>>
>>> Modified:
>>>      httpd/httpd/trunk/server/mpm/prefork/prefork.c
>>>
>>
>> Don't we need to do this for the other MPM's as well?
>
> I haven't tried to reproduce it with different MPMs, but it looks like
> good idea. The code looks very similar when it comes to signal handling,
> so the same problem can be there too. I will try to reproduce this bug
> and commit fix also for other MPMs eventually.

I was not able to reproduce the bug with event or worker MPM. That does 
not mean the problem is not there, but I don't want to fix it blindly 
without seeing the actual bug.

Jan Kaluza

> Jan Kaluza
>
>> Regards
>>
>> Rüdiger
>>
>


Re: svn commit: r1618555 - /httpd/httpd/trunk/server/mpm/prefork/prefork.c

Posted by Jan Kaluža <jk...@redhat.com>.
On 08/18/2014 02:20 PM, Ruediger Pluem wrote:
>
>
> jkaluza@apache.org wrote:
>> Author: jkaluza
>> Date: Mon Aug 18 07:43:43 2014
>> New Revision: 1618555
>>
>> URL: http://svn.apache.org/r1618555
>> Log:
>> prefork: Ignore SIGINT in child. This fixes race-condition in signals handling
>> when httpd is runnning on foreground and user hits ctrl+c. In this case, SIGINT
>> is sent to all children followed by SIGTERM from the main process, which
>> interrupts the SIGINT handler and leads to inconsistency (process freezes
>> or crashes).
>>
>> Modified:
>>      httpd/httpd/trunk/server/mpm/prefork/prefork.c
>>
>
> Don't we need to do this for the other MPM's as well?

I haven't tried to reproduce it with different MPMs, but it looks like 
good idea. The code looks very similar when it comes to signal handling, 
so the same problem can be there too. I will try to reproduce this bug 
and commit fix also for other MPMs eventually.

Jan Kaluza

> Regards
>
> Rüdiger
>