qpid-dev mailing list archives

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

This is an automatically generated e-mail. To reply, visit:

Review request for qpid, Chug Rolke and Gordon Sim.

Bugs: QPID-5534

Repository: qpid


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.


  /trunk/qpid/cpp/src/qpid/broker/HeadersExchange.cpp 1563578 
  /trunk/qpid/tests/src/py/qpid_tests/broker_0_10/exchange.py 1563578 

Diff: https://reviews.apache.org/r/17641/diff/



Pavel Moravec

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