[rabbitmq-discuss] RabbitMQ 2.2.0 message delivery issue: internal crash
matthew at rabbitmq.com
Wed Aug 17 12:19:30 BST 2011
On Wed, Aug 17, 2011 at 12:06:05PM +0100, Matthew Sackman wrote:
> On Wed, Aug 17, 2011 at 03:57:30AM -0700, Alfonso Pantoja wrote:
> > We are experiencing an issue with version 2.2.0 which causes to
> > RabbitMQ to not deliver messages to a consumer.
> > The consumer is connected to RabbitMQ and performs a create queue/
> > exchange/binding when it is started but sometimes when there are
> > messages in the queue they are not being delivered by Rabbit.
> > Restarting the consumer (it is a windows service) does not solve the
> > problem and the consumer remains connected but without any message
> > although the queue contains 3000 messages.
> I vaguely remember this bug. It has been fixed. The solution would be to
> upgrade to the latest version of RabbitMQ (2.5.1).
If it's the bug I'm thinking of then this was caused by a bug in the
erlang client which is widely used by various plugins, and was not
encoding messages in the correct way. So if you are using a STOMP or
XMPP or some other plugin (i.e. you're getting messages into Rabbit
without explicitly using an AMQP client) then I think the bug I'm
thinking of is the culprit.
If this is the case then you'll need to upgrade both the broker and its
plugins because they must both be matched in terms of versions.
Unfortunately, because the messages were corrupted by the erlang client
and the corruption only manifests itself when the messages are sent out,
they're likely stored on disk in a corrupted form and just upgrading
Rabbit will not solve the problem. If this is the case, then I'm afraid
there's really nothing for it but to wipe out the msgs on disk and start
from a clean slate - sorry. There is a slim chance that if you're using
some plugin such as STOMP it might be able to ignore this issue but it
depends very much on the details of the plugin.
A colleague has just recalled that there was a similar bug at one point
with the STOMP plugin itself which you might be tripping over.
Without further details of how you're using Rabbit and with what
protocols, it's difficult to suggest your best path forward. However,
that aside, 2.2.0 is fairly ancient and many bugs have been fixed (and
hopefully fewer created) since then.
More information about the rabbitmq-discuss