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: | Rasmus Lerdorf | Date: | Tue, 26 May 2009 22:46:07 +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 3 | Groups: | php.cvs |
| Request: | Send a blank email to php-cvs+get-58267@lists.php.net to get a copy of this message | ||
The patch should be fine.
Etienne Kneuss wrote:
> 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
>>
>>
>> H’±ƒet\óû
>> €ïŸ»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
>>
>
>
>