Created attachment 481707 [details] c++ program to send and receive messages; shell script that runs full test and demonstrates failure; makefile included Description of problem: When an exchange is declared with an alternate-exchange on one node of a cluster, other nodes in the cluster are not made aware of the alternate-exchange. Version-Release number of selected component (if applicable): 0.7.946106-28_ptc_hotfix_5 How reproducible: 100% of the time Steps to Reproduce: 1. download attachment and untar all files to a single folder 2. run poc.sh 3. See comments in poc.sh to follow what's happening step-by-step Actual results: Within the output, you will see the following: <<< Message 1 was not received. Message 2 received! >>> Message 1 was sent to 1.Ex, which was created on a different node. Message 2 was sent to 2.Ex, which was created on the same node. The script then calls qpid-stat. You’ll see that only Message 2 (98 bytes) was received by Alternate.Ex. Message 1 (9 bytes) was dropped by 1.Ex without being received by Alternate.Ex. Expected results: Both Message 1 and Message 2 should be received. In qpid-stat, Alternate.Ex should show msgIn=2, msgOut=2, byteIn=107(== 98+9), byteOut=107 Additional info:
This appears to happen only when a node is restarted or a new node is added, i.e. nodes playing catch-up aren't told about the alternate exchange.
Fixed on upstream trunk r1076375
Technical note added. If any revisions are required, please edit the "Technical Notes" field accordingly. All revisions will be proofread by the Engineering Content Services team. New Contents: Cause: Running a cluster and using alternate exchanges. Consequence: Alternate exchange settings were not propagated to new cluster members. Fix: Corrected the cluster update process to include alternate exchanges. Result: Alternate exchanges work as expected in a cluster.
This issue has been fixed Verified on RHEL5.6 and RHEL6.1, architectures: i386, x86_64 packages installed: qpid-cpp-mrg-debuginfo-0.10-1.el5 qpid-cpp-client-0.10-1.el5 qpid-cpp-server-devel-0.10-1.el5 qpid-cpp-server-0.10-1.el5 qpid-cpp-client-devel-0.10-1.el5 qpid-cpp-client-devel-docs-0.10-1.el5 qpid-cpp-server-xml-0.10-1.el5 qpid-cpp-server-cluster-0.10-1.el5 qpid-cpp-client-ssl-0.10-1.el5 qpid-cpp-server-store-0.10-1.el5 qpid-cpp-server-ssl-0.10-1.el5 openais-0.80.6-28.el5 openais-devel-0.80.6-28.el5 openais-devel-0.80.6-28.el5 ( RHEL6 corosynclib-1.2.3-34.el6.x86_64 corosync-1.2.3-34.el6.x86_64 ) -> VERIFIED
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