Red Hat Bugzilla – Bug 873883
Dynamic federation bindings can become out-of-sync
Last modified: 2014-09-24 11:05:28 EDT
Description of problem:
When dynamic federation is configured using an existing queue, it is possible for the bindings on the source exchange to become out-of-sync with the destination exchange if there is an interruption in the bridge (i.e. connectivity loss, session error, etc) and an unbind event occurs on the destination exchange while the bridge is detached.
Normally dynamic federation would utilize an auto-delete queue for the bridge queue, so the missing unbind events are inconsequential since the queue would be deleted upon an interruption in the bridge. However, using dynamic federation with an existing queue allows full control over the queue properties and enables support for message acks and is therefore highly desirable.
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. Create a bridge queue on the source broker
2. Create a dynamic federated route between a destination broker exchange and source broker exchange, using the existing bridge queue
3. Create a binding on the destination exchange to propagate the binding to the source exchange
4. Disconnect the source and destination brokers
5. While source and destination brokers are disconnected, unbind the previously created binding
The binding is never removed on the source exchange
The binding is removed on the source exchange either when the bridge was initially lost or shortly after the source and destination bridges reconnect
Created attachment 641618 [details]
Patch to auto-unbind propagated bindings when destination broker disconnects
Patch also addresses need described in QPID-3777
The self test code in the attachment passes even without the rest of the patch.
Created attachment 642320 [details]
Updated patch to auto-unbind propagated bindings when destination broker disconnects
The second patch (attachment 642320 [details]) passes federation self test
This fix looks fine.
This was tested on RHEL 5.9, 6.4 and i686, x86_64 with packages:
This issue was discovered in a development build. In hindsight, this issue therefore does not require Release Notes because a customer would never have encountered this issue. Removing from 3.0 Release Notes.
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.
For information on the advisory, and where to find the updated
files, follow the link below.
If the solution does not work for you, open a new bug report.