You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@qpid.apache.org by Fraser Adams <fr...@blueyonder.co.uk> on 2012/02/10 10:37:02 UTC

qpid-route weirdness between 0.8 qpid-route and 0.6 broker

So firstly
Yes I know these are ancient and should be upgraded ASAP but 
unfortunately they're not mine.....

One of my team has had cause to federate between a 0.6 source broker and 
a 0.8 destination broker. He's been using the tools (qpid-config and 
qpid-route) from the 0.8 box to create queue routes (source queue routes 
using the -s option on qpid-route).

The destination broker was being moved from one host to another so he 
needed to remove the old queue route and add a new one but unfortunately 
he couldn't remove the route.

As he reported it to me he basically found some weirdness....

I believe that he could add a source route from 0.6 to 0.8 using 
qpid-route -s using the 0.8 version of qpid-route however I believe that 
he couldn't remove the route. OTOH I believe that he /could/ remove the 
route using the 0.6 version of qpid-route, but I don't *think* that he 
could actually add a route using the 0.6 version.

I believe that under the covers the 0.8 version of qpid-route onwards 
essentially uses the QMF create method on the broker object to create a 
link and the bridge method on the link thus created to create the route 
however I haven't a clue how 0.6 works (I started using Qpid from 0.8 so 
I've not looked any earlier). My hunch is that 0.6 either uses something 
different or there are subtle differences in the method semantics that 
leads to weirdness.

I realise that this is somewhat like archeology now but it would be nice 
to have an understanding of what might be going on. It would be useful 
to have some specific evidence when I go about persuading people to upgrade.

Cheers,
Frase.

Re: qpid-route weirdness between 0.8 qpid-route and 0.6 broker

Posted by Fraser Adams <fr...@blueyonder.co.uk>.
On 10/02/12 22:15, Gordon Sim wrote:
>
> Actually the 0.6, 0.8 and even trunk versions currently use 
> Broker.connect() and Link.bridge() methods. Using the Broker.create() 
> would be cleaner and more uniform and I would imagine that will be 
> done at some point.
>
I was fairly sure about the Link.bridge() and just assumed about the 
Broker.create(). I've used create quite a bit of late so it stuck in my 
mind. As you say using create to create the Link object would probably 
be more intuitive and uniform, well at least to those of us who have 
primarily been using QMF to manipulate Management Objects


>> I realise that this is somewhat like archeology now but it would be nice
>> to have an understanding of what might be going on. It would be useful
>> to have some specific evidence when I go about persuading people to
>> upgrade.
>
> There have been lots of small fixes since those versions, both to 
> qpid-route and to federation itself. There is nothing specific I can 
> think of. I suspect upgrading (even if it just so both are 0.8) may be 
> the shortest route to resolution. Alternatively a little bit more info 
> on any errors or log entries etc might trigger a thought in someones 
> mind.
>
Thanks, yeah I'm pushing for a bit of an upgrade. To be fair part of the 
problem is that it's an extremely large federated deployment in a big 
data centre and the guys are rightly concerned about introducing 
regressions in this part of the system when they've made some major 
changes elsewhere too (if it ain't broke and all that...). Fortunately 
they've also been working on their test and CI environments so hopefully 
it's going to be easier to roll out infrastructure upgrades fairly shortly.

Re "Alternatively a little bit more info on any errors or log entries 
etc might trigger a thought in someones mind.". Unfortunately that's 
part of the problem :-)

We've spoken about this before, but one of the issues with federation is 
that there are quite a few scenarios where links/bridges are broken but 
the tools (mainly qpid-route) reports that everything is OK. I think 
that there was some work put into 0.14 to improve retry/reconnection 
behaviour (one previous failure scenario we had was problems with queue 
routes when the source broker restarted and the queue wasn't immediately 
re-created). I've not had a chance to play with 0.14 yet, has that logic 
made it in? Were there any changes made to failure reporting behaviour?

If any thoughts pop into your mind please do let me know. Upgrading is 
definitely the best option, but I'm curious about oddities like this.




---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:users-subscribe@qpid.apache.org


Re: qpid-route weirdness between 0.8 qpid-route and 0.6 broker

Posted by Gordon Sim <gs...@redhat.com>.
On 02/10/2012 09:37 AM, Fraser Adams wrote:
> So firstly
> Yes I know these are ancient and should be upgraded ASAP but
> unfortunately they're not mine.....
>
> One of my team has had cause to federate between a 0.6 source broker and
> a 0.8 destination broker. He's been using the tools (qpid-config and
> qpid-route) from the 0.8 box to create queue routes (source queue routes
> using the -s option on qpid-route).
>
> The destination broker was being moved from one host to another so he
> needed to remove the old queue route and add a new one but unfortunately
> he couldn't remove the route.
>
> As he reported it to me he basically found some weirdness....
>
> I believe that he could add a source route from 0.6 to 0.8 using
> qpid-route -s using the 0.8 version of qpid-route however I believe that
> he couldn't remove the route. OTOH I believe that he /could/ remove the
> route using the 0.6 version of qpid-route, but I don't *think* that he
> could actually add a route using the 0.6 version.
>
> I believe that under the covers the 0.8 version of qpid-route onwards
> essentially uses the QMF create method on the broker object to create a
> link and the bridge method on the link thus created to create the route
> however I haven't a clue how 0.6 works (I started using Qpid from 0.8 so
> I've not looked any earlier). My hunch is that 0.6 either uses something
> different or there are subtle differences in the method semantics that
> leads to weirdness.

Actually the 0.6, 0.8 and even trunk versions currently use 
Broker.connect() and Link.bridge() methods. Using the Broker.create() 
would be cleaner and more uniform and I would imagine that will be done 
at some point.

> I realise that this is somewhat like archeology now but it would be nice
> to have an understanding of what might be going on. It would be useful
> to have some specific evidence when I go about persuading people to
> upgrade.

There have been lots of small fixes since those versions, both to 
qpid-route and to federation itself. There is nothing specific I can 
think of. I suspect upgrading (even if it just so both are 0.8) may be 
the shortest route to resolution. Alternatively a little bit more info 
on any errors or log entries etc might trigger a thought in someones mind.



---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:users-subscribe@qpid.apache.org