ID: 36145 User updated by: brage at zoo dot uib dot no Reported By: brage at zoo dot uib dot no Status: Open Bug Type: LDAP related Operating System: FreeBSD 5.4-STABLE AMD64 PHP Version: 4.4.2 New Comment:
Sorry, the bug-reproducing code should have $i <= 30, not 20. Previous Comments: ------------------------------------------------------------------------ [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 19:28:06] [EMAIL PROTECTED] Thank you for this bug report. To properly diagnose the problem, we need a short but complete example script to be able to reproduce this bug ourselves. A proper reproducing script starts with <?php and ends with ?>, is max. 10-20 lines long and does not require any external resources such as databases, etc. If possible, make the script source available online and provide an URL to it here. Try to avoid embedding huge scripts into the report. ------------------------------------------------------------------------ [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.. ------------------------------------------------------------------------ [2006-01-24 16:18:49] brage at zoo dot uib dot no Description: ------------ I am experiencing exactly the same problem as described in Bug #34892 (Process hang on LDAP operations). The system is - FreeBSD 5.4-STABLE AMD64 (SMP) - OpenLDAP Client libraries 2.2.30 - PHP 4.4.2 On ldap_bind() the system goes into a select-loop and uses all available cpu until timeout. The problem is only present when I have many open virtual servers, if I reduce the number of active virtualhosts the problem disappears. The CLI version also works fine. Reproduce code: --------------- See bug #34892. ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=36145&edit=1