ID: 25480
Updated by: [email]sniperphp.net[/email]
Reported By: colin at grandecom dot com
-Status: Open
+Status: Bogus
Bug Type: Program Execution
Operating System: Solaris 2.8
PHP Version: 4.3.3
New Comment:

Given the above comment, this is not PHP bug.




Previous Comments:
------------------------------------------------------------------------

[2003-10-18 11:14:33] bk at galaxy dot net

I guess you misunderstood. I reduced the number of file
descriptors in use to make sure fd value is < 256.

In the FILE* structure, which is what fopen(), popen(), etc
uses, they only have a "char" to hold the file descriptor.
fopen() and popen() will fail if the file descriptor it gets
assigned is >= 256. This problem goes away in 64 bit mode,
but not many people are using that yet.

Sure enough, all my problems with shell_exec() have gone
away since eliminating all the ErrorLog lines from my web
server. If you run "pfiles" on your httpd process, you'll
see the ulimit as well as how many file descriptors you have
open. If this value goes above 255, you'll start seeing
intermittent exec failures. Its intermittent since some
fd's less than 256 may get closed and reused to allow an
exec to work, however once they're all full in the lower
numbers, you'll fail again.

------------------------------------------------------------------------

[2003-10-16 13:17:53] colin at grandecom dot com

I only had mine (ulimit -n) set to 256, and I tried upping it to 1024
with no discernible result. My system is an internal one, and has no
customer vhosts - just a couple of name vhosts, referencing about 4
logs total. I'm not sure why _dropping_ your number of file
descriptors would fix the problem - if anything, that would make it
worse it would seem. I have to say that I doubt your problem is gone
for good.

------------------------------------------------------------------------

[2003-10-16 10:28:46] bk at galaxy dot net

Sure enough, when I reduce the file descriptors down (it was over 400),
the intermittent problems went away. I
eliminated the ErrorLog for the virtual hosts to knock
the file descriptors down to 200 and it seems to work
consistently (so far).

------------------------------------------------------------------------

[2003-10-16 09:25:13] bk at galaxy dot net

I'm seeing the same thing. I get shell_exec() to fail
ever since upgrading to 4.3.3 as well as popen() within
the sendmail module of pear.

I'm wondering if this has something to do with the
solaris limit of 256 file descriptors in FILE streams
and running out of them. But it is strange that this
didn't start until I upgraded to 4.3.3.

------------------------------------------------------------------------

[2003-09-10 21:05:50] colin at grandecom dot com

safe_mode = Off

It is only happening to me with 4.3.3 - on this particular
machine I upgraded from 4.3.1 yesterday to fix an snmp bug,
and the problem start happening today (I'd run 4.3.1
without any exec issues for several weeks prior.) In
retrospect, this definitely should have been mentioned in
my initial bug report. Sorry about that.

------------------------------------------------------------------------

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
[url]http://bugs.php.net/25480[/url]

--
Edit this bug report at [url]http://bugs.php.net/?id=25480&edit=1[/url]