It happened again. After some research I found out what the problem is:
experimental/peruser/peruser.c:614
if (rv != APR_SUCCESS) {
const char *msg = "couldn't grab the accept mutex";
if (ap_my_generation !=
ap_scoreboard_image->global->running_generation)
{
ap_log_error(APLOG_MARK, APLOG_DEBUG, rv, NULL, msg);
clean_child_exit(0);
}
else {
ap_log_error(APLOG_MARK, APLOG_EMERG, rv, NULL, msg);
exit(APEXIT_CHILDFATAL);
}
}
Can someone please explain why the child proceeds to take down the entire
server by exiting with a fatal error if it can't grab the accept mutex and
the child generation is the same as the running generation? Whoever wrote
this must have been stoned. In the mean time I will fix this by commenting
it out like this:
/*if (ap_my_generation !=
ap_scoreboard_image->global->running_generation)
{*/
ap_log_error(APLOG_MARK, APLOG_DEBUG, rv, NULL, msg);
clean_child_exit(0);
/*}
else {
ap_log_error(APLOG_MARK, APLOG_EMERG, rv, NULL, msg);
exit(APEXIT_CHILDFATAL);
}*/
Hannes
On 25 January 2011 15:48, Hannes Landeholm <[email protected]> wrote:
> Good. :) It must have been some exceptionally rare condition...
>
> Hannes
>
>
>
> On 25 January 2011 15:20, Janno Sannik <[email protected]> wrote:
>
>> This should be common to all mpm's. Not just peruser. Something went
>> horribly wrong so it seems and recovery doesn't seem an option.
>>
>>
>> On 25.01.2011 15:37, Hannes Landeholm wrote:
>>
>> FYI got this very unusual error just after reloading apache configuration:
>> As you can see the whole apache server was brought down just because I
>> child returned a fatal error. That dangerous and exploitable reaction should
>> be removed IMO. Childs should NEVER be able to stop the entire server. If
>> they return a fatal error they should promptly be killed and replaced.
>>
>> Regards,
>>
>> Hannes
>>
>>
>> _______________________________________________
>> Peruser mailing
>> [email protected]http://www.telana.com/mailman/listinfo/peruser
>>
>>
>>
>> _______________________________________________
>> Peruser mailing list
>> [email protected]
>> http://www.telana.com/mailman/listinfo/peruser
>>
>>
>
_______________________________________________
Peruser mailing list
[email protected]
http://www.telana.com/mailman/listinfo/peruser