Flower: Data table error appears when trying to open tasks page on flower 0.9.0

Created on 24 Mar 2016  路  29Comments  路  Source: mher/flower

Error appears in an alert dialog containing this text:
DataTables warning: table id=tasks-table - Ajax error. For more information about this error, please see http://datatables.net/tn/7

Most helpful comment

I believe this issue should be re-opened. We are running the latest version of flower straight from the repo and this error happens constantly.

All 29 comments

Same error for me. Here is some information from the HTTP 500 ajax response

flower   -> flower:0.9.0 tornado:4.2 babel:2.2.0
software -> celery:3.1.23 (Cipater) kombu:3.0.35 py:3.4.3
            billiard:3.3.0.23 redis:2.10.5
platform -> system:Linux arch:64bit imp:CPython
loader   -> djcelery.loaders.DjangoLoader
settings -> transport:redis results:redis://localhost:6379/1

Traceback (most recent call last):
  File ".../venv/lib/python3.4/site-packages/tornado/web.py", line 1413, in _execute
    result = method(*self.path_args, **self.path_kwargs)
  File ".../venv/lib/python3.4/site-packages/tornado/web.py", line 2717, in wrapper
    return method(self, *args, **kwargs)
  File ".../venv/lib/python3.4/site-packages/flower/views/tasks.py", line 45, in get
    reverse=sort_order)
TypeError: unorderable types: NoneType() < NoneType()

Also getting this issue:

flower   -> flower:0.9.0 tornado:4.2 babel:2.2.0
software -> celery:3.1.22 (Cipater) kombu:3.0.35 py:3.4.3
            billiard:3.3.0.23 redis:2.10.5
platform -> system:Linux arch:64bit, ELF imp:CPython
loader   -> celery.loaders.app.AppLoader
settings -> transport:redis results:disabled

    Traceback (most recent call last):
      File ".../venv/lib/python3.4/site-packages/tornado/web.py", line 1413, in _execute
        result = method(*self.path_args, **self.path_kwargs)
      File ".../venv/lib/python3.4/site-packages/tornado/web.py", line 2717, in wrapper
        return method(self, *args, **kwargs)
      File ".../venv/lib/python3.4/site-packages/flower/views/tasks.py", line 45, in get
        reverse=sort_order)
    TypeError: unorderable types: float() < NoneType()

In my case, the None is for tasks scheduled to occur in the future (Task.started is None).

Sorting by Worker column:

    Traceback (most recent call last):
      File ".../venv/lib/python3.4/site-packages/tornado/web.py", line 1413, in _execute
        result = method(*self.path_args, **self.path_kwargs)
      File ".../venv/lib/python3.4/site-packages/tornado/web.py", line 2717, in wrapper
        return method(self, *args, **kwargs)
      File ".../venv/lib/python3.4/site-packages/flower/views/tasks.py", line 45, in get
        reverse=sort_order)
    TypeError: unorderable types: Worker() < Worker()

Sorting by Result column (when there are Received-state tasks in the table):

    Traceback (most recent call last):
      File ".../venv/lib/python3.4/site-packages/tornado/web.py", line 1413, in _execute
        result = method(*self.path_args, **self.path_kwargs)
      File ".../venv/lib/python3.4/site-packages/tornado/web.py", line 2717, in wrapper
        return method(self, *args, **kwargs)
      File ".../venv/lib/python3.4/site-packages/flower/views/tasks.py", line 45, in get
        reverse=sort_order)
    TypeError: unorderable types: str() < NoneType()

Not sure if it's related, but "Active" on the dashboard page is showing "NaN"

Same error:

flower   -> flower:0.9.0 tornado:4.2 babel:2.2.0
software -> celery:3.1.23 (Cipater) kombu:3.0.35 py:3.5.1
            billiard:3.3.0.23 py-amqp:1.4.9
platform -> system:Linux arch:64bit, ELF imp:CPython
loader   -> celery.loaders.app.AppLoader
settings -> transport:amqp results:djcelery.backends.database:DatabaseBackend

Traceback (most recent call last):
  File "../venv/lib/python3.5/site-packages/tornado/web.py", line 1413, in _execute
    result = method(*self.path_args, **self.path_kwargs)
  File "../venv/lib/python3.5/site-packages/tornado/web.py", line 2717, in wrapper
    return method(self, *args, **kwargs)
  File "../venv/lib/python3.5/site-packages/flower/views/tasks.py", line 56, in get
    task['worker'] = task['worker'].hostname
AttributeError: 'NoneType' object has no attribute 'hostname'

same error.

  File "..../python3.5/site-packages/flower/views/tasks.py", line 45, in get
    reverse=sort_order)
TypeError: unorderable types: NoneType() < NoneType()

Fixed in the master version.

So close this? Works for me.

Could you please update it for the pip package...

Published a new version to pypi

I pip installed the latest version using (pip install flower --upgrade) and tried out the development version using (pip install https://github.com/mher/flower/zipball/master). In both cases I get:

Traceback (most recent call last):
  File "/home/gpu/virtualenv/v1/local/lib/python2.7/site-packages/tornado/web.py", line 1413, in _execute
    result = method(*self.path_args, **self.path_kwargs)
  File "/home/gpu/virtualenv/v1/local/lib/python2.7/site-packages/tornado/web.py", line 2717, in wrapper
    return method(self, *args, **kwargs)
  File "/home/gpu/virtualenv/v1/local/lib/python2.7/site-packages/flower/views/tasks.py", line 51, in get
    key=key, reverse=sort_order)
  File "/home/gpu/virtualenv/v1/local/lib/python2.7/site-packages/flower/utils/tasks.py", line 42, in iter_tasks
    if not satisfies_search_terms(task, search_terms):
  File "/home/gpu/virtualenv/v1/local/lib/python2.7/site-packages/flower/utils/search.py", line 45, in satisfies_search_terms
    filter(None, [task.name, task.uuid, task.state, task.worker.hostname, task.args, task.kwargs, str(task.result)])),
AttributeError: 'NoneType' object has no attribute 'hostname'

I am still getting this error with my celery flower settings at one of my staging server,

Error appears in an alert dialog containing this text:
DataTables warning: table id=tasks-table - Ajax error. For more information about this error, please see http://datatables.net/tn/7

My celery and flower versions are:

celery==4.0.1
flower==1.0.0
system : Ubuntu 14.04.4 LTS (GNU/Linux 3.13.0-92-generic x86_64)
broker : rabbitmq

My flower settings in nginx is

location /flower/static/ {
        sub_filter_types application/javascript;  # by default, sub_filter won't touch JS
        sub_filter_once off;
        alias /home/ubuntu/virtualenvs/proj_new/lib/python3.4/site-packages/flower/static/;
        expires 30d;
    }

    location /flower/ {

        # tampa office
        allow all;
        # deny everything else

        rewrite ^/flower/?(.*)$ /$1 break;
        sub_filter '="/' '="/flower/';
        sub_filter_once off;

        proxy_pass http://localhost:5555/;
        proxy_set_header Host $host;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }

supervisor configuration for the celery flower is

[program:celery-flower] 
command=/home/ubuntu/virtualenvs/proj_new/bin/celery flower -A config --address=127.0.0.1 --port=5555 
directory=/home/ubuntu/proj-django/project/ 
user=ubuntu 
numprocs=1 
stdout_logfile=/home/ubuntu/logs/celery-flower.log 
stderr_logfile=/home/ubuntu/logs/celery-flower-error.log 
autostart=true 
autorestart=true 
startsecs=10 
stopwaitsecs = 600 
killasgroup=true 
priority=1000

Is there something I am missing in my configurations

I have this issue Ubuntu 14.04 and flower (0.9.2)

I just had this issue come up on Debian jessie slim (on Docker), luckily restarting our instance fixed the issue. Doesn't seem to be fixed, we are pulling directly from the repo master and not pip.

I have also the same problem.
It seems that it is linked to the use of a reverse proxy where flower is not directly below /
the ajax call is done to http://.../dashboard?json=1&_=1504171035707 while it should be http://.../flower/dashboard?json=1&_=1504171035707 in my case.
was working fine with older versions though

I believe this issue should be re-opened. We are running the latest version of flower straight from the repo and this error happens constantly.

Same issue running 0.9.2 for me.

Same with 0.9.1

Same on flower 0.9.2, python 3.6.3, nginx 1.13.8

It might help this ticket if there was a super easy way to reproduce the bug -

Maybe just a minimal git repo, or docker image with the simplest installation and settings + instructions where to click that shows the error.

I don't know enough about the internal workings of flower to include steps to reproduce but this happens on several projects of mine. They are all on a version of Django and on Docker, some on Debian, some on Alpine, all of them use Redis.

Is it possible this has to do with concurrency? I've had this issue pop up randomly before. Now I get it consistently and all that I've changed is concurrency. There's one other thing I've changed - I added a custom django cache key - but I can't see how that might affect this.

@kmahelona is it possible to try with just one of these changes and see which one triggers it ?

I can verify that removing the --concurrency option for my worker resolves this issue in my particular instance. But how is specifying that different than celery's default option of using the number of CPUs?

This works:
exec celery -A corpora -Q celery worker -l info -n worker.celery.%h

This causes the 500 error for data table search in flower:
exec celery -A corpora -Q celery worker -l info -n worker.celery.%h --concurrency=4

Also, the error only throws when there's actually data in the table to filter.

amqp==2.2.2
celery==4.1.0
flower==0.9.2
pylibmc==1.5.2
tornado==5.0

i think we should reopen this @mher
celery 4.2.0
flower 0.9.2

seconded @ShalbafZadeh

@ShalbafZadeh Yes please, this issue renders flower unusable and has been ongoing for years.

We upgraded celery, looks like issue was fixed.
celery 4.2.1
flower 0.9.2

Still happening with flower 0.9.2 celery 4.4.0

Was this page helpful?
0 / 5 - 0 ratings