Wednesday, July 2, 2014

edx-platform - AMQPConnectionError of XQueue

I saw this error in the xqueue's log: /edx/var/log/xqueue/edx.log:

Traceback (most recent call last):
  File "/edx/app/xqueue/venvs/xqueue/local/lib/python2.7/site-packages/django/core/handlers/", line 111, in get_response
    response = callback(request, *callback_args, **callback_kwargs)
  File "/edx/app/xqueue/venvs/xqueue/local/lib/python2.7/site-packages/django/contrib/auth/", line 20, in _wrapped_view
    return view_func(request, *args, **kwargs)
  File "/edx/app/xqueue/venvs/xqueue/local/lib/python2.7/site-packages/", line 97, in wrapped
    result = func(*args, **kwargs)
  File "/edx/app/xqueue/xqueue/queue/", line 39, in get_queuelen
    job_count = queue.producer.get_queue_length(queue_name)
  File "/edx/app/xqueue/xqueue/queue/", line 62, in get_queue_length
    return push_to_queue(queue_name)
  File "/edx/app/xqueue/xqueue/queue/", line 37, in push_to_queue
    raise e
AMQPConnectionError: (0, 'Not specified')

After a while looking around, I found out that the rabbitmq account using by xqueue had been mysteriously removed (just like the mongodb account of discussion service). So, To solve this issue I just need to create the rabbitmq account and grant appropriated privileges for that account.

# rabbitmqctl add_user myxqueue_user mypassword
# rabbitmqctl set_permissions -p / myxqueue_user ".*" ".*" ".*"

Restart xqueue service:

# /edx/bin/supervisorctl restart xqueue
# /edx/bin/supervisorctl restart xqueue_consumer