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: [email protected])
! 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