qpid-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Pavel Moravec" <pmora...@redhat.com>
Subject Re: Review Request 17641: QPID-5534: [C++ broker] Headers exchange can route a message to one queue multiple times
Date Mon, 03 Feb 2014 12:12:53 GMT

-----------------------------------------------------------
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


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message