Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Duplicate
-
None
-
None
-
Broker tested against was rabbitmq. Source examined 2cd99f34c from git repo.
Description
The implementation of Channel.read_content (peer.py:355) uses the body eof flag when looping over frames from the queue.
When using 0.8, the Body implementation (connection08.py:483) hard codes eof = False, therefore only one frame is ever read. This can be recreated by reading messages with largish body contents. The tipping point in my tests was around 130K. The broker was rabbitmq 1.7.
My current work around sets eof as follows:
class Body(Frame):
type = "frame_body"
def _init_(self, content):
self.content = content
self.eof = not content or content[-1] == '\x00'
self.bof = False
I'm not sure if this is the right fix however.