Question

While running the status command I get the following error:-

Am using rabbitmq as the messaging broker

I am following this blog

 sudo /etc/init.d/celeryd status
Error: No nodes replied within time constraint

How can I Debug this error?

I have also checked this question. The answer there did not help.

django/celery - celery status: Error: No nodes replied within time constraint

Edit:-

After checking the logs of celery beat I found the following error

celerybeat raised exception <class 'gdbm.error'>: error(13, 'Permission denied')
Was it helpful?

Solution

Perhaps this is caused by celery not having write permissions for the celerybeat-schedule file. The docs you linked to show celery configured to use /var/run/celerybeat-schedule as the celery beat schedule file.

Does your process have write permissions to that file? If that directory is owned by root (as it should be) and your process is running as anything other than the root user, that could cause the permission denied errors.

Check that your permissions are correct and then try deleting that file then restarting everything.

OTHER TIPS

Use the following command to find the problem :

C_FAKEFORK=1 sh -x /etc/init.d/celeryd start

This usually happens because there are problems in your source project(permission issues, syntax error etc.)

As mentioned in celery docs:-

If the worker starts with “OK” but exits almost immediately afterwards and there is nothing in the log file, then there is probably an error but as the daemons standard outputs are already closed you’ll not be able to see them anywhere. For this situation you can use the C_FAKEFORK environment variable to skip the daemonization step

Good Luck

Source: Celery Docs

I'm having the same problem. Restarting rabbitmq fixed it:

sudo systemctl restart rabbitmq-server

and the strange thing is that I needed to wait at least 100 seconds. For me, I think there is a disk problem.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top