[ldappool] Downing one of the configured LDAP servers causes a persistent failure
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Identity (keystone) |
In Progress
|
Undecided
|
Unassigned |
Bug Description
If a server disconnects after a pooled connection is created, it fails withe an ldap.TIMEOUT which is Unhandled.
The ReconnectLDAPObject used by ldappool only catches the ldap.SERVER_DOWN exception in _apply_method_s which is applied to synchronous methods, whereas ldap.TIMEOUT is properly caught only during the initial connection.
To test this I did the following:
1. Create a new interface with a new IP address for the ldap server
2. set this as the first server in the url list and set pool_connection
3. Do a couple of:
time openstack user list --domain=Users
to fill the connections in the pools in all WSGI processes
4. remove the created IP address from the interface
5. try an openstack user list again
Result:
the pooled connection consistently fails with:
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: CRITICAL keystone [None req-7ad1997a-
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone Traceback (most recent call last):
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone File "/usr/local/
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone return self.wsgi_
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone File "/usr/local/
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone return self.app(environ, start_response)
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone File "/usr/local/
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone resp = self.call_func(req, *args, **kw)
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone File "/usr/local/
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone return self.func(req, *args, **kwargs)
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone File "/usr/local/
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone response = req.get_
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone File "/usr/local/
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone status, headers, app_iter = self.call_
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone File "/usr/local/
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone app_iter = application(
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone File "/usr/local/
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone return resp(environ, start_response)
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone File "/usr/local/
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone resp = self.call_func(req, *args, **kw)
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone File "/usr/local/
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone return self.func(req, *args, **kwargs)
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone File "/usr/local/
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone response = req.get_
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone File "/usr/local/
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone status, headers, app_iter = self.call_
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone File "/usr/local/
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone app_iter = application(
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone File "/usr/local/
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone resp = self.call_func(req, *args, **kw)
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone File "/usr/local/
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone return self.func(req, *args, **kwargs)
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone File "/usr/local/
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone return request.
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone File "/usr/local/
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone status, headers, app_iter = self.call_
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone File "/usr/local/
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone app_iter = application(
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone File "/usr/local/
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone resp = self.call_func(req, *args, **kw)
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone File "/usr/local/
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone return self.func(req, *args, **kwargs)
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone File "/usr/local/
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone response = req.get_
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone File "/usr/local/
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone status, headers, app_iter = self.call_
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone File "/usr/local/
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone File "/opt/stack/
in __call__
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone return self.app(environ, start_response)
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone File "/usr/local/
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone resp = self.call_func(req, *args, **kw)
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone File "/usr/local/
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone return self.func(req, *args, **kwargs)
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone File "/usr/local/
all__
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone response = req.get_
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone File "/usr/local/
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone status, headers, app_iter = self.call_
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone File "/usr/local/
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone app_iter = application(
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone File "/usr/local/
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone return app(environ, start_response)
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone File "/usr/local/
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone response = self.handle_
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone File "/usr/local/
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone return original_handler(e)
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone File "/usr/local/
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone return original_handler(e)
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone File "/usr/local/
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone return original_handler(e)
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone [Previous line repeated 27 more times]
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone File "/usr/local/
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone response = self.full_
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone File "/usr/local/
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone rv = self.handle_
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone File "/usr/local/
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone return original_handler(e)
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone File "/usr/local/
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone return original_handler(e)
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone File "/usr/local/
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone return original_handler(e)
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone [Previous line repeated 27 more times]
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone File "/usr/local/
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone rv = self.dispatch_
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone File "/usr/local/
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone return self.ensure_
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone File "/usr/local/
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone resp = resource(*args, **kwargs)
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone File "/usr/local/
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone return current_
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone File "/usr/local/
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone resp = meth(*args, **kwargs)
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone File "/opt/stack/
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone return self._list_users()
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone File "/opt/stack/
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone refs = PROVIDERS.
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone File "/opt/stack/
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone __ret_val = __f(*args, **kwargs)
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone File "/opt/stack/
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone return f(self, *args, **kwargs)
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone File "/opt/stack/
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone return f(self, *args, **kwargs)
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone File "/opt/stack/
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone ref_list = self._handle_
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone File "/opt/stack/
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone return driver.
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone File "/opt/stack/
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone return self.user.
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone File "/opt/stack/
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone for user in self.get_all(query, hints)]
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone File "/opt/stack/
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone objs = super(UserApi, self).get_
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone File "/opt/stack/
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone return super(EnabledEm
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone File "/opt/stack/
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone for x in self._ldap_
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone File "/opt/stack/
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone return f(self, hints, *args, **kwargs)
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone File "/opt/stack/
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone res = conn.search_
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone File "/opt/stack/
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone ldap_result = self.conn.
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone File "/opt/stack/
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone return func(self, conn, *args, **kwargs)
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone File "/opt/stack/
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone return conn.search_s(base, scope, filterstr, attrlist,
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone File "/usr/local/
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone return self.search_
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone File "/usr/local/
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone return self._apply_
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone File "/usr/local/
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone return func(self,
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone File "/usr/local/
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone return self.result(
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone File "/usr/local/
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone resp_type, resp_data, resp_msgid = self.result2(
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone File "/usr/local/
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone resp_type, resp_data, resp_msgid, resp_ctrls = self.result3(
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone File "/usr/local/
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone resp_type, resp_data, resp_msgid, decoded_resp_ctrls, retoid, retval = self.result4(
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone File "/usr/local/
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone ldap_result = self._ldap_
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone File "/usr/local/
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone result = func(*args,
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone ldap.TIMEOUT
gru 08 14:21:01 ggrasza-ubuntu2 <email address hidden>[1270797]: ERROR keystone
Changed in keystone: | |
status: | New → In Progress |
Also added an issue to python-ldap https:/ /github. com/python- ldap/python- ldap/issues/ 446