Created attachment 430389 [details]
Excerpt from the broker log illustrating the problem.
Description of problem:
From the broker log it would appear that a message is either being lost or the broker is incorrectly reporting a queue as empty.
This is quite difficult to reproduce.
Steps to Reproduce:
1. Apply the following diff:
--- qpid/tests/messaging/message.py (revision 960899)
+++ qpid/tests/messaging/message.py (working copy)
@@ -65,10 +65,11 @@
def check(self, msg):
- echo = self.rcv.fetch(0)
- self.assertEcho(msg, echo)
+ for i in range(1000):
+ echo = self.rcv.fetch(0)
+ self.assertEcho(msg, echo)
2. Run the broker with --auth no and whatever logging options are desired.
3. From the patched python directory run:
bash# while ./qpid-python-test -t -Ddelay=0.1 *.MessageEchoTests.* -v DEBUG -c qpid.messaging.io.ops > log.txt; do true; done
4. Wait until the above fails. (This may take many hours.)
At some point the test will fail and the loop will exit and the broker and client logs can be examined.
The test should run indefinitely.
Turns out the ttl on the message meant the message expired before it could be delivered.