You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by "ASF GitHub Bot (JIRA)" <ji...@apache.org> on 2018/08/13 03:39:00 UTC

[jira] [Commented] (AIRFLOW-2799) Filtering UI objects by datetime is broken

    [ https://issues.apache.org/jira/browse/AIRFLOW-2799?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16577794#comment-16577794 ] 

ASF GitHub Bot commented on AIRFLOW-2799:
-----------------------------------------

kevcampb opened a new pull request #3743: [AIRFLOW-2799] Filtering UI objects by datetime is broken
URL: https://github.com/apache/incubator-airflow/pull/3743
 
 
   This change treats the datetimes supplied by the UI as being in UTC. This only
   works correctly where the system is using UTC throughout, but is an improvement
   over the current behavior (crash).
   
   Make sure you have checked _all_ steps below.
   
   ### Jira
   
   - [X] My PR addresses the following [Airflow Jira](https://issues.apache.org/jira/browse/AIRFLOW/) issues and references them in the PR title. For example, "\[AIRFLOW-XXX\] My Airflow PR"
     - https://issues.apache.org/jira/browse/AIRFLOW-2799
     - In case you are fixing a typo in the documentation you can prepend your commit with \[AIRFLOW-XXX\], code changes always need a Jira issue.
   
   ### Description
   
   Yes there is a description
   
   ### Tests
   
   No tests as this involves UI code. 
   
   ### Commits
   
   - [X] My commits all reference Jira issues in their subject lines, and I have squashed multiple commits if they address the same issue. In addition, my commits follow the guidelines from "[How to write a good git commit message](http://chris.beams.io/posts/git-commit/)":
     1. Subject is separated from body by a blank line
     1. Subject is limited to 50 characters (not including Jira issue reference)
     1. Subject does not end with a period
     1. Subject uses the imperative mood ("add", not "adding")
     1. Body wraps at 72 characters
     1. Body explains "what" and "why", not "how"
   
   ### Documentation
   
   - [X] In case of new functionality, my PR adds documentation that describes how to use it.
     - When adding new operators/hooks/sensors, the autoclass documentation generation needs to be added.
   
   Not required
   
   ### Code Quality
   
   - [No] Passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
   
   utils.py never passed flake8 in the first place

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


> Filtering UI objects by datetime is broken 
> -------------------------------------------
>
>                 Key: AIRFLOW-2799
>                 URL: https://issues.apache.org/jira/browse/AIRFLOW-2799
>             Project: Apache Airflow
>          Issue Type: Bug
>          Components: ui, webserver
>    Affects Versions: 2.0.0
>         Environment: Debian Stretch, Python 3.5.3
>            Reporter: Kevin Campbell
>            Priority: Major
>
> On master (49fd23a3ee0269e2b974648f4a823c1d0b6c12ec) searching objects via the user interface is broken for datetime fields.
> Create a new installation
>  Create a test dag (example_bash_operator)
>  Start webserver and scheduler
>  Enable dag
> On web UI, go to Browse > Task Instances
>  Search for task instances with execution_date greater than 5 days ago
>  You will get an exception
> {code:java}
>                           ____/ (  (    )   )  \___
>                          /( (  (  )   _    ))  )   )\
>                        ((     (   )(    )  )   (   )  )
>                      ((/  ( _(   )   (   _) ) (  () )  )
>                     ( (  ( (_)   ((    (   )  .((_ ) .  )_
>                    ( (  )    (      (  )    )   ) . ) (   )
>                   (  (   (  (   ) (  _  ( _) ).  ) . ) ) ( )
>                   ( (  (   ) (  )   (  ))     ) _)(   )  )  )
>                  ( (  ( \ ) (    (_  ( ) ( )  )   ) )  )) ( )
>                   (  (   (  (   (_ ( ) ( _    )  ) (  )  )   )
>                  ( (  ( (  (  )     (_  )  ) )  _)   ) _( ( )
>                   ((  (   )(    (     _    )   _) _(_ (  (_ )
>                    (_((__(_(__(( ( ( |  ) ) ) )_))__))_)___)
>                    ((__)        \\||lll|l||///          \_))
>                             (   /(/ (  )  ) )\   )
>                           (    ( ( ( | | ) ) )\   )
>                            (   /(| / ( )) ) ) )) )
>                          (     ( ((((_(|)_)))))     )
>                           (      ||\(|(|)|/||     )
>                         (        |(||(||)||||        )
>                           (     //|/l|||)|\\ \     )
>                         (/ / //  /|//||||\\  \ \  \ _)
> -------------------------------------------------------------------------------
> Node: wave.diffractive.io
> -------------------------------------------------------------------------------
> Traceback (most recent call last):
>   File "/home/kev/.virtualenvs/airflow/local/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 1116, in _execute_context
>     context = constructor(dialect, self, conn, *args)
>   File "/home/kev/.virtualenvs/airflow/local/lib/python3.5/site-packages/sqlalchemy/engine/default.py", line 649, in _init_compiled
>     for key in compiled_params
>   File "/home/kev/.virtualenvs/airflow/local/lib/python3.5/site-packages/sqlalchemy/engine/default.py", line 649, in <genexpr>
>     for key in compiled_params
>   File "/home/kev/.virtualenvs/airflow/local/lib/python3.5/site-packages/sqlalchemy/sql/type_api.py", line 1078, in process
>     return process_param(value, dialect)
>   File "/home/kev/.virtualenvs/airflow/local/lib/python3.5/site-packages/sqlalchemy_utc/sqltypes.py", line 30, in process_bind_param
>     raise ValueError('naive datetime is disallowed')
> ValueError: naive datetime is disallowed
> The above exception was the direct cause of the following exception:
> Traceback (most recent call last):
>   File "/home/kev/.virtualenvs/airflow/local/lib/python3.5/site-packages/flask/app.py", line 1982, in wsgi_app
>     response = self.full_dispatch_request()
>   File "/home/kev/.virtualenvs/airflow/local/lib/python3.5/site-packages/flask/app.py", line 1614, in full_dispatch_request
>     rv = self.handle_user_exception(e)
>   File "/home/kev/.virtualenvs/airflow/local/lib/python3.5/site-packages/flask/app.py", line 1517, in handle_user_exception
>     reraise(exc_type, exc_value, tb)
>   File "/home/kev/.virtualenvs/airflow/local/lib/python3.5/site-packages/flask/_compat.py", line 33, in reraise
>     raise value
>   File "/home/kev/.virtualenvs/airflow/local/lib/python3.5/site-packages/flask/app.py", line 1612, in full_dispatch_request
>     rv = self.dispatch_request()
>   File "/home/kev/.virtualenvs/airflow/local/lib/python3.5/site-packages/flask/app.py", line 1598, in dispatch_request
>     return self.view_functions[rule.endpoint](**req.view_args)
>   File "/home/kev/.virtualenvs/airflow/local/lib/python3.5/site-packages/flask_admin/base.py", line 69, in inner
>     return self._run_view(f, *args, **kwargs)
>   File "/home/kev/.virtualenvs/airflow/local/lib/python3.5/site-packages/flask_admin/base.py", line 368, in _run_view
>     return fn(self, *args, **kwargs)
>   File "/home/kev/.virtualenvs/airflow/local/lib/python3.5/site-packages/flask_admin/model/base.py", line 1818, in index_view
>     view_args.search, view_args.filters)
>   File "/home/kev/.virtualenvs/airflow/local/lib/python3.5/site-packages/flask_admin/contrib/sqla/view.py", line 969, in get_list
>     count = count_query.scalar() if count_query else None
>   File "/home/kev/.virtualenvs/airflow/local/lib/python3.5/site-packages/sqlalchemy/orm/query.py", line 2843, in scalar
>     ret = self.one()
>   File "/home/kev/.virtualenvs/airflow/local/lib/python3.5/site-packages/sqlalchemy/orm/query.py", line 2814, in one
>     ret = self.one_or_none()
>   File "/home/kev/.virtualenvs/airflow/local/lib/python3.5/site-packages/sqlalchemy/orm/query.py", line 2784, in one_or_none
>     ret = list(self)
>   File "/home/kev/.virtualenvs/airflow/local/lib/python3.5/site-packages/sqlalchemy/orm/query.py", line 2855, in __iter__
>     return self._execute_and_instances(context)
>   File "/home/kev/.virtualenvs/airflow/local/lib/python3.5/site-packages/sqlalchemy/orm/query.py", line 2878, in _execute_and_instances
>     result = conn.execute(querycontext.statement, self._params)
>   File "/home/kev/.virtualenvs/airflow/local/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 945, in execute
>     return meth(self, multiparams, params)
>   File "/home/kev/.virtualenvs/airflow/local/lib/python3.5/site-packages/sqlalchemy/sql/elements.py", line 263, in _execute_on_connection
>     return connection._execute_clauseelement(self, multiparams, params)
>   File "/home/kev/.virtualenvs/airflow/local/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 1053, in _execute_clauseelement
>     compiled_sql, distilled_params
>   File "/home/kev/.virtualenvs/airflow/local/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 1121, in _execute_context
>     None, None)
>   File "/home/kev/.virtualenvs/airflow/local/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 1402, in _handle_dbapi_exception
>     exc_info
>   File "/home/kev/.virtualenvs/airflow/local/lib/python3.5/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause
>     reraise(type(exception), exception, tb=exc_tb, cause=cause)
>   File "/home/kev/.virtualenvs/airflow/local/lib/python3.5/site-packages/sqlalchemy/util/compat.py", line 186, in reraise
>     raise value.with_traceback(tb)
>   File "/home/kev/.virtualenvs/airflow/local/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 1116, in _execute_context
>     context = constructor(dialect, self, conn, *args)
>   File "/home/kev/.virtualenvs/airflow/local/lib/python3.5/site-packages/sqlalchemy/engine/default.py", line 649, in _init_compiled
>     for key in compiled_params
>   File "/home/kev/.virtualenvs/airflow/local/lib/python3.5/site-packages/sqlalchemy/engine/default.py", line 649, in <genexpr>
>     for key in compiled_params
>   File "/home/kev/.virtualenvs/airflow/local/lib/python3.5/site-packages/sqlalchemy/sql/type_api.py", line 1078, in process
>     return process_param(value, dialect)
>   File "/home/kev/.virtualenvs/airflow/local/lib/python3.5/site-packages/sqlalchemy_utc/sqltypes.py", line 30, in process_bind_param
>     raise ValueError('naive datetime is disallowed')
> sqlalchemy.exc.StatementError: (builtins.ValueError) naive datetime is disallowed [SQL: 'SELECT count(%(count_2)s) AS count_1 \nFROM task_instance \nWHERE task_instance.execution_date > %(execution_date_1)s'] [parameters: [{}]]
> {code}
> This appears to have been introduced in https://issues.apache.org/jira/browse/AIRFLOW-288
> I've written a patch for this, which appears to resolve the issue. Will raise a PR.



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