From: Operating system: Linux PHP version: 5.3SVN-2010-12-10 (SVN) Package: Program Execution Bug Type: Bug Bug description:pclose and proc_close do not return values for use with pcntl_wifexited
Description: ------------ The manual for pclose and proc_close states: Note: Unix Only: proc_close() is internally implemented using the waitpid(3) system call. To obtain the real exit status code the pcntl_wexitstatus() function should be used. However, they in fact return the real exit code directly. This makes it impossible to tell whether a program exited normally or was killed by a signal. Test script: --------------- http://www.pastie.org/1364987 Expected result: ---------------- Testing command: false pclose test: status value: int(256) pcntl_wifexited: bool(true) pcntl_wexitstatus: int(1) pcntl_wifsignaled: bool(false) pcntl_wtermsig: int(0) proc_close test: status value: int(256) pcntl_wifexited: bool(true) pcntl_wexitstatus: int(1) pcntl_wifsignaled: bool(false) pcntl_wtermsig: int(0) Testing command: kill -1 $$ pclose test: status value: int(1) pcntl_wifexited: bool(false) pcntl_wexitstatus: int(0) pcntl_wifsignaled: bool(true) pcntl_wtermsig: int(1) proc_close test: status value: int(1) pcntl_wifexited: bool(false) pcntl_wexitstatus: int(0) pcntl_wifsignaled: bool(true) pcntl_wtermsig: int(1) Actual result: -------------- Testing command: false pclose test: status value: int(1) pcntl_wifexited: bool(false) pcntl_wexitstatus: int(0) pcntl_wifsignaled: bool(true) pcntl_wtermsig: int(1) proc_close test: status value: int(1) pcntl_wifexited: bool(false) pcntl_wexitstatus: int(0) pcntl_wifsignaled: bool(true) pcntl_wtermsig: int(1) Testing command: kill -1 $$ pclose test: status value: int(1) pcntl_wifexited: bool(false) pcntl_wexitstatus: int(0) pcntl_wifsignaled: bool(true) pcntl_wtermsig: int(1) proc_close test: status value: int(1) pcntl_wifexited: bool(false) pcntl_wexitstatus: int(0) pcntl_wifsignaled: bool(true) pcntl_wtermsig: int(1) -- Edit bug report at http://bugs.php.net/bug.php?id=53518&edit=1 -- Try a snapshot (PHP 5.2): http://bugs.php.net/fix.php?id=53518&r=trysnapshot52 Try a snapshot (PHP 5.3): http://bugs.php.net/fix.php?id=53518&r=trysnapshot53 Try a snapshot (trunk): http://bugs.php.net/fix.php?id=53518&r=trysnapshottrunk Fixed in SVN: http://bugs.php.net/fix.php?id=53518&r=fixed Fixed in SVN and need be documented: http://bugs.php.net/fix.php?id=53518&r=needdocs Fixed in release: http://bugs.php.net/fix.php?id=53518&r=alreadyfixed Need backtrace: http://bugs.php.net/fix.php?id=53518&r=needtrace Need Reproduce Script: http://bugs.php.net/fix.php?id=53518&r=needscript Try newer version: http://bugs.php.net/fix.php?id=53518&r=oldversion Not developer issue: http://bugs.php.net/fix.php?id=53518&r=support Expected behavior: http://bugs.php.net/fix.php?id=53518&r=notwrong Not enough info: http://bugs.php.net/fix.php?id=53518&r=notenoughinfo Submitted twice: http://bugs.php.net/fix.php?id=53518&r=submittedtwice register_globals: http://bugs.php.net/fix.php?id=53518&r=globals PHP 4 support discontinued: http://bugs.php.net/fix.php?id=53518&r=php4 Daylight Savings: http://bugs.php.net/fix.php?id=53518&r=dst IIS Stability: http://bugs.php.net/fix.php?id=53518&r=isapi Install GNU Sed: http://bugs.php.net/fix.php?id=53518&r=gnused Floating point limitations: http://bugs.php.net/fix.php?id=53518&r=float No Zend Extensions: http://bugs.php.net/fix.php?id=53518&r=nozend MySQL Configuration Error: http://bugs.php.net/fix.php?id=53518&r=mysqlcfg