opendatateam / docker-udata

udata and plugins all-in-one Docker image
https://hub.docker.com/r/udata/udata/builds
MIT License
15 stars 12 forks source link

AttributeError: async #52

Open albanm opened 6 years ago

albanm commented 6 years ago

After your recent fix of mongodb config (thanks !), I have another error. Just to be clear I used "docker-compose down" to remove containers, images, and volumes, so I don't have any remnants of the previous versions.

After "docker-compose up -d" localhost:7000 responds with a 500 error. The logs of the container are saturated with a loop of messages containing a stack trace. Here is a full iteration of the loop:

Respawned uWSGI worker 1 (new pid: 882) spawned 4 offload threads for uWSGI worker 1 running gevent loop engine [addr:0x5595daf74260] Tue Jun 5 22:04:22 2018 - [emperor] vassal front.ini is ready to accept requests open("/tmp/celery-worker.pid"): No such file or directory [core/daemons.c line 161] Traceback (most recent call last): File "/usr/local/bin/celery", line 11, in sys.exit(main()) File "/usr/local/lib/python2.7/dist-packages/celery/main.py", line 14, in main _main() File "/usr/local/lib/python2.7/dist-packages/celery/bin/celery.py", line 326, in main cmd.execute_from_commandline(argv) File "/usr/local/lib/python2.7/dist-packages/celery/bin/celery.py", line 488, in execute_from_commandline super(CeleryCommand, self).execute_from_commandline(argv))) File "/usr/local/lib/python2.7/dist-packages/celery/bin/base.py", line 281, in execute_from_commandline return self.handle_argv(self.prog_name, argv[1:]) File "/usr/local/lib/python2.7/dist-packages/celery/bin/celery.py", line 480, in handle_argv return self.execute(command, argv) File "/usr/local/lib/python2.7/dist-packages/celery/bin/celery.py", line 412, in execute ).run_from_argv(self.prog_name, argv[1:], command=argv[0]) File "/usr/local/lib/python2.7/dist-packages/celery/bin/worker.py", line 221, in run_from_argv return self(*args, *options) File "/usr/local/lib/python2.7/dist-packages/celery/bin/base.py", line 244, in call ret = self.run(args, kwargs) File "/usr/local/lib/python2.7/dist-packages/celery/bin/worker.py", line 255, in run kwargs) File "/usr/local/lib/python2.7/dist-packages/celery/worker/worker.py", line 99, in init self.setup_instance(self.prepare_args(kwargs)) File "/usr/local/lib/python2.7/dist-packages/celery/worker/worker.py", line 122, in setup_instance self.should_use_eventloop() if use_eventloop is None File "/usr/local/lib/python2.7/dist-packages/celery/worker/worker.py", line 241, in should_use_eventloop self._conninfo.transport.implements.async and File "/usr/local/lib/python2.7/dist-packages/kombu/transport/base.py", line 125, in getattr raise AttributeError(key) AttributeError: async open("/tmp/celery-worker.pid"): No such file or directory [core/daemons.c line 161] subprocess 867 exited with code 1 open("/tmp/celery-worker.pid"): No such file or directory [core/daemons.c line 161] open("/tmp/celery-worker.pid"): No such file or directory [core/daemons.c line 161] announcing my loyalty to the Emperor... Tue Jun 5 22:04:27 2018 - [emperor] vassal front.ini is now loyal open("/tmp/celery-worker.pid"): No such file or directory [core/daemons.c line 161] open("/tmp/celery-worker.pid"): No such file or directory [core/daemons.c line 161] open("/tmp/celery-worker.pid"): No such file or directory [core/daemons.c line 161] open("/tmp/celery-worker.pid"): No such file or directory [core/daemons.c line 161] open("/tmp/celery-worker.pid"): No such file or directory [core/daemons.c line 161] [uwsgi-daemons] found changed pidfile for "celery -A udata.worker worker --pidfile=/tmp/celery-worker.pid" (old_pid: 867 new_pid: -1) [uwsgi-daemons] respawning "celery -A udata.worker worker --pidfile=/tmp/celery-worker.pid" (uid: 0 gid: 0) ...The work of process 882 is done. Seeya! Tue Jun 5 22:04:32 2018 - Fire in the hole !!! (60 seconds to detonation) Gracefully killing worker 1 (pid: 882)... Tue Jun 5 22:04:32 2018 - stopping gevent signals watchers for worker 1 (pid: 882)... Tue Jun 5 22:04:32 2018 - stopping gevent sockets watchers for worker 1 (pid: 882)... Tue Jun 5 22:04:32 2018 - main gevent watchers stopped for worker 1 (pid: 882)... goodbye to the gevent Hub on worker 1 (pid: 882) open("/tmp/celery-worker.pid"): No such file or directory [core/daemons.c line 161] worker 1 killed successfully (pid: 882)

abulte commented 6 years ago

Hi,

This is due to a faulty peer dependency, namely kombu. As a quickfix, you can run pip install kombu==4.1.0 in your container, or pin it in requirements.pip.

albanm commented 6 years ago

Thanks !

I also added the line for urllib3 and it seems to be working.

abulte commented 6 years ago

👍 sorry for the inconvenience, you seem to have joined the project at a time where our peer dependencies are going insane...

albanm commented 6 years ago

No problem ! Maybe using this would be a good idea : https://github.com/pypa/pipfile

The lock file is a nice feature.

abulte commented 6 years ago

Yes, we'll be looking into it 👍