Bug 690261 - Broker Federation broken after QPIDD restart
Summary: Broker Federation broken after QPIDD restart
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise MRG
Classification: Red Hat
Component: qpid-qmf
Version: 1.3
Hardware: i686
OS: Linux
unspecified
high
Target Milestone: 2.0
: ---
Assignee: Ken Giusti
QA Contact: ppecka
URL:
Whiteboard:
: 681715 (view as bug list)
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2011-03-23 18:11 UTC by Nick Capito
Modified: 2011-08-12 16:04 UTC (History)
6 users (show)

Fixed In Version: qpid-cpp-mrg-0.10-4
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2011-06-23 15:43:37 UTC
Target Upstream Version:


Attachments (Terms of Use)
Script to reproduce bug. (2.28 KB, application/x-shellscript)
2011-03-23 18:11 UTC, Nick Capito
no flags Details


Links
System ID Private Priority Status Summary Last Updated
Red Hat Bugzilla 681715 0 unspecified CLOSED Adding/Deleting Qpid dynamic routes 2021-02-22 00:41:40 UTC
Red Hat Product Errata RHEA-2011:0890 0 normal SHIPPED_LIVE Red Hat Enterprise MRG Messaging 2.0 Release 2011-06-23 15:42:41 UTC

Internal Links: 681715

Description Nick Capito 2011-03-23 18:11:03 UTC
Created attachment 487105 [details]
Script to reproduce bug.

Description of problem:

Scenerio is as follows:


Four brokers
  BrokerA1 :  (5671 in script)
  BrokerA2 : (5672 in script)
  BrokerB1 : (6671 in script)
  BrokerAB2: (6672 in script)


The federation is as follows 

qpid-route -d route add localhost:5671 localhost:5672 Bug '#.Key' 
qpid-route -d route add localhost:5672 localhost:5671 Bug '#.A.Key' 
qpid-route -d route add localhost:5672 localhost:5671 Bug '#.Other.Key' 

qpid-route -d route add localhost:6671 localhost:6672 Bug '#.Key' 
qpid-route -d route add localhost:6672 localhost:6671 Bug '#.B.Key' 
qpid-route -d route add localhost:6672 localhost:6671 Bug '#.Other.Key' 


BrokerA1->#.A.Key->BrokerA2
BrokerA1->#.Other.Key->BrokerA2
BrokerA1 <-#.Key <-BrokerA2


BrokerB1->#.B.Key->BrokerB2
BrokerB1->#.Other.Key->BrokerB2
BrokerB1 <-#.Key <-BrokerB2



Then the BrokerA1 and BrokerB1 are dynamically linked 

BrokerA1 <=> BrokerB1

The general flow is as follows:

Message(subject=B.Key) -> BrokerA2 -> BrokerA1 -> BrokerB1 -> BrokerB2 received
Message(subject=Other.Key) -> BrokerA2 -> BrokerA1 -> BrokerB1 -> BrokerB2(received)

Everything works perfectly, can send messages back and forth by pushing messages to brokers A2 or B2, the messages will arive on the opposite node.

So I put a message (with key A.Key or Other.Key) on A2, I can receive it on B2, and vice versa.


If I then terminate broker A1, wait any period of time and restart broker A1, wait any amount of time, and re run the above #.Key link works, but Other.Key does not.


My assumption is if the Static keys are the same, when the federation restarts it does not create the nessessary bindings if there is exists a route with the same name.





Additional info:
Once I put a drain on B1, things start working.

Comment 1 Ted Ross 2011-04-06 21:20:27 UTC
Proposed patch at https://reviews.apache.org/r/557

Comment 2 Ted Ross 2011-04-06 21:28:24 UTC
This is likely related to Bug 681715

Comment 4 Ted Ross 2011-04-08 18:27:35 UTC
*** Bug 681715 has been marked as a duplicate of this bug. ***

Comment 5 Ken Giusti 2011-04-08 18:32:13 UTC
Upstream fix:

http://svn.apache.org/viewvc?view=revision&revision=1090266

Comment 8 ppecka 2011-06-01 16:20:30 UTC
VERIFIED on rhel5.6 / rhel 6.1 - i686 / x86_64:

qpid-java-client-0.10-6.el6.noarch
qpid-cpp-client-0.10-5.el6.i686
qpid-cpp-client-devel-0.10-5.el6.i686
qpid-tools-0.10-4.el6.noarch
qpid-cpp-server-rdma-0.10-5.el6.i686
rh-qpid-cpp-tests-0.10-5.el6.i686
qpid-java-common-0.10-6.el6.noarch
qpid-java-jca-0.10-6.el6.noarch
qpid-qmf-0.10-7.el6.i686
qpid-cpp-client-ssl-0.10-5.el6.i686
qpid-cpp-server-ssl-0.10-5.el6.i686
qpid-cpp-server-store-0.10-5.el6.i686
qpid-cpp-server-0.10-5.el6.i686
qpid-cpp-client-rdma-0.10-5.el6.i686
qpid-cpp-server-devel-0.10-5.el6.i686
qpid-cpp-server-xml-0.10-5.el6.i686
python-qpid-0.10-1.el6.noarch
qpid-java-example-0.10-6.el6.noarch
qpid-cpp-client-devel-docs-0.10-5.el6.noarch
python-qpid-qmf-0.10-7.el6.i686
qpid-qmf-devel-0.10-7.el6.i686
ruby-qpid-qmf-0.10-7.el6.i686
qpid-cpp-server-cluster-0.10-5.el6.i686

--> VERIFIED
qpid-tests-0.10-1.el6.noarch

Comment 9 errata-xmlrpc 2011-06-23 15:43:37 UTC
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on therefore solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.

http://rhn.redhat.com/errata/RHEA-2011-0890.html


Note You need to log in before you can comment on or make changes to this bug.