ask / carrot
- Source
- Commits
- Network (10)
- Issues (5)
- Downloads (14)
- Wiki (1)
- Graphs
-
Branch:
master
click here to add a description
click here to add a homepage
-
When I try to do this straight from the introduction:
from carrot.connection import AMQPConnection
amqpconn = AMQPConnection(hostname="localhost", port=5672, userid="test", password="test", vhost="test")the whole thing ends up in a busy loop:
File "", line 1, in File "/Library/Python/2.5/site-packages/carrot-0.5.1-py2.5.egg/carrot/connection.py", line 92, in init self.connect() File "/Library/Python/2.5/site-packages/carrot-0.5.1-py2.5.egg/carrot/connection.py", line 110, in connect connect_timeout=self.connect_timeout) File "build/bdist.macosx-10.5-i386/egg/amqplib/client_0_8/connection.py", line 143, in init File "build/bdist.macosx-10.5-i386/egg/amqplib/client_0_8/connection.py", line 477, in x_open File "build/bdist.macosx-10.5-i386/egg/amqplib/client_0_8/abstract_channel.py", line 64, in wait File "build/bdist.macosx-10.5-i386/egg/amqplib/client_0_8/connection.py", line 201, in wait_method File "build/bdist.macosx-10.5-i386/egg/amqplib/client_0_8/method_framing.py", line 212, in read_method File "build/bdist.macosx-10.5-i386/egg/amqplib/client_0_8/method_framing.py", line 127, in next_method File "build/bdist.macosx-10.5-i386/egg/amqplib/client_0_8/transport.py", line 105, in read_frame File "build/bdist.macosx-10.5-i386/egg/amqplib/client_0_8/transport.py", line 191, in read
It won't time out or anything. Am I doing something wrong or missing something obvious?
Tried on OS X 10.5.7, against RabbitMQ 1.6.0 which otherwise seems to be working just fine. This happens both with Python 2.6.2 (from Macports) and Python 2.5.1 (from Apple)
Comments
-
No exception raised when mandatory=True and message cannot be routed
1 comment Created 4 months ago by ltuckerThe documentation for the mandatory parameter of publisher.send states:
"If set, the message has mandatory routing. By default the message is silently dropped by the server if it can’t be routed to a queue. However - If the message is mandatory, an exception will be raised instead."
At least for the pyamqplib backend, no exception appears to be raised when the message cannot be routed to a queue. This is possibly more of an issue with an underlying driver or a documentation bug.
Comments
Please log in to comment.This is actually a combination of several things, first this discussion: http://www.nabble.com/Channel-Cost-td21678526.html shows that in amqplib you have to close the channel to receive the error, so this is definitely a bug. But while testing I could only get it to raise an error if the exchange is not declared, no queues being bound to it didn't seem to affect the outcome. I'm investigating if this is a documentation bug in amqplib or if it's something else. Good catch!
-
Apache Qpid C++ Broker 0.5 support seems to be broken
2 comments Created about 1 month ago by esizikovApache Qpid supports the latest version of AMQP 0-10 while py-amqplib only supports AMQP 0-8.
I suggest that AMQP client library should be like a plugin for one to be able to use any of py-amqplib, python-qpid, txAMQP, etc.
Comments
This is already the case, however you need to write a new backend for qpid.
We already have py-amqplib, stompy, pika and Queue backends.
Please log in to comment.At least there is a py-amqplib dependency in carrot/connection.py:
$ head connection.py """Getting a connection to the AMQP server.
""" from amqplib.client_0_8.connection import AMQPConnectionException
from carrot.backends import get_backend_cls
-
carrot.messaging.establish_connection requires DjangoBrokerConnection
1 comment Created 24 days ago by twillisalong the same lines as the issue I reported earlier in celery, establish_connection uses DjangoBrokerConnection so if in celery you write a custom loader for the purpose of setting your configuration from some source other than django.conf, it will be ignored in the establish_connection method and will assume all the django settings configuration machinery has been stood up.
not sure what the right fix would be, maybe an optional param for the BrokerConnection defaulted to DjangoBrokerConnection ? just thinking out loud
Comments
-
Python Queue module based backend doesn't work with iterconsume() or wait()
0 comments Created 4 days ago by yoshiterconsume (and by extension, wait()) does:
self.backend.consume(limit=limit)but backends/queue.py defines consumer as:
def consume(self, queue, no_ack, callback, consumer_tag):so obviously it doesn't work. Not sure the best way to fix it, perhaps implement declare_consumer and stash the callback?
Comments
Please log in to comment.




This is believed to be a problem with amqplib. It usually happens when it can't connect, or authenticate to the server. See: http://github.com/ask/celery/issues#issue/9
I'm keeping the issue open until we can find a solution, either for carrot or for amqplib.
I got the same problem on OS X 10.5.7. It happened when the client failed authentication and also when authentication succeeded but the user didn't have permissions to access the vhost.
It seems this is actually a RabbitMQ issue that will be fixed in 1.7
Good to know. Thank you for the heads-up.