AMQP setup problems

Asked by Mark Cheverton

Hi all,

After several hours of messing around I'm stumped getting AMQP working. I have versions 0.9.8 across the board, plus python-txamqp-0.3 on Ubuntu 10.04.2.

Fairly simple config:

ENABLE_AMQP = True
# AMQP_VERBOSE = False
AMQP_HOST = localhost
AMQP_PORT = 5672
AMQP_VHOST = /arcus/graphite
AMQP_USER = arcus
AMQP_PASSWORD = ******
AMQP_EXCHANGE = graphite
AMQP_METRIC_NAME_IN_BODY = False

Am getting the following error:

==> console.log <==
14/07/2011 00:19:51 :: Starting factory <carbon.amqp_listener.AMQPReconnectingFactory instance at 0x8daa06c>
14/07/2011 00:19:51 :: Unhandled Error
Traceback (most recent call last):
  File "/usr/lib/python2.6/dist-packages/twisted/python/log.py", line 84, in callWithLogger
    return callWithContext({"system": lp}, func, *args, **kw)
  File "/usr/lib/python2.6/dist-packages/twisted/python/log.py", line 69, in callWithContext
    return context.call({ILogContext: newCtx}, func, *args, **kw)
  File "/usr/lib/python2.6/dist-packages/twisted/python/context.py", line 59, in callWithContext
    return self.currentContext().callWithContext(ctx, func, *args, **kw)
  File "/usr/lib/python2.6/dist-packages/twisted/python/context.py", line 37, in callWithContext
    return func(*args,**kw)
--- <exception caught here> ---
  File "/usr/lib/python2.6/dist-packages/twisted/internet/epollreactor.py", line 210, in _doReadOrWrite
    why = selectable.doRead()
  File "/usr/lib/python2.6/dist-packages/twisted/internet/tcp.py", line 460, in doRead
    return self.protocol.dataReceived(data)
  File "/usr/local/lib/python2.6/dist-packages/txAMQP-0.3-py2.6.egg/txamqp/protocol.py", line 158, in dataReceived
    frame = self._unpackFrame(packet)
  File "/usr/local/lib/python2.6/dist-packages/txAMQP-0.3-py2.6.egg/txamqp/protocol.py", line 134, in _unpackFrame
    payload = Frame.DECODERS[frameType].decode(self.spec, c)
  File "/usr/local/lib/python2.6/dist-packages/txAMQP-0.3-py2.6.egg/txamqp/connection.py", line 94, in decode
    args = tuple([c.decode(f.type) for f in meth.fields])
  File "/usr/local/lib/python2.6/dist-packages/txAMQP-0.3-py2.6.egg/txamqp/codec.py", line 86, in decode
    return getattr(self, "decode_" + type)()
  File "/usr/local/lib/python2.6/dist-packages/txAMQP-0.3-py2.6.egg/txamqp/codec.py", line 184, in decode_table
    raise ValueError(repr(type))
exceptions.ValueError: 'F'

14/07/2011 00:19:51 :: <twisted.internet.tcp.Connector instance at 0x8daa08c> will retry in 9 seconds
14/07/2011 00:19:51 :: Stopping factory <carbon.amqp_listener.AMQPReconnectingFactory instance at 0x8daa06c>

A bit of brute force print statements (I'm not a pythonista unfortunately) has lead me to it bombing at the self.authentication and then back into txamqp then twisted where I get a bit lost.

root@lucid32:/opt/graphite/conf# rabbitmqctl list_vhosts
Listing vhosts ...
/
/arcus/graphite
...done.
root@lucid32:/opt/graphite/conf# rabbitmqctl list_permissions -p /arcus/graphite
Listing permissions in vhost "/arcus/graphite" ...
arcus .* .* .*
...done.

Any ideas what the problem may be?

-Mark

Question information

Language:
English Edit question
Status:
Solved
For:
Graphite Edit question
Assignee:
No assignee Edit question
Solved by:
Mark Cheverton
Solved:
Last query:
Last reply:
Revision history for this message
chrismd (chrismd) said :
#1

I've never seen that error before but I would recommend running that stacktrace by the txamqp devs to see what they think. If I had to guess I'd suspect a version/compatibility issue between rabbitmq and txamqp. It might also be because graphite has the amqp-0.8 xml spec bundled with it and that could be obsolete nowadays, in any case txamqp-dev would know better than I.

Revision history for this message
Mark Cheverton (mark-cheverton) said :
#2

Yep, seems it is a python-txamqp known bug, moving to trunk resolved it:

https://answers.launchpad.net/txamqp/+question/164751

Thanks for your help.

-Mark