Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Hi Michael, thanks for your replay. I think it is a bug of qpid as rpcbackend.

Other service(nova-compute, cinder-scheduler, etc) use eventlet thead to run service. They stop service use thread kill() method. The last step rpc.cleanup() just did nothing, because the relative consume connection run in thread and killed. I think it is unnecessary. All queue is auto-delete, they will be removed when all receiver disappear.

However, cinder-volume use process to run service, so stop service need to close connection and receiver (consumer) of the session of connection need to close when call connection.close(). receiver close will sent MessageCancel and QueueDelete message to broker(qpid server), so that all cinder-volume queue be removed.

I think that the reason of problem confused me.

But I don't know how to solve it.