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

Alan Antonuk alan.antonuk at gmail.com
Sun Apr 6 05:48:41 BST 2014


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> 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
> [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 ->
> 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
> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/attachments/20140405/bb0afe2a/attachment.html>


More information about the rabbitmq-discuss mailing list