[rabbitmq-discuss] hanging on message sending with py-amqplib

tsuraan tsuraan at gmail.com
Thu Sep 30 22:52:46 BST 2010


I'm migrating machines from using the old bug21673 snapshot that I've
been using to the new rabbit 2.1.0 release.  Fortunately, all of our
queue information is recoverable from our databases, so I am able to
wipe the old mq directory and start a new rabbit instance.  I'm having
a problem repopulating the queues though; what's happening is that as
I send the messages that belong in their respective queues, I'm
getting hanging in the py-amqplib socket.flush method (if the hang
happens while sending) or in the socket.recv method (if the hang
happens during a tx_commit).  I don't believe I've successfully sent
any messages at all on the machines that are doing this.

The way I'm repopulating the queues is by binding each queue to the
amq.direct exchange with the queue name as the routing key, and then
sending messages to that exchange with the desired queue's name as the
key.  The messages are being created as persistent messages, and the
sends are done in a transactional channel with a commit every hundred
messages.  While this is happening, the consumers are consuming from
the queues.  If I stop the consumers, then the hangs also stop.  I
also don't ever seem to get hangs when doing normal message sending
through the exchanges that I normally use; at least I haven't seen any
evidence or heard any bug reports that would indicate that's
happening.  There is nothing in my sasl log, and the only unusual
thing in my other log is that I'm sometimes hitting the high water
mark, but I haven't seen that happen while I've been attempting to
send messages.

Can anybody give me some advice on how to debug what's going on?  Am I
abusing the amq.direct exchange?  Any ideas would be appreciated; this
isn't happening on many machines, but it concerns me a bit.


More information about the rabbitmq-discuss mailing list