[rabbitmq-discuss] Rabbitmq-c Help

David Wragg david at rabbitmq.com
Tue Sep 21 23:10:32 BST 2010

Hi Pieter,

Sorry for the delay in responding.

Pieter de Zwart <pdezwart at rubiconproject.com> writes:
> I need some help with rabbitmq-c. I inherited the PHP extension code base,
> so I am a little lost. I pulled in RabbitMQ 2.1, along with the tip of
> rabbitmq-c and rabbitmq-codegen. Everything compiles just fine, but when I
> try to instantiate a new connection in the PHP extension, I get:
> localhost:~/src/pecl/amqp/trunk$ php -f tests/test.php
> Expected 0x000A000A method frame on channel 0, got frame on channel 19793
> This is the stacktrace:
> #0  0x009f4416 in __kernel_vsyscall ()
> #1  0x00248d71 in raise (sig=6) at
> ../nptl/sysdeps/unix/sysv/linux/raise.c:64
> #2  0x0024a64a in abort () at abort.c:92
> #3  0x00137640 in amqp_simple_wait_method (state=0xa1604c0,
> expected_channel=0, expected_method=655370, output=0xbfe31b20) at
> amqp_socket.c:243
> #4  0x001379fc in amqp_login_inner (state=0xa1604c0, vhost=0xa12d70c "/",
> channel_max=0, frame_max=131072, heartbeat=0,
> sasl_method=AMQP_SASL_METHOD_PLAIN) at amqp_socket.c:373

What's happening is that the C client is proposing a version of AMQP,
and the server is rejecting it.  I can't tell more that that, because
the C client doesn't handle this version mismatch situation well.

But the versions of rabbitmq-c, rabbitmq-codegen and rabbitmq-server you
describe all implement AMQP 0-9-1, so how that can be happening is a bit
of a mystery.

My guess is that you are actually pointing the current C client at an
old (pre-2.0) version of rabbitmq-server somehow.  Is that possible?
Please double check and let me know.


David Wragg
Staff Engineer, RabbitMQ
SpringSource, a division of VMware

More information about the rabbitmq-discuss mailing list