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)

Reply via email to