[rabbitmq-discuss] until clients support Channel.Flow in 1.5.0+...
matthias at lshift.net
Fri Nov 21 08:03:28 GMT 2008
> If the client ignores the server initiated command, then the server
> will just accept this until it dies.
> We could fix this, I suppose.
and then Brian Sullivan wrote:
> Is there any reason we *wouldn't* want that behavior? I might be
> coming from a paranoid place where I fear my ProducersOfDeath, but it
> really seems like a better idea to protect the server from crashing in
> these cases...
> This fix is small enough to include in 1.5.0, I hope?
The main difficulty is figuring out that the client really is ignoring
the request from the server, rather than just being a bit slow in
dealing with it.
We do know a client is not respecting the request if it either
explicitly rejects the channel.flow request or accepts it and then
continues to send messages.
But when a client does not respond to channel.flow at all and just keeps
sending messages then we simply have no idea whether that is because it
is ignoring the server's request or because it just has not gotten round
to dealing with it yet.
We could introduce some sort of timeout to handle this case. There may
be other approaches too.
Implementation-wise that is all far more complex to deal with than what
we currently have. So for 1.5.0 the channel.flow implementation will
depend on compliant clients. All the clients we ship will be compliant.
Furthermore, in our experience it is not very difficult to incorporate
channel.flow handling in an existing client.
More information about the rabbitmq-discuss