[rabbitmq-discuss] rabbitmq-c corrupt content frame from ARM client

Marco Scoffier marco at metm.org
Sun Apr 6 10:25:55 BST 2014


Hi Alan,

I just re-uploaded the file to include all the packets around the 
handshake (not just the 3 I get when filtering for AMQP) as you 
mentioned wireshark itself might also have parsing issues.

Marco

On 04/06/2014 03:16 AM, Marco Scoffier wrote:
> Sure,
>
> I dumped the 3 packets to a separate file. This is the binary data which
> you can open in wireshark:
>
> http://metm.org/images/amqp_handshake_wireshark.log
>
> Thanks for looking into this and happy to provide any additional tests,
>
> Marco
>
> On 04/06/2014 12:48 AM, Alan Antonuk wrote:
>> Marco;
>>
>>  From the wireshark info, it sounds like the rabbitmq-c client is
>> sending completely the wrong data. It should send a Connection.Start-Ok
>> method and not a content-header frame (e.g., the frame type should be 1
>> first few bytes of that frame should be: 0x01 {Method Frame}, 0x00, 0x00
>> {Channel 0}, 0x00, 0x00 0xXX, 0xXX {Big Endian length of frame in bytes}
>> ). I'm also not sure what to to think about the sent header length: that
>> should be 8 bytes or 64 bits, I suspect thats a wireshark oddity though.
>>
>> The octets reported by the RabbitMQ server error message don't really
>> make sense to me: I'm having trouble correlating what is reported vs
>> what I think should be, even if the system is doing an incorrect
>> byteswap. I'm not 100% sure we're clear of any unaligned access issues,
>> but I would guess we'd be hitting bus-errors in that case, though I'm
>> not quite sure
>>
>> Would you be willing to send me a filtered down wireshark log of the
>> failed handshake?
>>
>> -Alan
>>
>>
>> On Fri, Apr 4, 2014 at 6:38 PM, Marco Scoffier <marco at metm.org
>> <mailto:marco at metm.org>> wrote:
>>
>>     Hello,
>>
>>     I apologize if this has been discussed before. I checked the
>>     archives but did not find any mention of the issue.
>>
>>     I've compiled rabbitmq-c [1] for the arm architecture [2]  from and
>>     am trying to send messages to a broker running on another machine
>>     [3]. The rabbitmq-c examples run perfectly on the 64bit linux, same
>>     code compiled for arm device and running there sends a corrupt
>> packet.
>>
>>     [1] https://github.com/alanxz/__rabbitmq-c
>>     <https://github.com/alanxz/rabbitmq-c>
>>     [2] armv6 linaro toolchain
>>     [3] linux 64bit rabbitmq-server ppa for ubuntu. running on 12.04
>>
>>     I'm a little stuck about how to debug further and am looking for
>>     some pointers where to look in the code or what extra information I
>>     can provide.
>>
>>     Wireshark shows three packets for the amqp_sendstring example
>>
>>     ARM device/Source = 192.168.1.117
>>     64bit broker/Destination = 192.168.1.133
>>
>>     Source          Destination    protocol length info
>>     --------------+---------------__+--------+------+------------
>>     192.168.1.117   192.168.1.133   AMQP    74      Protocol-Header 9-1
>>     192.168.1.133   192.168.1.117   AMQP    522     Connection.Start
>>     192.168.1.117   192.168.1.133   AMQP    190     Content-Header
>>
>>     wireshark's amqp frame dissection shows an error on the 3rd
>>     Content-Header packet:
>>
>>     Expert Info (Error/Protocol): Unknown header class 1290
>>     Message: Unknown header class 1290
>>     Severity level: Error
>>     Group: Protocol
>>
>>     the rabbitmq-server on the linux machine provides this log message:
>>
>>     =ERROR REPORT==== 3-Apr-2014::15:05:35 ===
>>     closing AMQP connection <0.380.0> (192.168.1.117:52890
>>     <http://192.168.1.117:52890> -> 192.168.1.133:5672
>>     <http://192.168.1.133:5672>):
>>     {handshake_error,starting,0,
>>                       {amqp_error,frame_error,
>>                                   "type 0, first 16 octets =
>>     <<5,10,0,11,0,0,0,80,98,112,__114,111,100,117,99,116>>...",
>>                                   none}}
>>
>>     repeat that the same code compiled for 64bit linux same command
>>     works as expected.
>>
>>     Thanks for any pointers,
>>
>>     Marco
>>     _________________________________________________
>>     rabbitmq-discuss mailing list
>>     rabbitmq-discuss at lists.__rabbitmq.com
>>     <mailto:rabbitmq-discuss at lists.rabbitmq.com>
>>
>> https://lists.rabbitmq.com/__cgi-bin/mailman/listinfo/__rabbitmq-discuss
>>
>> <https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss>
>>
>>
>>
>>
>> _______________________________________________
>> rabbitmq-discuss mailing list
>> rabbitmq-discuss at lists.rabbitmq.com
>> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss
>>
>
> _______________________________________________
> rabbitmq-discuss mailing list
> rabbitmq-discuss at lists.rabbitmq.com
> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss



More information about the rabbitmq-discuss mailing list