-
Bug
-
Resolution: Done
-
Major
-
A-MQ 7.0.0.ER7
-
None
-
Broker downloaded from:
A-MQ7 - 7.0.0.ER7-redhat-1Broker running in Fedora. > uname -a
Linux plicit 4.5.5-201.fc23.x86_64 #1 SMP Sat May 21 15:29:49 UTC 2016 x86_64 x86_64 x86_64 GNU/LinuxClient running in Windows Server 2012 R2.
amqpnetlite master branch, self test: LinkTests TestMethod_AdvancedLinkFlowControlBroker downloaded from: A-MQ7 - 7.0.0.ER7-redhat-1 Broker running in Fedora. > uname -a Linux plicit 4.5.5-201.fc23.x86_64 #1 SMP Sat May 21 15:29:49 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux Client running in Windows Server 2012 R2. amqpnetlite master branch, self test: LinkTests TestMethod_AdvancedLinkFlowControl
This issue may be a repeat of the multiple-competing-consumers-get-stuck.
The Lite client has a self test that executes:
SenderLink sender = new SenderLink(session, "sender-" + testName, "q1"); for (int i = 0; i < nMsgs; ++i) { Message message = new Message(); message.Properties = new Properties() { MessageId = "msg" + i, GroupId = testName }; sender.Send(message, null, null); } ReceiverLink receiver = new ReceiverLink(session, "receiver-" + testName, "q1"); receiver.SetCredit(2, false); // <<< does not renew credit Message m1 = receiver.Receive(); Message m2 = receiver.Receive(); Assert.AreEqual("msg0", m1.Properties.MessageId); Assert.AreEqual("msg1", m2.Properties.MessageId); receiver.Accept(m1); receiver.Accept(m2); ReceiverLink receiver2 = new ReceiverLink(session, "receiver2-" + testName, "q1"); receiver2.SetCredit(2, false); // <<< does not renew credit Message m3 = receiver2.Receive(); Message m4 = receiver2.Receive(); Assert.AreEqual("msg2", m3.Properties.MessageId); Assert.AreEqual("msg3", m4.Properties.MessageId); receiver2.Accept(m3); receiver2.Accept(m4); receiver.SetCredit(4); // <<< renews credit for (int i = 4; i < nMsgs; i++) { Message m = receiver.Receive(); Assert.AreEqual("msg" + i, m.Properties.MessageId); receiver.Accept(m); }
When the test runs the second client receiver2-* never receives any messages.
With Qpidd the test passes and the receivers receive messages as expected.