Closed binarin closed 5 years ago
@binarin thanks. Would you be interested in submitting a PR? I think the right thing to do here is to find a way for rabbitmq-common
to not have a dependency on rabbit_queue_collector
. Queue collector's original purpose was to clean up exclusive queues when certain events (well, their connection closure) happens.
No, I don't think that I'll have any free time soon.
No worries, thanks for the report!
On Tue, Aug 29, 2017 at 9:17 AM, Alexey Lebedeff notifications@github.com wrote:
No, I don't think that I'll have any free time soon.
— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/rabbitmq/rabbitmq-erlang-client/issues/91#issuecomment-325697340, or mute the thread https://github.com/notifications/unsubscribe-auth/AAAEQpahXy8QDfrR1Y-iGqyU5ctQeZPiks5sdCt4gaJpZM4PFqsO .
-- MK
Staff Software Engineer, Pivotal/RabbitMQ
For direct connections rabbit_queue_collector
is running on the wrong side of connection - on client. So e.g. in case of network split between client and server it doesn't have a chance to perform a proper cleanup. But the cleanup is still performed due to some other links/monitors set-up during channel opening process. I think that it's better to make all this explicit and just start a collector and some sort of connection monitoring process on the server side.
Direct connections work from within the broker itself, but any project which depends only on
amqp_client
is broken (like https://github.com/pma/amqp/issues/73)This happened because in https://github.com/rabbitmq/rabbitmq-common/commit/81b5eabc6b705b2e35ecf444ee25a7a86ac244d9#diff-7159eb0974065867f293d7148ba5036aL1
rabbit_queue_collector
module was removed fromrabbit_common
, but it's still being referenced here https://github.com/rabbitmq/rabbitmq-erlang-client/blob/5671dbb63eb2506bc2dc768a15f9fca2c1487a47/src/amqp_connection_type_sup.erl#L78