[rabbitmq-discuss] rabbitmq-c corrupt content frame from ARM client
Marco Scoffier
marco at metm.org
Sun Apr 6 08:16:09 BST 2014
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
>
More information about the rabbitmq-discuss
mailing list