Dan Davydov created AIRFLOW-1288:
------------------------------------

             Summary: Bad owners field in DAGs breaks Airflow front page
                 Key: AIRFLOW-1288
                 URL: https://issues.apache.org/jira/browse/AIRFLOW-1288
             Project: Apache Airflow
          Issue Type: Bug
          Components: webserver
            Reporter: Dan Davydov


DAGs that have owners set to a bad value break the front page of the webserver 
with an error like below. Instead these should just cause import errors for the 
specific dags in question.
{{code}}
Ooops.

                          ____/ (  (    )   )  \___
                         /( (  (  )   _    ))  )   )\
                       ((     (   )(    )  )   (   )  )
                     ((/  ( _(   )   (   _) ) (  () )  )
                    ( (  ( (_)   ((    (   )  .((_ ) .  )_
                   ( (  )    (      (  )    )   ) . ) (   )
                  (  (   (  (   ) (  _  ( _) ).  ) . ) ) ( )
                  ( (  (   ) (  )   (  ))     ) _)(   )  )  )
                 ( (  ( \ ) (    (_  ( ) ( )  )   ) )  )) ( )
                  (  (   (  (   (_ ( ) ( _    )  ) (  )  )   )
                 ( (  ( (  (  )     (_  )  ) )  _)   ) _( ( )
                  ((  (   )(    (     _    )   _) _(_ (  (_ )
                   (_((__(_(__(( ( ( |  ) ) ) )_))__))_)___)
                   ((__)        \\||lll|l||///          \_))
                            (   /(/ (  )  ) )\   )
                          (    ( ( ( | | ) ) )\   )
                           (   /(| / ( )) ) ) )) )
                         (     ( ((((_(|)_)))))     )
                          (      ||\(|(|)|/||     )
                        (        |(||(||)||||        )
                          (     //|/l|||)|\\ \     )
                        (/ / //  /|//||||\\  \ \  \ _)
-------------------------------------------------------------------------------
Node: i-0dbbddfb63fb2cfbc.inst.aws.airbnb.com
-------------------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1817, in 
wsgi_app
    response = self.full_dispatch_request()
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1477, in 
full_dispatch_request
    rv = self.handle_user_exception(e)
  File 
"/usr/local/lib/python2.7/dist-packages/newrelic/hooks/framework_flask.py", 
line 103, in _nr_wrapper_Flask_handle_exception_
    return wrapped(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1381, in 
handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1475, in 
full_dispatch_request
    rv = self.dispatch_request()
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1461, in 
dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File 
"/usr/local/lib/python2.7/dist-packages/newrelic/hooks/framework_flask.py", 
line 40, in _nr_wrapper_handler_
    return wrapped(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/flask_admin/base.py", line 68, 
in inner
    return self._run_view(f, *args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/flask_admin/base.py", line 367, 
in _run_view
    return fn(self, *args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/flask_login.py", line 758, in 
decorated_view
    return func(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/airflow/www/views.py", line 
1909, in index
    all_dag_ids=all_dag_ids)
  File "/usr/local/lib/python2.7/dist-packages/flask_admin/base.py", line 307, 
in render
    return render_template(template, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/newrelic/api/function_trace.py", 
line 110, in literal_wrapper
    return wrapped(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/flask/templating.py", line 128, 
in render_template
    context, ctx.app)
  File "/usr/local/lib/python2.7/dist-packages/flask/templating.py", line 110, 
in _render
    rv = template.render(context)
  File "/usr/local/lib/python2.7/dist-packages/newrelic/api/function_trace.py", 
line 98, in dynamic_wrapper
    return wrapped(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/jinja2/environment.py", line 
989, in render
    return self.environment.handle_exception(exc_info, True)
  File "/usr/local/lib/python2.7/dist-packages/jinja2/environment.py", line 
754, in handle_exception
    reraise(exc_type, exc_value, tb)
  File 
"/usr/local/lib/python2.7/dist-packages/airflow/www/templates/airflow/dags.html",
 line 18, in top-level template code
    {% extends "airflow/master.html" %}
  File 
"/usr/local/lib/python2.7/dist-packages/airflow/www/templates/airflow/master.html",
 line 18, in top-level template code
    {% extends "admin/master.html" %}
  File 
"/usr/local/lib/python2.7/dist-packages/airflow/www/templates/admin/master.html",
 line 18, in top-level template code
    {% extends 'admin/base.html' %}
  File 
"/usr/local/lib/python2.7/dist-packages/flask_admin/templates/bootstrap3/admin/base.html",
 line 30, in top-level template code
    {% block page_body %}
  File 
"/usr/local/lib/python2.7/dist-packages/airflow/www/templates/admin/master.html",
 line 104, in block "page_body"
    {% block body %}
  File 
"/usr/local/lib/python2.7/dist-packages/airflow/www/templates/airflow/dags.html",
 line 99, in block "body"
    {{ dag.owner if dag else orm_dags[dag_id].owners }}
  File "/usr/local/lib/python2.7/dist-packages/jinja2/environment.py", line 
408, in getattr
    return getattr(obj, attribute)
  File "/usr/local/lib/python2.7/dist-packages/airflow/models.py", line 2876, 
in owner
    return ", ".join(list(set([t.owner for t in self.tasks])))
TypeError: unhashable type: 'list'
{{code}}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to