Pika warning (after write buffer exceeded) causes exception

27 views
Skip to first unread message

Clemens Kolbitsch

unread,
Mar 21, 2012, 5:44:01 PM3/21/12
to rabbitmq...@googlegroups.com
Hi guys,

let me start with the obvious: thanks for the great library :) I ran into the same problem as was mentioned here:


where one sees below warning when using a Tornadoconnection:

/usr/local/lib/python2.6/dist-packages/pika/connection.py:642: UserWarning: Pika: Write buffer exceeded warning threshold at 1827 bytes and an estimated 53 frames behind
  warn(message % (self.outbound_buffer.size, est_frames_behind))

I tried to follow the first approach (disabling the warning and raising the set_backpressure_multiplier), but that raises another problem:

ERROR:root:Exception in I/O handler for fd 12
Traceback (most recent call last):
  File "/usr/local/lib/python2.6/dist-packages/tornado/ioloop.py", line 308, in start
    self._handlers[fd](fd, events)
  File "/usr/local/lib/python2.6/dist-packages/pika/adapters/base_connection.py", line 134, in _handle_events
    self._handle_read()
  File "/usr/local/lib/python2.6/dist-packages/pika/adapters/base_connection.py", line 162, in _handle_read
    self._on_data_available(data)
  File "/usr/local/lib/python2.6/dist-packages/pika/connection.py", line 599, in _on_data_available
    self._channels[frame.channel_number].transport.deliver(frame)
  File "/usr/local/lib/python2.6/dist-packages/pika/channel.py", line 64, in deliver
    self.frame_dispatcher.process(frame)
  File "/usr/local/lib/python2.6/dist-packages/pika/frame.py", line 202, in process
    self._handler(frame)
  File "/usr/local/lib/python2.6/dist-packages/pika/frame.py", line 260, in handler
    finish()
  File "/usr/local/lib/python2.6/dist-packages/pika/frame.py", line 289, in finish
    ''.join(body_fragments))      # Arg 3
  File "/usr/local/lib/python2.6/dist-packages/pika/callback.py", line 124, in process
    callback(*args, **keywords)
  File "/usr/local/lib/python2.6/dist-packages/pika/channel.py", line 420, in _on_basic_deliver
    body)
  File "/home/blacklist/llupload/llupload/worker/queue_worker.py", line 198, in process_message
    channel.basic_ack(delivery_tag=method.delivery_tag)
  File "/usr/local/lib/python2.6/dist-packages/pika/spec.py", line 2563, in basic_ack
    return self.transport.rpc(Basic.Ack(delivery_tag=delivery_tag, multiple=multiple))
  File "/usr/local/lib/python2.6/dist-packages/pika/channel.py", line 119, in rpc
    self.send_method(method)
  File "/usr/local/lib/python2.6/dist-packages/pika/channel.py", line 126, in send_method
    self.connection._send_method(self.channel_number, method, content)
  File "/usr/local/lib/python2.6/dist-packages/pika/connection.py", line 657, in _send_method
    self._send_frame(pika.frame.Method(channel_number, method))
  File "/usr/local/lib/python2.6/dist-packages/pika/connection.py", line 642, in _send_frame
    warn(message % (self.outbound_buffer.size, est_frames_behind))
TypeError: issubclass() arg 2 must be a class or tuple of classes

Is this a known problem or am I doing something wrong on my side?

Python 2.6.5 (r265:79063, Apr 16 2010, 13:57:41) 
[GCC 4.4.3] on linux2
>>> import pika
>>> pika.__version__
'0.9.5'

Any help is highly appreciated!

thanks,
Clemens

Reply all
Reply to author
Forward
0 new messages