Bug #74093 [Opn->Fbk]: Maximum execution time of n+2 seconds exceed not written in error_log
Edit report at https://bugs.php.net/bug.php?id=74093&edit=1
ID: 74093
Updated by: laruence@php.net
Reported by: rainer-phpbugs at 7val dot com
Summary: Maximum execution time of n+2 seconds exceed not
written in error_log
-Status: Open
+Status: Feedback
Type: Bug
Package: FPM related
Operating System: Linux
PHP Version: 7.1.1
Block user comment: N
Private report: N
New Comment:
this is an expected behavior, since 7.1 we have new safe timeout handling system, and you example
must trigger hard_timeout, in that case, no php function can be called for safety, so we only can
call fprintf(stderr instead..
thanks
Previous Comments:
------------------------------------------------------------------------
[2017-02-13 14:48:09] rainer-phpbugs at 7val dot com
Description:
------------
If a Library call does not return within 2s after the max_execution_time has been exceeded,
zend_timeout_handler() in Zend/zend_execute_API.c approx. Line 1201 emits the error message to
STDERR instead of writing it into the error_log and then kills the child. As a result, the following
message, without any further explanation, is logged in error_log:
child 23444 exited with code 1 after 360.705768 seconds from start
If catch_workers_output is enabled, the "Maximum execution [...] exceeded" message is
logged in error_log, prefixed with "said into stderr".
This is a regression from PHP 7.0. (tested with 7.0.15, which logs a message in error_log, while
7.1.1 does not with the default configuration).
Test script:
---------------
<?php
/* generate an image with lots of colors using imagemagick:
convert -size 4096x4096 -define gradient:direction=east gradient:red-green PNG48:hor_gradient.png
convert hor_gradient.png -rotate 90 gradient_h.png
convert -size 4096x4096 gradient: PNG48:linear_gradient.png
composite linear_gradient.png -compose Multiply gradient_h.png grad.png
or download from http://can avan.de/lots_of_colors.png
*/
$i = new imagick();
$i->readimage('grad.png');
print($i->getImageColors()."\n");
Expected result:
----------------
"Fatal error: Maximum execution time of 30+2 seconds" should be logged in the configured
error_log, just like the "Fatal error: Maximum execution time of 30 seconds" message.
This should be independent of the catch_workers_output setting.
Actual result:
--------------
Only "child 1903 exited with code 1 after 68.983009 seconds from start" is logged.
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=74093&edit=1
Thread (7 messages)