ID: 25480 Updated by: [EMAIL PROTECTED] 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 http://bugs.php.net/25480 -- Edit this bug report at http://bugs.php.net/?id=25480&edit=1