-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/17641/
-----------------------------------------------------------
(Updated Feb. 3, 2014, 12:12 p.m.)
Review request for qpid, Chug Rolke and Gordon Sim.
Changes
-------
Updated version of the patch per Gordon's comment.
Bugs: QPID-5534
https://issues.apache.org/jira/browse/QPID-5534
Repository: qpid
Description
-------
Root cause of the bug: HeadersExchange::route method generates BindingList that
may contain multiple bindings to the same queue. That causes a message to be
enqueued to the same queue more than once.
The patch sorts+makes unique the BindingList by using std::map < Queue ,
Binding > (boost pointers in fact). Also an automated python test added.
The patch is trivial, but:
- I am not sure if there isn't easier / more elegant way of sort&uniq of
BindingList
- one quite irrelevant test
"qpid_tests.broker_0_10.management.ManagementTest.test_connection_stats" fails
in 1/2 of runs; Debugging it found that the QMF related connection was created
almost minute _after_ session.attach("stats-session") invoked. That seems like
an issue unrelated to this patch.
Diffs (updated)
-----
/trunk/qpid/cpp/src/qpid/broker/HeadersExchange.cpp 1563839
/trunk/qpid/tests/src/py/qpid_tests/broker_0_10/exchange.py 1563839
Diff: https://reviews.apache.org/r/17641/diff/
Testing
-------
Thanks,
Pavel Moravec