[python-ldap] Strange network problems?
Aigars Grins
aigars.grins at sentor.se
Mon Sep 18 09:02:44 EDT 2017
Hi!
I have a problem and I'm wonder if any of you have stubled across
something similar.
I have a python daemon that uses gevent + daemonize + python-ldap. That
python daemon runs on a Debian 8 machine and connects to an OpenLDAP
daemon running on FreeBSD. Now and then the LDAP daemon is restarted.
When that happens, the python daemon looses it's capability to create
new connections. [SERVER_DOWN] {'info': "Error in the system's
randomness device.", 'errno': 11, 'desc': "Can't contact LDAP server"}
(I think that the text about "Error in the system's randomness device",
while certainly correct in some sense, is a red herring. There's nothing
wrong with the randomness device on the host as such. Other python
daemons, on the same machine, have no problems. That said, obviously
something is broken.)
Also, any existing connections are now somehow broken. When the python
daemon code tries to use them, they block. Even though I use
`search_st(timeout = 120.0)`. Trying to create new connections can
sometimes, but not always, also block. Even though I use `cnxn =
initialize(url); cnxn.set_option(OPT_NETWORK_TIMEOUT, 10.0);
cnxn.set_option(OPT_X_TLS_NEWCTX, 0); cnxn.simple_bind(bind, password)`.
Most often though, new connections are simply not possible to create.
All of the problems go away if I restart the python daemon after the
LDAP daemon is restarted.
Previously I've had a related issue which I believe is more to do with
gevent. I took it up on their tracker [1]. I'm including a reference
here, if the data available there is of any use.
[1] <https://github.com/gevent/gevent/issues/1008>
Furthermore, the same code base works better in other python daemons on
the same machine. So, "obviously" something's wrong in my code. It's
just that I really can't see what the difference could be.
Do you have any ideas?
--
Aigars Grins
More information about the python-ldap
mailing list