airflow: pendulum.tz.zoneinfo.exceptions.InvalidTimezone

Apache Airflow version: 2.0.0

Environment:

  • Cloud provider or hardware configuration: On-premise
  • OS (e.g. from /etc/os-release): Manjaro Linux
  • Kernel (e.g. uname -a): 5.9.11-3-MANJARO
  • Install tools: pip
  • Others:

What happened:

The web server crash on some actions after running a DAG with the following error:

Traceback (most recent call last):
  File "/home/user/Programs/anaconda3/envs/tfx/lib/python3.8/site-packages/flask/app.py", line 2446, in wsgi_app
    response = self.full_dispatch_request()
  File "/home/user/Programs/anaconda3/envs/tfx/lib/python3.8/site-packages/flask/app.py", line 1951, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/home/user/Programs/anaconda3/envs/tfx/lib/python3.8/site-packages/flask/app.py", line 1820, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/home/user/Programs/anaconda3/envs/tfx/lib/python3.8/site-packages/flask/_compat.py", line 39, in reraise
    raise value
  File "/home/user/Programs/anaconda3/envs/tfx/lib/python3.8/site-packages/flask/app.py", line 1949, in full_dispatch_request
    rv = self.dispatch_request()
  File "/home/user/Programs/anaconda3/envs/tfx/lib/python3.8/site-packages/flask/app.py", line 1935, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/home/user/Programs/anaconda3/envs/tfx/lib/python3.8/site-packages/airflow/www/auth.py", line 34, in decorated
    return func(*args, **kwargs)
  File "/home/user/Programs/anaconda3/envs/tfx/lib/python3.8/site-packages/airflow/www/decorators.py", line 60, in wrapper
    return f(*args, **kwargs)
  File "/home/user/Programs/anaconda3/envs/tfx/lib/python3.8/site-packages/airflow/utils/session.py", line 65, in wrapper
    return func(*args, session=session, **kwargs)
  File "/home/user/Programs/anaconda3/envs/tfx/lib/python3.8/site-packages/airflow/www/views.py", line 1108, in log
    return self.render_template(
  File "/home/user/Programs/anaconda3/envs/tfx/lib/python3.8/site-packages/airflow/www/views.py", line 396, in render_template
    return super().render_template(
  File "/home/user/Programs/anaconda3/envs/tfx/lib/python3.8/site-packages/flask_appbuilder/baseviews.py", line 280, in render_template
    return render_template(
  File "/home/user/Programs/anaconda3/envs/tfx/lib/python3.8/site-packages/flask/templating.py", line 137, in render_template
    return _render(
  File "/home/user/Programs/anaconda3/envs/tfx/lib/python3.8/site-packages/flask/templating.py", line 120, in _render
    rv = template.render(context)
  File "/home/user/Programs/anaconda3/envs/tfx/lib/python3.8/site-packages/jinja2/asyncsupport.py", line 76, in render
    return original_render(self, *args, **kwargs)
  File "/home/user/Programs/anaconda3/envs/tfx/lib/python3.8/site-packages/jinja2/environment.py", line 1008, in render
    return self.environment.handle_exception(exc_info, True)
  File "/home/user/Programs/anaconda3/envs/tfx/lib/python3.8/site-packages/jinja2/environment.py", line 780, in handle_exception
    reraise(exc_type, exc_value, tb)
  File "/home/user/Programs/anaconda3/envs/tfx/lib/python3.8/site-packages/jinja2/_compat.py", line 37, in reraise
    raise value.with_traceback(tb)
  File "/home/user/Programs/anaconda3/envs/tfx/lib/python3.8/site-packages/airflow/www/templates/airflow/ti_log.html", line 20, in <module>
    {% extends "airflow/task_instance.html" %}
  File "/home/user/Programs/anaconda3/envs/tfx/lib/python3.8/site-packages/jinja2/environment.py", line 1005, in render
    return concat(self.root_render_func(self.new_context(vars)))
  File "/home/user/Programs/anaconda3/envs/tfx/lib/python3.8/site-packages/airflow/www/templates/airflow/ti_log.html", line 16, in root
    specific language governing permissions and limitations
  File "/home/user/Programs/anaconda3/envs/tfx/lib/python3.8/site-packages/airflow/www/templates/airflow/task_instance.html", line 23, in root
    {% block content %}
  File "/home/user/Programs/anaconda3/envs/tfx/lib/python3.8/site-packages/airflow/www/templates/airflow/dag.html", line 24, in root
  File "/home/user/Programs/anaconda3/envs/tfx/lib/python3.8/site-packages/airflow/www/templates/airflow/main.html", line 16, in root
    specific language governing permissions and limitations
  File "/home/user/Programs/anaconda3/envs/tfx/lib/python3.8/site-packages/flask_appbuilder/templates/appbuilder/baselayout.html", line 17, in root
    {% include 'appbuilder/flash.html' %}
  File "/home/user/Programs/anaconda3/envs/tfx/lib/python3.8/site-packages/flask_appbuilder/templates/appbuilder/init.html", line 32, in root
    <link href="{{url_for('appbuilder.static',filename='select2/select2.css')}}" rel="stylesheet">
  File "/home/user/Programs/anaconda3/envs/tfx/lib/python3.8/site-packages/flask_appbuilder/templates/appbuilder/baselayout.html", line 35, in block_body
  File "/home/user/Programs/anaconda3/envs/tfx/lib/python3.8/site-packages/airflow/www/templates/airflow/main.html", line 74, in block_messages
    {% endif %}
  File "/home/user/Programs/anaconda3/envs/tfx/lib/python3.8/site-packages/jinja2/runtime.py", line 262, in call
    return __obj(*args, **kwargs)
  File "/home/user/Programs/anaconda3/envs/tfx/lib/python3.8/site-packages/airflow/macros/__init__.py", line 83, in datetime_diff_for_humans
    return pendulum.instance(dt).diff_for_humans(since)
  File "/home/user/Programs/anaconda3/envs/tfx/lib/python3.8/site-packages/pendulum/datetime.py", line 824, in diff_for_humans
    other = self.now()
  File "/home/user/Programs/anaconda3/envs/tfx/lib/python3.8/site-packages/pendulum/datetime.py", line 106, in now
    return pendulum.now(tz)
  File "/home/user/Programs/anaconda3/envs/tfx/lib/python3.8/site-packages/pendulum/__init__.py", line 211, in now
    dt = _datetime.datetime.now(local_timezone())
  File "/home/user/Programs/anaconda3/envs/tfx/lib/python3.8/site-packages/pendulum/tz/__init__.py", line 60, in local_timezone
    return get_local_timezone()
  File "/home/user/Programs/anaconda3/envs/tfx/lib/python3.8/site-packages/pendulum/tz/local_timezone.py", line 35, in get_local_timezone
    tz = _get_system_timezone()
  File "/home/user/Programs/anaconda3/envs/tfx/lib/python3.8/site-packages/pendulum/tz/local_timezone.py", line 63, in _get_system_timezone
    return _get_unix_timezone()
  File "/home/user/Programs/anaconda3/envs/tfx/lib/python3.8/site-packages/pendulum/tz/local_timezone.py", line 178, in _get_unix_timezone
    return Timezone(etctz.replace(" ", "_"))
  File "/home/user/Programs/anaconda3/envs/tfx/lib/python3.8/site-packages/pendulum/tz/timezone.py", line 40, in __init__
    tz = read(name, extend=extended)
  File "/home/user/Programs/anaconda3/envs/tfx/lib/python3.8/site-packages/pendulum/tz/zoneinfo/__init__.py", line 9, in read
    return Reader(extend=extend).read_for(name)
  File "/home/user/Programs/anaconda3/envs/tfx/lib/python3.8/site-packages/pendulum/tz/zoneinfo/reader.py", line 52, in read_for
    raise InvalidTimezone(timezone)
pendulum.tz.zoneinfo.exceptions.InvalidTimezone: Invalid timezone "Europe/Athens
pur"

Notice the \npur.

What you expected to happen:

No crash

How to reproduce it: I’ve been using the DAGs from this tutorial . To make the matter simpler I’ve uploaded the dags here on Github Gist

Anything else we need to know:

This problem occurs after a short period of time when running the DAGs shared in this issue. The webserver needs to be restarted from scratch to fix it.

About this issue

  • Original URL
  • State: closed
  • Created 4 years ago
  • Comments: 17 (6 by maintainers)

Most upvoted comments

@EKami were you able to resolve this issue? We have same issue with Airflow