Incubator-superset: Getting 500 - Internal Server Error every time I click on "Charts" menu

Created on 9 Nov 2018  路  9Comments  路  Source: apache/incubator-superset

Make sure these boxes are checked before submitting your issue - thank you!

  • [ ] I have checked the superset logs for python stacktraces and included it here as text if there are any.
  • [x] I have reproduced the issue with at least the latest released version of superset.
  • [x] I have checked the issue tracker for the same issue and I haven't found one similar.

I was able to create a chart and a dashboard. However, I can no longer access the charts menu to create new one. I am getting the following message on console:

[2018-11-09 00:22:58,127] ERROR in app: Exception on /chart/list/ [GET]
Traceback (most recent call last):
  File "/root/venv/lib/python3.6/site-packages/flask/app.py", line 1982, in wsgi_app
    response = self.full_dispatch_request()
  File "/root/venv/lib/python3.6/site-packages/flask/app.py", line 1614, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/root/venv/lib/python3.6/site-packages/flask/app.py", line 1517, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/root/venv/lib/python3.6/site-packages/flask/_compat.py", line 33, in reraise
    raise value
  File "/root/venv/lib/python3.6/site-packages/flask/app.py", line 1612, in full_dispatch_request
    rv = self.dispatch_request()
  File "/root/venv/lib/python3.6/site-packages/flask/app.py", line 1598, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/root/venv/lib/python3.6/site-packages/flask_appbuilder/security/decorators.py", line 26, in wraps
    return f(self, *args, **kwargs)
  File "/root/venv/lib/python3.6/site-packages/flask_appbuilder/views.py", line 478, in list
    widgets=widgets)
  File "/root/venv/lib/python3.6/site-packages/flask_appbuilder/baseviews.py", line 161, in render_template
    return render_template(template, **dict(list(kwargs.items()) + list(self.extra_args.items())))
  File "/root/venv/lib/python3.6/site-packages/flask/templating.py", line 134, in render_template
    context, ctx.app)
  File "/root/venv/lib/python3.6/site-packages/flask/templating.py", line 116, in _render
    rv = template.render(context)
  File "/root/venv/lib/python3.6/site-packages/jinja2/asyncsupport.py", line 76, in render
    return original_render(self, *args, **kwargs)
  File "/root/venv/lib/python3.6/site-packages/jinja2/environment.py", line 1008, in render
    return self.environment.handle_exception(exc_info, True)
  File "/root/venv/lib/python3.6/site-packages/jinja2/environment.py", line 780, in handle_exception
    reraise(exc_type, exc_value, tb)
  File "/root/venv/lib/python3.6/site-packages/jinja2/_compat.py", line 37, in reraise
    raise value.with_traceback(tb)
  File "/root/venv/lib/python3.6/site-packages/superset/templates/appbuilder/general/model/list.html", line 2, in top-level template code
    {% import 'appbuilder/general/lib.html' as lib %}
  File "/root/venv/lib/python3.6/site-packages/flask_appbuilder/templates/appbuilder/base.html", line 1, in top-level template code
    {% extends base_template %}
  File "/root/venv/lib/python3.6/site-packages/superset/templates/superset/base.html", line 1, in top-level template code
    {% extends "appbuilder/baselayout.html" %}
  File "/root/venv/lib/python3.6/site-packages/superset/templates/appbuilder/baselayout.html", line 2, in top-level template code
    {% import 'appbuilder/baselib.html' as baselib %}
  File "/root/venv/lib/python3.6/site-packages/flask_appbuilder/templates/appbuilder/init.html", line 46, in top-level template code
    {% block body %}
  File "/root/venv/lib/python3.6/site-packages/superset/templates/appbuilder/baselayout.html", line 21, in block "body"
    {% block content %}
  File "/root/venv/lib/python3.6/site-packages/superset/templates/appbuilder/general/model/list.html", line 12, in block "content"
    {% block list_list scoped %}
  File "/root/venv/lib/python3.6/site-packages/superset/templates/appbuilder/general/model/list.html", line 13, in block "list_list"
    {{ widgets.get('list')()|safe }}
  File "/root/venv/lib/python3.6/site-packages/flask_appbuilder/widgets.py", line 34, in __call__
    return template.render(args)
  File "/root/venv/lib/python3.6/site-packages/jinja2/asyncsupport.py", line 76, in render
    return original_render(self, *args, **kwargs)
  File "/root/venv/lib/python3.6/site-packages/jinja2/environment.py", line 1008, in render
    return self.environment.handle_exception(exc_info, True)
  File "/root/venv/lib/python3.6/site-packages/jinja2/environment.py", line 780, in handle_exception
    reraise(exc_type, exc_value, tb)
  File "/root/venv/lib/python3.6/site-packages/jinja2/_compat.py", line 37, in reraise
    raise value.with_traceback(tb)
  File "/root/venv/lib/python3.6/site-packages/superset/templates/superset/fab_overrides/list.html", line 1, in top-level template code
    {% extends 'appbuilder/general/widgets/list.html' %}
  File "/root/venv/lib/python3.6/site-packages/flask_appbuilder/templates/appbuilder/general/widgets/list.html", line 2, in top-level template code
    {% extends 'appbuilder/general/widgets/base_list.html' %}
  File "/root/venv/lib/python3.6/site-packages/superset/templates/appbuilder/general/widgets/base_list.html", line 25, in top-level template code
    {% block begin_loop_values %}
  File "/root/venv/lib/python3.6/site-packages/flask_appbuilder/templates/appbuilder/general/widgets/list.html", line 45, in block "begin_loop_values"
    {% for item in value_columns %}
  File "/root/venv/lib/python3.6/site-packages/jinja2/runtime.py", line 478, in __next__
    ctx._after = ctx._safe_next()
  File "/root/venv/lib/python3.6/site-packages/jinja2/runtime.py", line 455, in _safe_next
    return next(self._iterator)
  File "/root/venv/lib/python3.6/site-packages/flask_appbuilder/models/base.py", line 114, in get_values
    retdict[col] = self._get_attr_value(item, col)
  File "/root/venv/lib/python3.6/site-packages/flask_appbuilder/models/base.py", line 66, in _get_attr_value
    return getattr(item, col)()
  File "/root/venv/lib/python3.6/site-packages/superset/models/core.py", line 181, in datasource_link
    return datasource.link if datasource else None
  File "/root/venv/lib/python3.6/site-packages/superset/connectors/druid/models.py", line 532, in link
    return Markup('<a href="{self.url}">{name}</a>').format(**locals())
TypeError: format() got multiple values for argument 'self'
Exception on /chart/list/ [GET]
Traceback (most recent call last):
  File "/root/venv/lib/python3.6/site-packages/flask/app.py", line 1982, in wsgi_app
    response = self.full_dispatch_request()
  File "/root/venv/lib/python3.6/site-packages/flask/app.py", line 1614, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/root/venv/lib/python3.6/site-packages/flask/app.py", line 1517, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/root/venv/lib/python3.6/site-packages/flask/_compat.py", line 33, in reraise
    raise value
  File "/root/venv/lib/python3.6/site-packages/flask/app.py", line 1612, in full_dispatch_request
    rv = self.dispatch_request()
  File "/root/venv/lib/python3.6/site-packages/flask/app.py", line 1598, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/root/venv/lib/python3.6/site-packages/flask_appbuilder/security/decorators.py", line 26, in wraps
    return f(self, *args, **kwargs)
  File "/root/venv/lib/python3.6/site-packages/flask_appbuilder/views.py", line 478, in list
    widgets=widgets)
  File "/root/venv/lib/python3.6/site-packages/flask_appbuilder/baseviews.py", line 161, in render_template
    return render_template(template, **dict(list(kwargs.items()) + list(self.extra_args.items())))
  File "/root/venv/lib/python3.6/site-packages/flask/templating.py", line 134, in render_template
    context, ctx.app)
  File "/root/venv/lib/python3.6/site-packages/flask/templating.py", line 116, in _render
    rv = template.render(context)
  File "/root/venv/lib/python3.6/site-packages/jinja2/asyncsupport.py", line 76, in render
    return original_render(self, *args, **kwargs)
  File "/root/venv/lib/python3.6/site-packages/jinja2/environment.py", line 1008, in render
    return self.environment.handle_exception(exc_info, True)
  File "/root/venv/lib/python3.6/site-packages/jinja2/environment.py", line 780, in handle_exception
    reraise(exc_type, exc_value, tb)
  File "/root/venv/lib/python3.6/site-packages/jinja2/_compat.py", line 37, in reraise
    raise value.with_traceback(tb)
  File "/root/venv/lib/python3.6/site-packages/superset/templates/appbuilder/general/model/list.html", line 2, in top-level template code
    {% import 'appbuilder/general/lib.html' as lib %}
  File "/root/venv/lib/python3.6/site-packages/flask_appbuilder/templates/appbuilder/base.html", line 1, in top-level template code
    {% extends base_template %}
  File "/root/venv/lib/python3.6/site-packages/superset/templates/superset/base.html", line 1, in top-level template code
    {% extends "appbuilder/baselayout.html" %}
  File "/root/venv/lib/python3.6/site-packages/superset/templates/appbuilder/baselayout.html", line 2, in top-level template code
    {% import 'appbuilder/baselib.html' as baselib %}
  File "/root/venv/lib/python3.6/site-packages/flask_appbuilder/templates/appbuilder/init.html", line 46, in top-level template code
    {% block body %}
  File "/root/venv/lib/python3.6/site-packages/superset/templates/appbuilder/baselayout.html", line 21, in block "body"
    {% block content %}
  File "/root/venv/lib/python3.6/site-packages/superset/templates/appbuilder/general/model/list.html", line 12, in block "content"
    {% block list_list scoped %}
  File "/root/venv/lib/python3.6/site-packages/superset/templates/appbuilder/general/model/list.html", line 13, in block "list_list"
    {{ widgets.get('list')()|safe }}
  File "/root/venv/lib/python3.6/site-packages/flask_appbuilder/widgets.py", line 34, in __call__
    return template.render(args)
  File "/root/venv/lib/python3.6/site-packages/jinja2/asyncsupport.py", line 76, in render
    return original_render(self, *args, **kwargs)
  File "/root/venv/lib/python3.6/site-packages/jinja2/environment.py", line 1008, in render
    return self.environment.handle_exception(exc_info, True)
  File "/root/venv/lib/python3.6/site-packages/jinja2/environment.py", line 780, in handle_exception
    reraise(exc_type, exc_value, tb)
  File "/root/venv/lib/python3.6/site-packages/jinja2/_compat.py", line 37, in reraise
    raise value.with_traceback(tb)
  File "/root/venv/lib/python3.6/site-packages/superset/templates/superset/fab_overrides/list.html", line 1, in top-level template code
    {% extends 'appbuilder/general/widgets/list.html' %}
  File "/root/venv/lib/python3.6/site-packages/flask_appbuilder/templates/appbuilder/general/widgets/list.html", line 2, in top-level template code
    {% extends 'appbuilder/general/widgets/base_list.html' %}
  File "/root/venv/lib/python3.6/site-packages/superset/templates/appbuilder/general/widgets/base_list.html", line 25, in top-level template code
    {% block begin_loop_values %}
  File "/root/venv/lib/python3.6/site-packages/flask_appbuilder/templates/appbuilder/general/widgets/list.html", line 45, in block "begin_loop_values"
    {% for item in value_columns %}
  File "/root/venv/lib/python3.6/site-packages/jinja2/runtime.py", line 478, in __next__
    ctx._after = ctx._safe_next()
  File "/root/venv/lib/python3.6/site-packages/jinja2/runtime.py", line 455, in _safe_next
    return next(self._iterator)
  File "/root/venv/lib/python3.6/site-packages/flask_appbuilder/models/base.py", line 114, in get_values
    retdict[col] = self._get_attr_value(item, col)
  File "/root/venv/lib/python3.6/site-packages/flask_appbuilder/models/base.py", line 66, in _get_attr_value
    return getattr(item, col)()
  File "/root/venv/lib/python3.6/site-packages/superset/models/core.py", line 181, in datasource_link
    return datasource.link if datasource else None
  File "/root/venv/lib/python3.6/site-packages/superset/connectors/druid/models.py", line 532, in link
    return Markup('<a href="{self.url}">{name}</a>').format(**locals())
TypeError: format() got multiple values for argument 'self'

I tried to restart the service and reboot the server. It didn't help.

Superset version

Latest

Expected results

I am expecting to access the "charts" menu

Actual results

Getting 500 - Server Error

Steps to reproduce

System was installed on Ubuntu 18.04 LTS following these steps:

  • apt-get install build-essential libssl-dev libffi-dev python3-dev python3-pip libsasl2-dev libldap2-dev
  • pip3 install virtualenv
  • virtualenv venv
  • . ./venv/bin/activate
  • pip3 install --upgrade setuptools pip
  • pip install superset
  • fabmanager create-admin --app superset
  • superset db upgrade
  • superset load_examples
  • superset init
  • superset runserver

I am still able to login and browse the UI but cannot access the charts anymore after creating a chart and assigning it to a dashboard.

#bug

Most helpful comment

The more targeted fix would be on "/root/venv/lib/python3.6/site-packages/superset/connectors/druid/models.py", line 532, to go

    return Markup('<a href="{self.url}">{name}</a>').format(**locals())
    return Markup('<a href="{self.url}">{name}</a>'.format(**locals()))

All 9 comments

Same problem here with CentOS. However, problem only affects the charts view. Bypassing the view and adding a chart via http://localhost:8088/chart/add works fine.

I am also facing the same issue.

me too.

python 3.6.6
superset 0.28.1 (pip install it)
Flask-SQLAlchemy 2.3.2

reproduced the issue:
save a chart (with druid datasource) and then click 'charts'

After patching file : /usr/local/lib/python3.7/site-packages/markupsafe/__init__.py

    def format(*args, **kwargs): 
    to
    def format(self, *args, **kwargs):

It worked for me.

plz check if markupsafe==1.0 in your env.

The more targeted fix would be on "/root/venv/lib/python3.6/site-packages/superset/connectors/druid/models.py", line 532, to go

    return Markup('<a href="{self.url}">{name}</a>').format(**locals())
    return Markup('<a href="{self.url}">{name}</a>'.format(**locals()))

The more targeted fix would be on "/root/venv/lib/python3.6/site-packages/superset/connectors/druid/models.py", line 532, to go

    return Markup('<a href="{self.url}">{name}</a>').format(**locals())
    return Markup('<a href="{self.url}">{name}</a>'.format(**locals()))

Hi @mistercrunch , I have installed superset(0.28.1) with pip and running it with superset runserver -d in google cloud , while accessing the superset charts i'm getting error which is similar to this error
What I have understood from this issue discussion is to resolve this, I have to replace the following line in models.py
532 return Markup('<a href="{self.url}">{name}</a>').format(**locals())
with the below line
return Markup('<a href="{self.url}">{name}</a>'.format(**locals()))
and restart superset
Is this what you are suggesting to do?
If that is the case, after I change like that and restarted it, my previous charts which I had made will be available or not?
If that is not the case, kindly let me know the procedure steps
BTW,I'm a beginner in python and venvs
FYI,I have placed an error stacktrace

**Sorry, something went wrong
500 - Internal Server Error**
Traceback (most recent call last):
  File "/home/sluser/venv/lib/python3.6/site-packages/flask/app.py", line 1982, in wsgi_app
    response = self.full_dispatch_request()
  File "/home/sluser/venv/lib/python3.6/site-packages/flask/app.py", line 1614, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/home/sluser/venv/lib/python3.6/site-packages/flask/app.py", line 1517, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/home/sluser/venv/lib/python3.6/site-packages/flask/_compat.py", line 33, in reraise
    raise value
  File "/home/sluser/venv/lib/python3.6/site-packages/flask/app.py", line 1612, in full_dispatch_request
    rv = self.dispatch_request()
  File "/home/sluser/venv/lib/python3.6/site-packages/flask/app.py", line 1598, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/home/sluser/venv/lib/python3.6/site-packages/flask_appbuilder/security/decorators.py", line 26, in wraps
    return f(self, *args, **kwargs)
  File "/home/sluser/venv/lib/python3.6/site-packages/flask_appbuilder/views.py", line 478, in list
    widgets=widgets)
  File "/home/sluser/venv/lib/python3.6/site-packages/flask_appbuilder/baseviews.py", line 161, in render_template
    return render_template(template, **dict(list(kwargs.items()) + list(self.extra_args.items())))
  File "/home/sluser/venv/lib/python3.6/site-packages/flask/templating.py", line 134, in render_template
    context, ctx.app)
  File "/home/sluser/venv/lib/python3.6/site-packages/flask/templating.py", line 116, in _render
    rv = template.render(context)
  File "/home/sluser/venv/lib/python3.6/site-packages/jinja2/asyncsupport.py", line 76, in render
    return original_render(self, *args, **kwargs)
  File "/home/sluser/venv/lib/python3.6/site-packages/jinja2/environment.py", line 1008, in render
    return self.environment.handle_exception(exc_info, True)
  File "/home/sluser/venv/lib/python3.6/site-packages/jinja2/environment.py", line 780, in handle_exception
    reraise(exc_type, exc_value, tb)
  File "/home/sluser/venv/lib/python3.6/site-packages/jinja2/_compat.py", line 37, in reraise
    raise value.with_traceback(tb)
  File "/home/sluser/venv/lib/python3.6/site-packages/superset/templates/appbuilder/general/model/list.html", line 2, in top-level template code
    {% import 'appbuilder/general/lib.html' as lib %}
  File "/home/sluser/venv/lib/python3.6/site-packages/flask_appbuilder/templates/appbuilder/base.html", line 1, in top-level template code
    {% extends base_template %}
  File "/home/sluser/venv/lib/python3.6/site-packages/superset/templates/superset/base.html", line 1, in top-level template code
    {% extends "appbuilder/baselayout.html" %}
  File "/home/sluser/venv/lib/python3.6/site-packages/superset/templates/appbuilder/baselayout.html", line 2, in top-level template code
    {% import 'appbuilder/baselib.html' as baselib %}
  File "/home/sluser/venv/lib/python3.6/site-packages/flask_appbuilder/templates/appbuilder/init.html", line 46, in top-level template code
    {% block body %}
  File "/home/sluser/venv/lib/python3.6/site-packages/superset/templates/appbuilder/baselayout.html", line 21, in block "body"
    {% block content %}
  File "/home/sluser/venv/lib/python3.6/site-packages/superset/templates/appbuilder/general/model/list.html", line 12, in block "content"
    {% block list_list scoped %}
  File "/home/sluser/venv/lib/python3.6/site-packages/superset/templates/appbuilder/general/model/list.html", line 13, in block "list_list"
    {{ widgets.get('list')()|safe }}
  File "/home/sluser/venv/lib/python3.6/site-packages/flask_appbuilder/widgets.py", line 34, in __call__
    return template.render(args)
  File "/home/sluser/venv/lib/python3.6/site-packages/jinja2/asyncsupport.py", line 76, in render
    return original_render(self, *args, **kwargs)
  File "/home/sluser/venv/lib/python3.6/site-packages/jinja2/environment.py", line 1008, in render
    return self.environment.handle_exception(exc_info, True)
  File "/home/sluser/venv/lib/python3.6/site-packages/jinja2/environment.py", line 780, in handle_exception
    reraise(exc_type, exc_value, tb)
  File "/home/sluser/venv/lib/python3.6/site-packages/jinja2/_compat.py", line 37, in reraise
    raise value.with_traceback(tb)
  File "/home/sluser/venv/lib/python3.6/site-packages/superset/templates/superset/fab_overrides/list.html", line 1, in top-level template code
    {% extends 'appbuilder/general/widgets/list.html' %}
  File "/home/sluser/venv/lib/python3.6/site-packages/flask_appbuilder/templates/appbuilder/general/widgets/list.html", line 2, in top-level template code
    {% extends 'appbuilder/general/widgets/base_list.html' %}
  File "/home/sluser/venv/lib/python3.6/site-packages/superset/templates/appbuilder/general/widgets/base_list.html", line 25, in top-level template code
    {% block begin_loop_values %}
  File "/home/sluser/venv/lib/python3.6/site-packages/flask_appbuilder/templates/appbuilder/general/widgets/list.html", line 45, in block "begin_loop_values"
    {% for item in value_columns %}
  File "/home/sluser/venv/lib/python3.6/site-packages/jinja2/runtime.py", line 435, in __init__
    self._after = self._safe_next()
  File "/home/sluser/venv/lib/python3.6/site-packages/jinja2/runtime.py", line 455, in _safe_next
    return next(self._iterator)
  File "/home/sluser/venv/lib/python3.6/site-packages/flask_appbuilder/models/base.py", line 114, in get_values
    retdict[col] = self._get_attr_value(item, col)
  File "/home/sluser/venv/lib/python3.6/site-packages/flask_appbuilder/models/base.py", line 66, in _get_attr_value
    return getattr(item, col)()
  File "/home/sluser/venv/lib/python3.6/site-packages/superset/models/core.py", line 181, in datasource_link
    return datasource.link if datasource else None
  File "/home/sluser/venv/lib/python3.6/site-packages/superset/connectors/druid/models.py", line 532, in link
    return Markup('<a href="{self.url}">{name}</a>').format(**locals())
TypeError: format() got multiple values for argument 'self' 

The more targeted fix would be on "/root/venv/lib/python3.6/site-packages/superset/connectors/druid/models.py", line 532, to go

    return Markup('<a href="{self.url}">{name}</a>').format(**locals())
    return Markup('<a href="{self.url}">{name}</a>'.format(**locals()))

Thank you. Worked like a charm. All previous charts are retained.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

amien90 picture amien90  路  3Comments

kalimuthu123 picture kalimuthu123  路  3Comments

sashank picture sashank  路  3Comments

tmccartan picture tmccartan  路  3Comments

dinhhuydh picture dinhhuydh  路  3Comments