ID: 36145 User updated by: brage at zoo dot uib dot no Reported By: brage at zoo dot uib dot no Status: Bogus Bug Type: LDAP related Operating System: FreeBSD 5.4-STABLE AMD64 PHP Version: 4.4.2 New Comment:
Definitely not file descriptors (which has a limit > 10000). And it is not reproducible on all systems. The other bug report (#34892) is from a similar system to mine, suggesting that the bug might be a 64bit-related issue. Previous Comments: ------------------------------------------------------------------------ [2006-01-25 10:16:06] [EMAIL PROTECTED] It's either openldap bug or you're just running out of file-descriptors on your server. Definately not PHP bug. (I can't even reproduce it myself) ------------------------------------------------------------------------ [2006-01-25 10:09:24] brage at zoo dot uib dot no Sorry, the bug-reproducing code should have $i <= 30, not 20. ------------------------------------------------------------------------ [2006-01-25 10:07:25] brage at zoo dot uib dot no The problem seems to be related to the number of open files. The following script will use all available cpu and never finish if run with the cli version. If I reduce the number of open files to 20 it will bind sucessfully immediately. <?php $ldap_uri = 'removed'; $ldap_dn = 'removed'; for($i = 1; $i <= 20; $i++) $files[] = tmpfile(); $ds = ldap_connect($ldap_uri); ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3); if($bind = ldap_bind($ds,$ldap_rdn)) print "Success\n"; else print "Failure\n"; foreach($files as $file) fclose($file); ?> It is likely that the bug is in openldap and not in PHP. AFAICS it is the call to ldap_bind_s() in php-4.4.2/ext/ldap/ldap.c which never finishes. ------------------------------------------------------------------------ [2006-01-24 17:32:05] brage at zoo dot uib dot no That does not seem likely. It is reproducible with an apache process serving no other request than a single request to the test page. Also the number of virtualhosts needed to reproduce the problem is fairly low ( < 15, but with own log files). A ktrace of the request gives a 1.3GB kdump file with 8 million select()-calls before the request dies from a timeout after 60 seconds. ------------------------------------------------------------------------ [2006-01-24 16:20:53] [EMAIL PROTECTED] It's just your server hitting it's limit.. ------------------------------------------------------------------------ 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/36145 -- Edit this bug report at http://bugs.php.net/?id=36145&edit=1