When using the websocket progress reporter on my Linux production machine, all tasks follow up with
[2019-10-28 01:58:04,928: ERROR/ForkPoolWorker-1] Signal handler <function task_postrun_handler at 0x7fe145e94bf8> raised: RuntimeError('Never call result.get() within a task!\nSee http://docs.celeryq.org/en/latest/userguide/tasks.html#task-synchronous-subtasks\n',)
Traceback (most recent call last):
File "/var/www/staging-logs/venv/lib/python3.6/site-packages/celery/utils/dispatch/signal.py", line 288, in send
response = receiver(signal=self, sender=sender, **named)
File "/var/www/staging-logs/venv/lib/python3.6/site-packages/celery_progress/tasks.py", line 12, in task_postrun_handler
WebSocketProgressRecorder.push_update(task_id)
File "/var/www/staging-logs/venv/lib/python3.6/site-packages/celery_progress/backend.py", line 78, in push_update
{'type': 'update_task_progress', 'data': {**Progress(task_id).get_info()}}
File "/var/www/staging-logs/venv/lib/python3.6/site-packages/celery_progress/backend.py", line 111, in get_info
'result': self.result.get(self.task_id) if success else None,
File "/var/www/staging-logs/venv/lib/python3.6/site-packages/celery/result.py", line 205, in get
assert_will_not_block()
File "/var/www/staging-logs/venv/lib/python3.6/site-packages/celery/result.py", line 41, in assert_will_not_block
raise RuntimeError(E_WOULDBLOCK)
RuntimeError: Never call result.get() within a task!
See http://docs.celeryq.org/en/latest/userguide/tasks.html#task-synchronous-subtasks
I find this especially odd because the error does not occur on my development Windows machine. I seem to have located a fix here. I will open a PR if this does indeed fix my issue.