Hello,

this patch introduced a bug in 5_3/HEAD, the timeout is no longer
checked in the shutdown function:

set_time_limit(1);
register_shutdown_function("plop");
function plop() {
    while(1);
}
plop();

doesn't terminate


http://patches.colder.ch/php-src/shutdown_timeout-5_3.patch?markup

fixes it but I'm not sure it's the right way to do it. Can you please
take a look?

Thanks.

On Tue, Mar 18, 2008 at 11:42 PM, Rasmus Lerdorf <ras...@php.net> wrote:
> rasmus          Tue Mar 18 21:42:51 2008 UTC
>
>  Modified files:              (Branch: PHP_5_3)
>    /ZendEngine2        zend_execute.h zend_execute_API.c
>    /php-src/main       SAPI.c SAPI.h main.c php_globals.h
>    /php-src/sapi/apache        mod_php5.c
>  Log:
>  exit_on_timeout patch
>
>  After the sigsetjmp change, this is patch #2 in an effort to get some
>  sanity restored to signal handling in PHP.
>
>  This patch does two things.  First, it makes it possible to reset the
>  timeout without resetting the signal handlers.  This is important for
>  cases where an extension may have deferred signals in its MINIT in order
>  to implement critical sections. It also lays the groundwork for cleaning
>  up our signal handling and perhaps eventually implementing our own
>  signal deferring mechanism so we can have true critical sections.
>
>  The second thing this does is to make it possible to terminate the current
>  child process (only for Apache1 at the moment) on a timeout.  There are
>  a number of extensions that are unhappy about being longjmp'ed out of
>  and when this happens on a timeout they are left in an inconsistent state.
>  By turning on exit_on_timeout you can now force the process to terminate
>  on a timeout which will clean up any hanging locks and/or memory left
>  hanging after the longjmp.
>
>
> --
> PHP CVS Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>



-- 
Etienne Kneuss
http://www.colder.ch

Men never do evil so completely and cheerfully as
when they do it from a religious conviction.
-- Pascal

--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to