[rabbitmq-discuss] broken release?

Aryeh Leib Taurog vim at aryehleib.com
Thu May 3 08:48:48 BST 2012


We are evaluating RabbitMQ/pika for our stack.  I have it installed, 
via the rabbitmq debian/apt repository, on a ubuntu lucid test server.  
Yesterday morning, the apt package manager updated rabbitmq-server 
from 2.8.1-1 to 2.8.2-1.  At that point, it stopped working 
altogether.

I tried the send.py/receive.py from the Hello World tutorial and got 
nothing.  I downloaded the java client and ran the tracer.  Here's the 
output I get when I point send.py at it:

Invoked as: Tracer 5673 localhost 5672
com.rabbitmq.tools.Tracer.WITHHOLD_INBOUND_HEARTBEATS = false
com.rabbitmq.tools.Tracer.WITHHOLD_OUTBOUND_HEARTBEATS = false
com.rabbitmq.tools.Tracer.NO_ASSEMBLE_FRAMES = false
com.rabbitmq.tools.Tracer.NO_DECODE_FRAMES = false
com.rabbitmq.tools.Tracer.SUPPRESS_COMMAND_BODIES = false
1335986940645: <Tracer-0> ch#0 <- {#method<connection.start>(version-major=0, version-minor=9, server-properties={product=RabbitMQ, information=Licensed under the MPL.  See http://www.rabbitmq.com/, platform=Erlang/OTP, capabilities={exchange_exchange_bindings=true, consumer_cancel_notify=true, basic.nack=true, publisher_confirms=true}, copyright=Copyright (C) 2007-2012 VMware, Inc., version=2.8.2}, mechanisms=PLAIN AMQPLAIN, locales=en_US), null, ""}
1335986940645: <Tracer-0> ch#0 -> {#method<connection.start-ok>(client-properties={product=Pika Python AMQP Client Library}, mechanism=PLAIN, response=1335986940646: <Tracer-0> ch#0 <- {#method<connection.tune>(channel-max=0, frame-max=131072, heartbeat=0), null, ""}
1335986940681: <Tracer-0> ch#0 -> {#method<connection.tune-ok>(channel-max=0, frame-max=131072, heartbeat=0), null, ""}
1335986940682: <Tracer-0> ch#0 -> {#method<connection.open>(virtual-host=/, capabilities=, insist=true), null, ""}
1335986940724: <Tracer-0> ch#0 <- {#method<connection.open-ok>(known-hosts=), null, ""}
1335986940761: <Tracer-0> ch#1 -> {#method<channel.open>(out-of-band=), null, ""}
1335986940802: <Tracer-0> ch#1 <- {#method<channel.open-ok>(channel-id=), null, ""}
1335986940842: <Tracer-0> ch#1 -> {#method<queue.declare>(ticket=0, queue=hello, passive=false, durable=false, exclusive=false, auto-delete=false, nowait=false, arguments={}), null, ""}
1335986940884: <Tracer-0> ch#1 <- {#method<queue.declare-ok>(queue=hello, message-count=0, consumer-count=1), null, ""}
1335986940924: <Tracer-0> ch#1 -> {#method<basic.publish>(ticket=0, exchange=, routing-key=hello, mandatory=false, immediate=false), #contentHeader<basic>(content-type=null, content-encoding=null, headers=null, delivery-mode=null, priority=null, correlation-id=null, reply-to=null, expiration=null, message-id=null, timestamp=null, type=null, user-id=null, app-id=null, cluster-id=null), "Hello World!"}
1335986940925: <Tracer-0> ch#1 -> {#method<channel.close>(reply-code=200, reply-text=Normal shutdown, class-id=0, method-id=0), null, ""}
1335986940935: <Tracer-0> uncaught java.io.EOFException
        at java.io.DataInputStream.readUnsignedByte(DataInputStream.java:273)
        at com.rabbitmq.client.impl.Frame.readFrom(Frame.java:95)
        at com.rabbitmq.tools.Tracer$DirectionHandler.readFrame(Tracer.java:271)
        at com.rabbitmq.tools.Tracer$DirectionHandler.doFrame(Tracer.java:305)
        at com.rabbitmq.tools.Tracer$DirectionHandler.run(Tracer.java:343)
        at java.lang.Thread.run(Thread.java:662)

Stopped.

Here's the output of rabbitmqctl status:
[{pid,1594},
 {running_applications,[{rabbit,"RabbitMQ","2.8.2"},
                        {os_mon,"CPO  CXC 138 46","2.2.4"},
                        {sasl,"SASL  CXC 138 11","2.1.8"},
                        {mnesia,"MNESIA  CXC 138 12","4.4.12"},
                        {stdlib,"ERTS  CXC 138 10","1.16.4"},
                        {kernel,"ERTS  CXC 138 10","2.13.4"}]},
 {os,{unix,linux}},
 {erlang_version,"Erlang R13B03 (erts-5.7.4) [source] [64-bit] [smp:2:2] [rq:2] [async-threads:30] [hipe] [kernel-poll:true]\n"},
 {memory,[{total,26105944},
          {processes,10233072},
          {processes_used,10213160},
          {system,15872872},
          {atom,1119593},
          {atom_used,1112534},
          {binary,88664},
          {code,12015821},
          {ets,793224}]},
 {vm_memory_high_watermark,0.3999999997973079},
 {vm_memory_limit,1578749132},
 {disk_free_limit,3946872832},
 {disk_free,3124989952},
 {file_descriptors,[{total_limit,924},
                    {total_used,5},
                    {sockets_limit,829},
                    {sockets_used,3}]},
 {processes,[{limit,1048576},{used,137}]},
 {run_queue,0},
 {uptime,939}]


I see a warning in the rabbitmq log about connection_closed_abruptly, 
but it doesn't seem to correspond to the issue, since I don't see the 
message repeated when I re-run send.py.

I was able to resolve the problem by removing the new version of 
rabbitmq-server with 'apt-get remove' then downloading the previous 
version from the rabbitmq site and reinstalling that with dpkg.

This raises questions in my mind about using rabbitmq in our 
production stack.  Are 'latest releases' from the repository 
considered stable?  Are people using rabbitmq in production on ubuntu?  
Ubuntu lucid is a pretty popular server platform, and there isn't much 
unusual about my test machine.  Has no one else reported any problems?

Also I am surprised that there doesn't seem to be any public bug 
tracker.  I gather that RabbitMQ is the open-source effort of a 
private enterprise, but that is hardly an excuse.  MySQL and Java both 
have public bug trackers.

with appreciation,
Aryeh Leib Taurog



More information about the rabbitmq-discuss mailing list