Hi everyone,

We have been using airflow for roughly about 7 months. Pretty smooth :)
 Thanks!

Today when I build my airflow container, I found a weird issue.

This is install command for airflow.

ENV AIRFLOW_VERSION 1.7.0RUN sudo pip install airflow==${AIRFLOW_VERSION}


Now the problem happens with 'sqlalchemy '.
While installing airflow, I saw this in the logs.

*Collecting sqlalchemy>=0.9.8 (from airflow==1.7.0)*
*  Downloading SQLAlchemy-1.1.2.tar.gz (5.1MB)*

When I start the scheduler, I see a lot of errors (below stack trace).
This is happening when I am creating pools (programmatically).

I think we are hitting this issue:
http://docs.sqlalchemy.org/en/latest/changelog/migration_11.html
(sqlalchemy has a new release on Oct 17th)

I am not sure if this is a bug.
Looking at airflow/setup.py,
I find install_requires has  "'sqlalchemy>=0.9.8'"

Shouldn't this be "'sqlalchemy>=0.9.8, <=1.1'"  ?

If not, has somebody faced a similar issue? Any pointers?

*Stack trace: *
When I started the scheduler process, this is the error I got:

[2016-10-19 07:21:56,073] {jobs.py:642} ERROR - Object blah_pool is not
legal as a SQL literal value
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/airflow/jobs.py", line 639,
in _execute
    self.process_dag(dag, executor)
  File "/usr/local/lib/python2.7/dist-packages/airflow/jobs.py", line 488,
in process_dag
    elif ti.is_runnable(flag_upstream_failed=True):
  File "/usr/local/lib/python2.7/dist-packages/airflow/models.py", line
770, in is_runnable
    return self.is_queueable(flag_upstream_failed) and not self.pool_full()
  File "/usr/local/lib/python2.7/dist-packages/airflow/utils.py", line 142,
in wrapper
    result = func(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/airflow/models.py", line
939, in pool_full
    .filter(Pool.pool == self.task.pool)
  File
"/usr/local/lib/python2.7/dist-packages/sqlalchemy/sql/operators.py", line
304, in __eq__
    return self.operate(eq, other)
  File
"/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/attributes.py", line
175, in operate
    return op(self.comparator, *other, **kwargs)
  File
"/usr/local/lib/python2.7/dist-packages/sqlalchemy/sql/operators.py", line
304, in __eq__
    return self.operate(eq, other)
  File
"/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/properties.py", line
270, in operate
    return op(self.__clause_element__(), *other, **kwargs)
  File
"/usr/local/lib/python2.7/dist-packages/sqlalchemy/sql/annotation.py", line
95, in __eq__
    return self.__element.__class__.__eq__(self, other)
  File
"/usr/local/lib/python2.7/dist-packages/sqlalchemy/sql/operators.py", line
304, in __eq__
    return self.operate(eq, other)
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/sql/elements.py",
line 686, in operate
    return op(self.comparator, *other, **kwargs)
  File
"/usr/local/lib/python2.7/dist-packages/sqlalchemy/sql/operators.py", line
304, in __eq__
    return self.operate(eq, other)
  File "<string>", line 1, in <lambda>
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/sql/type_api.py",
line 63, in operate
    return o[0](self.expr, op, *(other + o[1:]), **kwargs)
  File
"/usr/local/lib/python2.7/dist-packages/sqlalchemy/sql/default_comparator.py",
line 64, in _boolean_compare
    obj = _check_literal(expr, op, obj)
  File
"/usr/local/lib/python2.7/dist-packages/sqlalchemy/sql/default_comparator.py",
line 305, in _check_literal
    return expr._bind_param(operator, other, type_=bindparam_type)
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/sql/elements.py",
line 3823, in _bind_param
    unique=True)
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/sql/elements.py",
line 1094, in __init__
    _compared_to_operator, value)
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/sql/type_api.py",
line 516, in coerce_compared_value
    _coerced_type = _resolve_value_to_type(value)
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/sql/sqltypes.py",
line 2467, in _resolve_value_to_type
    "Object %r is not legal as a SQL literal value" % value)
ArgumentError: Object monitor_pool is not legal as a SQL literal value

Reply via email to