[openstack-dev] auto-delete in amqp "reply_*" queues in OpenStack

Dmitry Mescheryakov dmescheryakov at mirantis.com
Tue Mar 25 20:58:29 UTC 2014


Ok, assuming that you've run that query against the 5 stuck queues I
would expect the following results:

 * if an active listener for a queue lives on one of compute hosts:
that queue was created by compute service initiating rpc command.
Since you didn't restart them during switchover, the compute services
still use the same queues.
 * if queue does not have a listener: the queue was created by the
controller which was active before the switchover. That queue could
have become stuck not exactly at previous switchover, but as well at
some other switchover occurred in the past.

2014-03-25 0:33 GMT+04:00 Chris Friesen <chris.friesen at windriver.com>:
> On 03/24/2014 01:27 PM, Dmitry Mescheryakov wrote:
>>
>> I see two possible explanations for these 5 remaining queues:
>>
>>   * They were indeed recreated by 'compute' services. I.e. controller
>> service send some command over rpc and then it was shut down. Its
>> reply queue was automatically deleted, since its only consumer was
>> disconnected. The compute services replied after that and so recreated
>> the queue. According to Rabbit MQ docs, such queue will be stuck alive
>> indefinitely, since it will never have a consumer.
>>
>>   * Possibly there are services on compute nodes which initiate RPC
>> calls themselves. I don't know OpenStack architecture enough to say if
>> services running on compute nodes do so. In that case these 5 queues
>> are still used by compute services.
>>
>> Do Rabbit MQ management tools (web or cli) allow to view active
>> consumers for queues? If yes, then you can find out which of the cases
>> above you encountered. Or it maybe be some third case I didn't account
>> for :-)
>
>
> It appears that the cli tools do not provide a way to print the info, but if
> you query a single queue via the web API it will give the IP address and
> port of the consumers for the queue.  The vhost needs to be URL-encoded, so
> the query looks something like this:
>
> curl -i -u guest:guest
> http://192.168.204.2:15672/api/queues/%2f/reply_08e35acffe2c4078ae4603f08e9d0997
>
>
>
> Chris
>
> _______________________________________________
> OpenStack-dev mailing list
> OpenStack-dev at lists.openstack.org
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev



More information about the OpenStack-dev mailing list