You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by Florian Weimer <fw...@redhat.com> on 2012/05/23 15:10:26 UTC
qpid::amqp_0_10::Connection::encode() produces zero-length frames
Hi,
the Qpid broker invokes encode() with a buffer size of 65536 bytes. If
a frame of 65536 bytes is about to be sent, there is room for it in the
buffer, and the first while loop is entered. But the underlying codec
cannot express this frame size on the wire, it writes a 16-bit zero
instead. This seems to be an (ordinary) bug.
I would have expected that such over-sized frames are fragmented. Is
this actually implemented somewhere in the code?
Florian
--
Florian Weimer / Red Hat Product Security Team
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org
Re: qpid::amqp_0_10::Connection::encode() produces zero-length frames
Posted by Florian Weimer <fw...@redhat.com>.
On 05/23/2012 05:43 PM, Gordon Sim wrote:
>>> qpid::client::SessionImpl (for client).
>>
>> This appears to be more generic and also applies to controls which the
>> server cannot process (presumably due to lack of defragmentation).
>
> I believe the fragmentation here also only applies to content segments.
Okay, I was confused because the qpid.messaging.Connection client does
fragment controls.
--
Florian Weimer / Red Hat Product Security Team
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org
Re: qpid::amqp_0_10::Connection::encode() produces zero-length frames
Posted by Gordon Sim <gs...@redhat.com>.
On 05/23/2012 03:11 PM, Florian Weimer wrote:
> On 05/23/2012 03:19 PM, Gordon Sim wrote:
>
>>> I would have expected that such over-sized frames are fragmented. Is
>>> this actually implemented somewhere in the code?
>>
>> Yes, in qpid::framing::SendContent (for broker) and
>
> Thanks. This seems to apply to message.transfer contents only, and not
> to headers or controls.
Yes, that is correct. The c++ client/broker currently do not handle
header or command/control segments of more than one frame.
>> qpid::client::SessionImpl (for client).
>
> This appears to be more generic and also applies to controls which the
> server cannot process (presumably due to lack of defragmentation).
I believe the fragmentation here also only applies to content segments.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org
Re: qpid::amqp_0_10::Connection::encode() produces zero-length frames
Posted by Florian Weimer <fw...@redhat.com>.
On 05/23/2012 03:19 PM, Gordon Sim wrote:
>> I would have expected that such over-sized frames are fragmented. Is
>> this actually implemented somewhere in the code?
>
> Yes, in qpid::framing::SendContent (for broker) and
Thanks. This seems to apply to message.transfer contents only, and not
to headers or controls.
> qpid::client::SessionImpl (for client).
This appears to be more generic and also applies to controls which the
server cannot process (presumably due to lack of defragmentation).
--
Florian Weimer / Red Hat Product Security Team
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org
Re: qpid::amqp_0_10::Connection::encode() produces zero-length frames
Posted by Gordon Sim <gs...@redhat.com>.
On 05/23/2012 02:10 PM, Florian Weimer wrote:
> Hi,
>
> the Qpid broker invokes encode() with a buffer size of 65536 bytes. If a
> frame of 65536 bytes is about to be sent, there is room for it in the
> buffer, and the first while loop is entered. But the underlying codec
> cannot express this frame size on the wire, it writes a 16-bit zero
> instead. This seems to be an (ordinary) bug.
>
> I would have expected that such over-sized frames are fragmented. Is
> this actually implemented somewhere in the code?
Yes, in qpid::framing::SendContent (for broker) and
qpid::client::SessionImpl (for client).
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org