[ 
https://issues.apache.org/jira/browse/AIRFLOW-4351?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

t oo updated AIRFLOW-4351:
--------------------------
    Description: 
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

 

 

 

Also got this intermittently:

 

{ldap_auth.py:81} ERROR - Cannot bind to ldap server: invalidCredentials

 

 

  was:
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

 

 


> [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
>            Priority: Minor
>
> 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
>  
>  
>  
> Also got this intermittently:
>  
> {ldap_auth.py:81} ERROR - Cannot bind to ldap server: invalidCredentials
>  
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to