[rabbitmq-discuss] Lost message in 50k size range

John Reuning john at ibiblio.org
Thu Mar 8 14:30:34 GMT 2012


So, it looks like this was a flushing problem.  I either wasn't
closing the connection properly or was terminating the ioloop too
soon.  I fixed the message send problem but am now getting a warning
message from the callback manager.

/mnt/hgfs/devel/seedbank/seedbank/src/pika/callback.py:72:
UserWarning: CallbackManager.add: Duplicate callback found for
"0:Connection.CloseOk"
  (self.__class__.__name__, prefix, key))

It gives the warning regardless of whether or not I use
add_on_close_callback to specify my own callback function.  Any ideas
why this happens?

Here's the backtrace to the CallbackManager.add call that generates the message.

  File "/mnt/hgfs/devel/seedbank/seedbank/src/pika/adapters/select_connection.py",
line 124, in start
    self.poller.start()
  File "/mnt/hgfs/devel/seedbank/seedbank/src/pika/adapters/select_connection.py",
line 374, in start
    self.poll()
  File "/mnt/hgfs/devel/seedbank/seedbank/src/pika/adapters/select_connection.py",
line 388, in poll
    self._handler(events[0][0], events[0][1])
  File "/mnt/hgfs/devel/seedbank/seedbank/src/pika/adapters/base_connection.py",
line 134, in _handle_events
    self._handle_read()
  File "/mnt/hgfs/devel/seedbank/seedbank/src/pika/adapters/base_connection.py",
line 162, in _handle_read
    self._on_data_available(data)
  File "/mnt/hgfs/devel/seedbank/seedbank/src/pika/connection.py",
line 589, in _on_data_available
    frame)                 # Args
  File "/mnt/hgfs/devel/seedbank/seedbank/src/pika/callback.py", line
130, in process
    callback(*args, **keywords)
  File "/mnt/hgfs/devel/seedbank/seedbank/src/pika/connection.py",
line 553, in _on_channel_close
    self._on_close_ready()
  File "/mnt/hgfs/devel/seedbank/seedbank/src/pika/connection.py",
line 402, in _on_close_ready
    [spec.Connection.CloseOk])
  File "/mnt/hgfs/devel/seedbank/seedbank/src/pika/connection.py",
line 620, in _rpc
    self.callbacks.add(channel_number, reply, callback)


On Tue, Mar 6, 2012 at 1:13 PM, John Reuning <john at ibiblio.org> wrote:
> In this case, lost means the consumer never gets it.  I have a test
> setup for debugging.  Both publisher and consumer are python/pika.
> The publisher sends 2 messages -- one is a bson encoded python string
> of length 49144, the other is 49145.  The consumer gets the first
> message but not the second.  It's the same behavior for messages down
> to 1 byte and up to a few 100 KB.  The failure point seems to be at
> this 49145 length.
>
> Other useful information may be that queue durability and message
> delivery mode settings don't affect the behavior.  Also, your
> suggestion of publishing to a consumerless queue didn't result in a
> queued message, as far as I can tell.
>
> I'm using the management and tracing plugins, turned on tracing, and
> turned on pika debug logging.  I can't find any errors or indication
> of why the message disappears or where it's going.  I'm not sure I
> know the right places to look, though.


More information about the rabbitmq-discuss mailing list