Kevin Campbell created AIRFLOW-2799:
---------------------------------------
Summary: 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: Airflow 2.0
Environment: Debian Stretch, Python 3.5.3
Reporter: Kevin Campbell
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)