Bug #73783 [Com]: pcntl_signal() issue
| From: | zorg at razza dot org | Date: | Mon, 19 Dec 2016 10:30:55 +0000 |
| Subject: | Bug #73783 [Com]: pcntl_signal() issue | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-206128@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=73783&edit=1
ID: 73783
Comment by: zorg at razza dot org
Reported by: zorg at razza dot org
Summary: pcntl_signal() issue
Status: Open
Type: Bug
Package: *General Issues
Operating System: Ubuntu 16.04.1 LTS
PHP Version: 7.1.0
Block user comment: N
Private report: N
New Comment:
Sorry, the test script is incorrect. It should be:
pcntl_signal(SIGCHLD, SIG_IGN);
$pid = @pcntl_fork();
if ($pid == -1)
{
exit(pcntl_get_last_error() . ': ' . pcntl_strerror(pcntl_get_last_error()));
}
elseif ($pid == 0)
{
exit();
}
sleep(60);
exit("Done");
This also creates a <defunct> process when pcntl_signal(SIGCHLD, SIG_IGN) should have removed
it.
Previous Comments:
------------------------------------------------------------------------
[2016-12-19 10:25:14] zorg at razza dot org
Description:
------------
The use of pcntl_signal(SIGCHLD, SIG_IGN) breaks sleep(). In 7.0 the below script would sleep for 60
seconds then exit, in 7.1 the script does not sleep at all.
Test script:
---------------
pcntl_signal(SIGCHLD, SIG_IGN);
sleep(60);
exit('Done');
Expected result:
----------------
Sleep for 60 seconds, print 'Done' and exit.
Actual result:
--------------
Instantly prints 'Done' and exist.
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=73783&edit=1