Timeout blocking or blocked connections

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Timeout blocking or blocked connections

Mark Ward
Hi,

I am running RabbitMQ 3.0.4, Erlang R16B on Ubuntu 12.04.

Will RabbitMQ close/timeout a connection in a blocked or blocking state if the client is no longer connected to the server?  

It appears a connection with a timeout and not properly closed does not get cleaned up by the RabbitMQ server after the specified timeout has elapsed if the connection is in a blocked and blocking state.  The RabbitMQ server is still currently in a flow control state if this impacts its ability to clean these connections.  The unacknowledged messages sent to the currently blocked connections are also still locked up in the flow control.

I am working to improve my framework when a server invokes flow control.  I am purposefully pushing the rabbitMQ server into a flow control state.  I have seen this before and it appears to be repeatable.

I am concerned that during production if a client connection is closed incorrectly while under a blocked or blocking state any unacknowledged messages will continue to be held by these connections and would require administration intervention to resolve the issue.  

-Mark
Reply | Threaded
Open this post in threaded view
|

Re: Timeout blocking or blocked connections

Emile Joubert

Hi Mark,

On 22/03/13 15:03, Mark Ward wrote:
> Will RabbitMQ close/timeout a connection in a blocked or blocking state if
> the client is no longer connected to the server?  

No, this is known issue. The symptom is that connections that were shut
while blocked remain visible in the output of
"rabbitmqctl list_connections"

No workaround is known at the moment, and the problem appears very
difficult to solve so a solution is not likely to be released soon. The
release notes will contain an announcement when it gets fixed.



-Emile





_______________________________________________
rabbitmq-discuss mailing list
[hidden email]
https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss
Reply | Threaded
Open this post in threaded view
|

Re: Timeout blocking or blocked connections

Simon MacMullen-2
In reply to this post by Mark Ward
On 22/03/13 15:03, Mark Ward wrote:
> I am concerned that during production if a client connection is closed
> incorrectly while under a blocked or blocking state any unacknowledged
> messages will continue to be held by these connections and would require
> administration intervention to resolve the issue.

As Emile said, you are correct that closed connections will not get
detected while blocked - this is just very hard to do with the sockets API.

However, connections should not stay blocked forever. As soon as the
memory/disk alarm clears, or flow control issues more credit, the
connection will notice that it's disconnected and terminate.

Cheers, Simon

--
Simon MacMullen
RabbitMQ, VMware
_______________________________________________
rabbitmq-discuss mailing list
[hidden email]
https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss