PHP :: Bug #32533 :: proc_get_status()
| Bug #32533 | proc_get_status() - "running" always returns TRUE, even after process dead | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Submitted: | 2005-04-01 14:42 UTC | Modified: | 2005-04-08 01:08 UTC |
|
||||||||||
| From: | chris at fragzzhost dot com | Assigned: | ||||||||||||
| Status: | Closed | Package: | Program Execution | |||||||||||
| PHP Version: | 5.* | OS: | Linux 2.6.8 | |||||||||||
| Private report: | No | CVE-ID: | None | |||||||||||
[2005-04-01 14:42 UTC] chris at fragzzhost dot com
Description:
------------
In the 5.0.4 release of PHP, the original proc_get_status bug (32210) doesn't appear to be fixed (Linux babe.fragzzhost.com 2.6.8.1 #1 SMP Tue Oct 12 08:27:04 CEST 2004 i686 i686 i386 GNU/Linux).
The "running" field now is always TRUE.
I know absolutely nothing about how this bit of code works, but I made the following change and it was fixed. Hopefully someone understands how this fluke works :)
Original code (note not as posted code)
if (WIFSTOPPED(wstatus)) {
stopped = 1;
stopsig = WSTOPSIG(wstatus);
}
} else {
running = 0;
}
#endif
My dreadful change:
if (WIFSTOPPED(wstatus)) {
stopped = 1;
stopsig = WSTOPSIG(wstatus);
}
} else {
running = 1;
}
#endif
I would also like to add that the original patch below doesn't appear to work correctly? Immediately after I kill the process manually with kill -9, running is FALSE as expected, but then if I sleep(2) then call proc_get_status() again, running is TRUE, and the process described isn't running.
Reproduce code:
---------------
(Best run from the command line)
$handle = proc_open("sleep 60", array(2 => array("pipe", "r")), $pipes);
$status = proc_get_status($handle);
var_dump($status["running"]);
sleep(5);
(confirmed at this stage that process is still running by 'ps aux')
system('kill -9 '.$status['pid']);
sleep(2);
$status = proc_get_status($handle);
var_dump($status["running"]);
Expected result:
----------------
bool(false)
bool(false)
Patches
Pull Requests
History
AllCommentsChangesGit/SVN commits
[2005-04-01 14:46 UTC] chris at fragzzhost dot com
[2005-04-08 01:08 UTC] iliaa@php.net