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

Ash Berlin-Taylor updated AIRFLOW-2799:
---------------------------------------
    Affects Version/s:     (was: 2.0.0)
                       1.10.0
        Fix Version/s: 1.10.1

> 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: 1.10.0
>         Environment: Debian Stretch, Python 3.5.3
>            Reporter: Kevin Campbell
>            Priority: Major
>             Fix For: 1.10.1
>
>
> 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)

Reply via email to