ID: 18833 Comment by: klaus dot wendel at lednew dot de Reported By: antoine dot bajolet at tdf dot fr Status: No Feedback Bug Type: *General Issues Operating System: GNU/Linux 2.4.9 RH 7.1 PHP Version: 4.2.1 New Comment:
I've forgotten: Please aslo add a $result = explode("\n",trim($result)); function user_proc_exec ($command,& $result,& $status) { $process = proc_open( $command, array( 0 => array("pipe", "r"), //STDIN 1 => array("pipe", "w"), //STDOUT 2 => array("pipe","w")), //STDERR $pipes ); $result = stream_get_contents($pipes[1]); $error = stream_get_contents($pipes[2]); fclose($pipes[1]); fclose($pipes[2]); $status= proc_close($process); $result = explode("\n",trim($result)); return($error); } Previous Comments: ------------------------------------------------------------------------ [2009-12-19 12:26:49] klaus dot wendel at lednew dot de [Ubuntu karmic 9.10; php-cli 5.2.10] > The per-user process number limit is set in > /etc/security/limits.conf. > In my case, it was enough to raise it and reboot. In my case, this wasn't the answer, unfortunately. Or fortunately, because I was forced to find a workaround, which could help others, too. In my code I replaced exec by following function: function user_proc_exec ($command,& $result,& $status) { $process = proc_open( $command, array( 0 => array("pipe", "r"), //STDIN 1 => array("pipe", "w"), //STDOUT 2 => array("pipe","w")), //STDERR $pipes ); $result = stream_get_contents($pipes[1]); $error = stream_get_contents($pipes[2]); fclose($pipes[1]); fclose($pipes[2]); $status= proc_close($process); return($error); } Everything is working fine now. ------------------------------------------------------------------------ [2009-05-04 14:42:05] scherbakov_koksa at mail dot ru It seems I've finally figured out the reason (after a huge amount of googling UNIX forums). The PHP fork() error is accompanied by the following entries in Apache error_log: [Mon May 04 20:55:59 2009] [alert] (11)Resource temporarily unavailable: setuid: unable to change to uid: 48 [Mon May 04 20:55:59 2009] [alert] Child 10053 returned a Fatal error... Apache is exiting! The system configuration doesn't allow Apache to execute more than N child processes simultaneously. Apache runs out of this limit and can't start any more processes. Hence is the error. The per-user process number limit is set in /etc/security/limits.conf. In my case, it was enough to raise it and reboot. ------------------------------------------------------------------------ [2009-03-09 13:33:36] steveg at bscopes dot com 1. did you ever figure out what caused this problem? 2. do you know which apache/php parameters to adjust ? ------------------------------------------------------------------------ [2009-02-05 11:37:09] scherbakov_koksa at mail dot ru I'm having the same issue with PHP 5.2.8, Apache 2.2.11, GNU/Linux (2.6.20-1.2320.fc5). A php script periodically (per user request) executes the following command: xsltproc <filename> <filename> In some time the script starts throwing the "unable to fork" warning. It is fixed by Apache restart. ------------------------------------------------------------------------ [2008-06-01 16:48:39] pahan at hubbitus dot spb dot su Have same trouble in PHP snapshot 200805080630: PHP Warning: exec(): Unable to fork [echo -ne '2008-06-01 05:15:27: Login: Unable to login (User: hel...@simpla y.ru)! reason:not connected! (CMD:LOGIN) sleep 50 seconds ' >> /home/pasha/temp/php-IMAP/logs/log_ERR 2>&1] in /var/www/_SHARED_/Debug/HuLOG.php on line 115 PHP Stack trace: PHP 1. {main}() /home/pasha/temp/php-IMAP/IMAP_answer.php:0 PHP 2. IMAP_mailbox_change_answer() /home/pasha/temp/php-IMAP/IMAP_answer.php:201 PHP 3. HuLOG->toLog() /home/pasha/temp/php-IMAP/IMAP_answer.php:67 PHP 4. HuLOG->writeLogs() /var/www/_SHARED_/Debug/HuLOG.php:158 PHP 5. HuLOG->log_to_file() /var/www/_SHARED_/Debug/HuLOG.php:162 PHP 6. exec() /var/www/_SHARED_/Debug/HuLOG.php:115 Warning: exec(): Unable to fork [echo -ne '2008-06-01 05:15:27: Login: Unable to login (User: hel...@simplay.ru) ! reason:not connected! (CMD:LOGIN) sleep 50 seconds ' >> /home/pasha/temp/php-IMAP/logs/log_ERR 2>&1] in /var/www/_SHARED_/Debug/HuLOG.php on line 115 Call Stack: 0.0019 375364 1. {main}() /home/pasha/temp/php-IMAP/IMAP_answer.php:0 184145.8861 16442044 2. IMAP_mailbox_change_answer() /home/pasha/temp/php-IMAP/IMAP_answer.php:201 184145.8903 16451552 3. HuLOG->toLog() /home/pasha/temp/php-IMAP/IMAP_answer.php:67 184145.8908 16451648 4. HuLOG->writeLogs() /var/www/_SHARED_/Debug/HuLOG.php:158 184145.8908 16451648 5. HuLOG->log_to_file() /var/www/_SHARED_/Debug/HuLOG.php:162 184145.8917 16451824 6. exec() /var/www/_SHARED_/Debug/HuLOG.php:115 ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at http://bugs.php.net/18833 -- Edit this bug report at http://bugs.php.net/?id=18833&edit=1