Martin Ritchie wrote:
Rafi. do you have a test case that can reproduce the problem in 602?
I've been trying to do so by populating the queue and then connect a
client wils sending more messages. So far it always gets the messages
in the right order. I haven't had much time to get a failing test so i
can test my solution so he you have such a test that would really
help.
I assume you mean QPID-601, not QPID-602.
I had thought the TopicSessionTest failure was an example of the race
condition, however your explanation in another post also accounts for
that failure.
I haven't tested this myself, but in theory a long enough Thread.sleep
at the end of ConcurrentSelectorDeliveryManager.populatePreDeliveryQueue
should make the race condition easy to reproduce because at that point
the Subscription has not been added to _subscriptions, so any messages
delivered at that point will be stranded in the _messages queue.
--Rafael