Re: cvs: php-src(PHP_5_3) /main SAPI.c SAPI.h main.c php_globals.h /sapi/apache mod_php5.c ZendEngine2 zend_execute.h zend_execute_API.c
| From: | Etienne Kneuss | Date: | Tue, 26 May 2009 12:15:29 +0000 |
| Subject: | Re: cvs: php-src(PHP_5_3) /main SAPI.c SAPI.h main.c php_globals.h /sapi/apache mod_php5.c ZendEngine2 zend_execute.h zend_execute_API.c | ||
| References: | 1 2 | Groups: | php.cvs |
| Request: | Send a blank email to php-cvs+get-58225@lists.php.net to get a copy of this message | ||
Hello,
if I get no objections by the end of the week I'll simply commit that
patch + test, so 5.3 can move forward.
Regards,
On Sun, May 24, 2009 at 1:53 PM, Etienne Kneuss <colder@php.net> wrote:
> 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 <rasmus@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
>
--
Etienne Kneuss
http://www.colder.ch
Men never do evil so completely and cheerfully as
when they do it from a religious conviction.
-- Pascal