[rabbitmq-discuss] Building a recent rabbitmq-c with 0-8 protocol

David Wragg david at rabbitmq.com
Mon Feb 28 22:26:50 GMT 2011


Hi Pieter,

Pieter de Zwart <pdezwart at rubiconproject.com> writes:
> I sincerely hope that this is stupid question with an easy answer. I am
> trying to build a somewhat recent version of the rabbitmq-c library to use
> with the PHP extension, but that uses the 0-8 protocol since our production
> broker is still 1.7.2 (working on upgrading that, but that¹s a separate
> discussion.)
>
> To do so, I edited the configure file to point to the amqp-rabbitmq-0.8.json
> codegen spec, changed the Makefile to not build tools, examples and tests
> (those broke,) and tried to un it. According to my server however, its still
> trying to use 0-9-1 (Expected 0x000A000A method frame on channel 0, got
> frame type 65)
>
> Should this have worked? Am I maybe just installing this wrong? I cleaned
> out all librabbitmq.so files and symlinks, so I doubt its the problem, but I
> am looking for a sanity check here.

There is no intention for this to work.  There are AMQP
version-dependent areas outside of the generated code.  You can see the
complete changes that were involved in the switch of the C client to
0-9-1 at <http://hg.rabbitmq.com/rabbitmq-c/rev/168205522459>.

With that said, it's probably not that difficult to revert the changes.
If you don't care about the changes outside of librabbitmq/, and you
discard the changes to code that wasn't generated back then but is now,
it looks to me like there are only a couple of changes relevant (to
librabbitmq/amqp_socket.c and librabbitmq/codegen.py).

Perhaps we should be gratified that people are still running the 1.7.2
broker in production.  But I'd strongly recommend you upgrade at the
earliest opportunity, both for the many enhancements and for the bug
fixes.  You do know that old 0-8 clients can still talk to the latest
versions of the broker, so you don't have to upgrade your whole AMQP 0-8
infrastructure at once?

David

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


More information about the rabbitmq-discuss mailing list