Hello Airflow Community,

I may have found a problem with 1.10.10rc2.

I upgraded my Airflow installation from 1.10.9 to 1.10.10rc2 and discovered that
the `Task Instance Details` page displays the atomic mushroom cloud for *old*
taskinstances.

The tail of the traceback is:

```
  File "/usr/local/lib/python3.7/site-packages/airflow/www/views.py",
line 1055, in <listcomp>
    failed_dep_reasons = [(dep.dep_name, dep.reason) for dep in
  File "/usr/local/lib/python3.7/site-packages/airflow/models/taskinstance.py",
line 682, in get_failed_dep_statuses
    dep_context):
  File 
"/usr/local/lib/python3.7/site-packages/airflow/ti_deps/deps/base_ti_dep.py",
line 106, in get_dep_statuses
    for dep_status in self._get_dep_statuses(ti, session, dep_context):
  File 
"/usr/local/lib/python3.7/site-packages/airflow/ti_deps/deps/pool_slots_available_dep.py",
line 67, in _get_dep_statuses
    if open_slots <= (ti.pool_slots - 1):
TypeError: unsupported operand type(s) for -: 'NoneType' and 'int'
```

I guess this is caused by the new `add pool_slots field to task_instance`
database migration, which adds a new `pool_slots` database column,
which is nullable (hence it is filled with NULLs after the migration).

Perhaps there should've been a check in the code above to coerce null
values to 1?

For the aforementioned installation I fixed the error with the
following SQL query:

```
update task_instance set pool_slots=1 where pool_slots is null;
```

Note that this query would update the whole task_instance table, so it would be
slow for a rather big Airflow installation.


Best,
Kostya

Reply via email to