t oo created AIRFLOW-4351:
-----------------------------
Summary: [UI] login - ldap connection retries
Key: AIRFLOW-4351
URL: https://issues.apache.org/jira/browse/AIRFLOW-4351
Project: Apache Airflow
Issue Type: Improvement
Components: ui
Affects Versions: 1.10.3
Reporter: t oo
Ideally the connection to ldap should retry (2 to 3 times maybe with half
second interval) in the background otherwise the user sees big mushroom cloud
when there could just be temporary network blip
[https://github.com/apache/airflow/blob/master/airflow/contrib/auth/backends/ldap_auth.py]
|if not conn.bind():|
| |log.error("Cannot bind to ldap server: %s ", conn.last_error)|
| |raise AuthenticationError("Cannot bind to ldap server")|
| |
Traceback (most recent call last):
File "/home/ec2-user/venv/local/lib64/python2.7/site-packages/flask/app.py",
line 2292, in wsgi_app
response = self.full_dispatch_request()
File "/home/ec2-user/venv/local/lib64/python2.7/site-packages/flask/app.py",
line 1815, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/home/ec2-user/venv/local/lib64/python2.7/site-packages/flask/app.py",
line 1718, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/home/ec2-user/venv/local/lib64/python2.7/site-packages/flask/app.py",
line 1813, in full_dispatch_request
rv = self.dispatch_request()
File "/home/ec2-user/venv/local/lib64/python2.7/site-packages/flask/app.py",
line 1799, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File
"/home/ec2-user/venv/local/lib64/python2.7/site-packages/flask_admin/base.py",
line 69, in inner
return self._run_view(f, *args, **kwargs)
File
"/home/ec2-user/venv/local/lib64/python2.7/site-packages/flask_admin/base.py",
line 368, in _run_view
return fn(self, *args, **kwargs)
File
"/home/ec2-user/venv/local/lib/python2.7/site-packages/airflow/www/views.py",
line 731, in login
return airflow.login.login(self, request)
File
"/home/ec2-user/venv/local/lib/python2.7/site-packages/airflow/utils/db.py",
line 73, in wrapper
return func(*args, **kwargs)
File
"/home/ec2-user/venv/local/lib/python2.7/site-packages/airflow/contrib/auth/backends/ldap_auth.py",
line 308, in login
LdapUser.try_login(username, password)
File
"/home/ec2-user/venv/local/lib/python2.7/site-packages/airflow/contrib/auth/backends/ldap_auth.py",
line 232, in try_login
conn = get_ldap_connection(entry['dn'], password)
File
"/home/ec2-user/venv/local/lib/python2.7/site-packages/airflow/contrib/auth/backends/ldap_auth.py",
line 80, in get_ldap_connection
if not conn.bind():
File
"/home/ec2-user/venv/local/lib/python2.7/site-packages/ldap3/core/connection.py",
line 548, in bind
response = self.post_send_single_response(self.send('bindRequest', request,
controls))
File
"/home/ec2-user/venv/local/lib/python2.7/site-packages/ldap3/strategy/sync.py",
line 121, in post_send_single_response
responses, result = self.get_response(message_id)
File
"/home/ec2-user/venv/local/lib/python2.7/site-packages/ldap3/strategy/base.py",
line 325, in get_response
responses = self._get_response(message_id)
File
"/home/ec2-user/venv/local/lib/python2.7/site-packages/ldap3/strategy/sync.py",
line 157, in _get_response
responses = self.receiving()
File
"/home/ec2-user/venv/local/lib/python2.7/site-packages/ldap3/strategy/sync.py",
line 92, in receiving
raise communication_exception_factory(LDAPSocketReceiveError,
type(e)(str(e)))(self.connection.last_error)
LDAPSocketReceiveError: error receiving data: [Errno 104] Connection reset by
peer
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)