ID: 34892
User updated by: jason at mugfu dot com
Reported By: jason at mugfu dot com
-Status: Open
+Status: Bogus
Bug Type: LDAP related
Operating System: FreeBSD 6.0 RC1
PHP Version: 5.0.5
New Comment:
Withdrawing bug. Now I can no longer reproduce this problem :/
Previous Comments:
------------------------------------------------------------------------
[2005-10-17 16:50:43] jason at mugfu dot com
Description:
------------
Environment:
- FreeBSD 6.0 RC-1 on AMD64
- OpenLDAP2.2 client libraries on php host
- Connecting to OpenLDAP2.3 on remote host.
When this script is run from the command line, the LDAP operations
complete very quickly, without any problem. When executed via mod_php
in Apache2, the php process will timeout everytime. I have enabled
full debug tracing on in the LDAP server (OpenLDAP). It shows the
result being sent back to the client, but the client does not close the
connection. CPU usage on the httpd process handling the web client goes
to 100%. ktrace/kdump show the process to be caught in a continuous
loop like this:
69111 httpd CALL select(0x400,0x9e1d00,0x9e1d80,0,0)
69111 httpd RET select 1
Reproduce code:
---------------
Short script:
<?php
error_reporting(E_ALL);
$ds=ldap_connect("192.168.1.11");
echo "connect result is " . $ds . "<br />\n";
if (ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3)) {
echo "Using LDAPv3<br/>\n";
} else {
echo "Failed to set protocol version to 3<br/>\n";
}
//Anonymous bind:
$r=ldap_bind($ds);
echo "Bind result is " . $r . "<br />\n";
$sr=ldap_search($ds, "dc=mydomain,dc=com", "(&(objectclass=*))");
echo "Number of entires returned is " . ldap_count_entries($ds, $sr) .
"<br />\n";
ldap_close($ds);
?>
Expected result:
----------------
I would expect the command line version, and the version running via
mod_php to behave in the same fashion.
Actual result:
--------------
Process timeouts without any other error. Note that ldap_connect and
ldap_set_option behave fine in both environments (I may be wrong, but I
don't believe those actually open connections). It is ldap_bind and
ldap_search that cause the issue. If I comment out ldap_bind, the
process hangs on ldap_search.
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=34892&edit=1