[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