ID: 25480 User updated by: colin at grandecom dot com Reported By: colin at grandecom dot com Status: Bogus Bug Type: Program Execution Operating System: Solaris 2.8 PHP Version: 4.3.3 New Comment:
Yes, I guess I thought you meant you reduced the number of system file descriptors. For what its worth though, my system is set w/rlimit 1024 and with 4.3.3, it would continually fail the exec commands after mere hours of operation. I did not check how many FDs were in use with Apache at the time, but for the purposes of comparison, my server (which has been running 4.3.1 flawlessly non-stop since 09/08, or about a month and a half) is currently using 21 descriptors. So my guess is that 4.3.3 has some kind of problem releasing ones that have already been used? Previous Comments: ------------------------------------------------------------------------ [2003-10-18 23:11:42] [EMAIL PROTECTED] Given the above comment, this is not PHP bug. ------------------------------------------------------------------------ [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. ------------------------------------------------------------------------ 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/25480 -- Edit this bug report at http://bugs.php.net/?id=25480&edit=1