[rabbitmq-discuss] Pika error - ack/reject throws exception

Gavin M. Roy gmr at myyearbook.com
Thu Feb 9 17:25:31 GMT 2012


I have not had time to put in the fix yet, but I am aware of the problem and hope to be able to get to it this weekend.  

Gavin  


On Thursday, February 9, 2012 at 10:13 AM, David Robins wrote:

>  
> I'm using Pika and Python (3.2.2) to access RabbitMQ (2.6.1) queues, on Linux (kernel 3.0.6); specifically, I have some code that creates a blocking connection, binds a channel to a couple of queues, calls
>  
>  
> basic_consume on the channel for each queue with no_ack=False, and then start_consuming.
>  
>  
>   
>  
>  
> It drains a (random - in recent runs I saw 14, 4, then 9) number of messages already in the queue under basic_consume, but then throws the following exception:
>  
>  
>   
>  
>  
>         Traceback (most recent call last):
>  
>  
>                 File "./ep_test", line 62, in <module>
>  
>  
>                         et.track(args.drain)
>  
>  
>                 File "./ep_test", line 41, in track
>  
>  
>                         self.q2.consume(callback, auto_ack=False)
>  
>  
>                 File "/home/dbrobins/code/utils/tq/broker.py", line 45, in consume
>  
>  
>                         self.brk.chan.basic_consume(thunk, queue=self.qname, no_ack=auto_ack)
>  
>  
>                 File "/usr/lib64/python3.2/site-packages/pika-0.9.5-py3.2.egg/pika/channel.py", line 368, in basic_consume
>  
>  
>                         [spec.Basic.ConsumeOk])
>  
>  
>                 File "/usr/lib64/python3.2/site-packages/pika-0.9.5-py3.2.egg/pika/adapters/blocking_connection.py", line 224, in rpc
>  
>  
>                         frame = self._frames[reply]
>  
>  
>         KeyError: 'Basic.ConsumeOk'
>  
>  
>   
>  
>  
> Am I doing something wrong in thinking I can ack a message in this state? It doesn't throw an exception with no_ack=True. If so, what? Or is it a bug in the pika module or a problem with RabbitMQ?
>  
>  
>   
>  
>  
> I've done a little debugging and it's possible I'm getting two Basic.ConsumeOk frames - if so, would that be a bug in RabbitMQ or does the client need to expect this? Is there a way to get verbose debug
>  
>  
> output from RabbitMQ? - searches indicate no, except perhaps to watch it with an independent network tracing tool? Thanks for any help.
>  
>  
>   
>  
>  
>>  
>  
>   
>  
>  
> This is likely an instance of issue #70 on GitHub (https://github.com/pika/pika/issues/70) which says “Pending Fix” – does that mean that a fix is available but unreleased, or that there is no fix yet?
>  
>  
>  
> _______________________________________________
> rabbitmq-discuss mailing list
> rabbitmq-discuss at lists.rabbitmq.com (mailto:rabbitmq-discuss at lists.rabbitmq.com)
> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss
>  
>  


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/attachments/20120209/088ff6ba/attachment.htm>


More information about the rabbitmq-discuss mailing list