[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