python-ldap hanging for 15 minutes under certain conditions
Rich Megginson
rich.megginson at gmail.com
Thu Feb 3 17:16:16 CET 2011
On 02/03/2011 04:34 AM, Michael Wood wrote:
> Hi
>
> I'm trying to do a search against Samba 4's LDAP server and it works,
> but the bind and search are both successful, everything hangs when I
> try to unbind from the LDAP server. If anyone could enlighten me I
> would be grateful.
>
> I've run into the same issue on various different Linux machines with
> a range of OpenLDAP and python-ldap versions, but it seems to work
> fine on a Mac running Leopard.
>
> e.g. Ubuntu Lucid Lynx with libldap2-dev version 2.4.21-0ubuntu5.3 and
> python-ldap 2.3.10-1ubuntu1.
>
> I've also tried upgrading python-ldap to 2.3.12, but that does not
> seep to have helped.
Try enabling ldap debug logging - before the first call to
ldap.initialize, add this:
ldap.set_option(ldap.OPT_DEBUG_LEVEL, 1)
> def test(username, password):
> base = "DC=example,DC=com"
> userbase = "CN=Users," + base
> userdn = "CN=%s,%s" % (username, userbase)
> ldap_server = "ldap://example.com"
> conn = ldap.initialize(ldap_server)
> conn.set_option(ldap.OPT_REFERRALS, 0) # Doesn't appear to make a difference
> conn.start_tls_s()
> try:
> conn.simple_bind_s(userdn, password)
> logging.debug("Bind succeeded for '%s'", username)
> except ldap.LDAPError, e:
> logging.warn("Authentication failed for '%s'", username)
> return False
> res = conn.search_s("CN=Some Group,CN=Users,DC=bluebird,DC=co,DC=za",
> ldap.SCOPE_BASE, filterstr="(member=%s)" % userdn,
> attrlist=["member"])
> if len(res) != 1:
> logging.debug("User '%s' is not in the Some Group group", username)
> conn.unbind()
> return False
> logging.debug("User '%s' appears to be in the Some Group group", username)
> conn.unbind() #<- hangs here for 15 minutes.
> logging.debug("Unbound.")
> return True
>
More information about the python-ldap
mailing list