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:
[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.
Previous Comments:
------------------------------------------------------------------------
[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
------------------------------------------------------------------------
[2007-12-05 05:22:57] jinglerobs at yahoo dot com
Im using PHP 5.2.4 (cli), Apache & Mysql combination on a Slackware
box.
While running a script that processes large XML files and writes the
log to a log file, I get
Warning: exec(): Unable to fork
Initially the script runs fine for some 3 or 4 hours after which it
gives out the warnings. The script has a huge amount of data to process.
I also tried to use the nohup command but was of no use.
A screenshot of the problem is given below:
DEBUG:INSERT into package
(id,vendor,title,version,ver_major,ver_minor,ver_sub,ver_ext,type)
values ('13001','Microsoft','Windows XP
Home','0.0.0SP1','0','0','0','SP1','Software')
Warning: exec(): Unable to fork [/usr/bin/bash -c "exec nohup setsid
echo \"DEBUG: INSERT into package
(id,vendor,title,version,ver_major,ver_minor,ver_sub,ver_ext,type)
values ('13001','Microsoft','Windows XP
Home','0.0.0SP1','0','0','0','SP1','Software') \">>feed2vendorDB.log
2>&1 &"] in
/usr/local/apache2/htdocs/xml_feed/sircc_agnostic/feed2vendorDB/feed2vendorDB.php
on line 1454
DEBUG:INSERT into package
(id,vendor,title,version,ver_major,ver_minor,ver_sub,ver_ext,type)
values ('13002','Microsoft','Windows XP
Professional','0.0.0SP1','0','0','0','SP1','Software')
Warning: exec(): Unable to fork [/usr/bin/bash -c "exec nohup setsid
echo \"DEBUG: INSERT into package
(id,vendor,title,version,ver_major,ver_minor,ver_sub,ver_ext,type)
values ('13002','Microsoft','Windows XP
Professional','0.0.0SP1','0','0','0','SP1','Software')
\">>feed2vendorDB.log 2>&1 &"] in
/usr/local/apache2/htdocs/xml_feed/sircc_agnostic/feed2vendorDB/feed2vendorDB.php
on line 1454
DEBUG:INSERT into package
(id,vendor,title,version,ver_major,ver_minor,ver_sub,ver_ext,type)
values ('13134','KaZaA','KaZaA Media
Desktop','2.0.0','2','0','0','','Software')
Warning: exec(): Unable to fork [/usr/bin/bash -c "exec nohup setsid
echo \"DEBUG: INSERT into package
(id,vendor,title,version,ver_major,ver_minor,ver_sub,ver_ext,type)
values ('13134','KaZaA','KaZaA Media
Desktop','2.0.0','2','0','0','','Software') \">>feed2vendorDB.log 2>&1
&"] in
/usr/local/apache2/htdocs/xml_feed/sircc_agnostic/feed2vendorDB/feed2vendorDB.php
on line 1454
DEBUG:INSERT into package
(id,vendor,title,version,ver_major,ver_minor,ver_sub,ver_ext,type)
values ('11051','KaZaA','KaZaA Media
Desktop','1.6.1','1','6','1','','Software')
Warning: exec(): Unable to fork [/usr/bin/bash -c "exec nohup setsid
echo \"DEBUG: INSERT into package
(id,vendor,title,version,ver_major,ver_minor,ver_sub,ver_ext,type)
values ('11051','KaZaA','KaZaA Media
Desktop','1.6.1','1','6','1','','Software') \">>feed2vendorDB.log 2>&1
&"] in
/usr/local/apache2/htdocs/xml_feed/sircc_agnostic/feed2vendorDB/feed2vendorDB.php
on line 1454
DEBUG:INSERT into infection_vector (vector,deployed,effectiveness)
values ('File Sharing / Peer to Peer / Kazaa','3','8')
Warning: exec(): Unable to fork [/usr/bin/bash -c "exec nohup setsid
echo \"DEBUG: INSERT into infection_vector
(vector,deployed,effectiveness) values ('File Sharing / Peer to Peer /
Kazaa','3','8') \">>feed2vendorDB.log 2>&1 &"] in
/usr/local/apache2/htdocs/xml_feed/sircc_agnostic/feed2vendorDB/feed2vendorDB.php
on line 1454
DEBUG:INSERT into infection_vector (vector,deployed,effectiveness)
values ('File Transfer / Email Attachment','10','7')
Warning: exec(): Unable to fork [/usr/bin/bash -c "exec nohup setsid
echo \"DEBUG: INSERT into infection_vector
(vector,deployed,effectiveness) values ('File Transfer / Email
Attachment','10','7') \">>feed2vendorDB.log 2>&1 &"] in
/usr/local/apache2/htdocs/xml_feed/sircc_agnostic/feed2vendorDB/feed2vendorDB.php
on line 1454
Fatal error: Out of memory (allocated -1155268608) (tried to allocate
11080 bytes) in
/usr/local/apache2/htdocs/xml_feed/sircc_agnostic/feed2vendorDB/feed2vendorDB.php
on line 1447
[1]+ Exit 1 ./feed2vendorDB.sh
Is this related to the max number of processes allowed in the memory,
or a PHP-Apache prob??. Having a tough time ....
------------------------------------------------------------------------
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