[
https://issues.apache.org/jira/browse/QPID-2559?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12868770#action_12868770
]
Rajith Attapattu commented on QPID-2559:
----------------------------------------
Martin,
I checked in a fix for AMQConnectionTest#testPrefetchSystemProperty() to work
with both the 0-8 and 0-10 codepaths.
I think it's best if we leave that as a test for testing the system prop
instead of using as a test for the issue raised in this JIRA.
I think we should write some specialized test cases around capacity (aka
prefetch. aka consumer flow control) to test this issue and QPID-2604
Actually I have some test cases in my local and these issues were identified as
a result of running those test cases.
I don't think we have any existing tests around capacity. So I am hoping to add
some today.
If you have any further ideas please feel free to add more tests.
I will use your patch when creating the new test cases.
Rajith
> When a subscription is created, message credits should only be set if the
> dispatcher is not null.
> -------------------------------------------------------------------------------------------------
>
> Key: QPID-2559
> URL: https://issues.apache.org/jira/browse/QPID-2559
> Project: Qpid
> Issue Type: Bug
> Components: C++ Client
> Affects Versions: 0.6
> Reporter: Rajith Attapattu
> Assignee: Rajith Attapattu
> Fix For: 0.7
>
> Attachments: QPID-2559.test
>
>
> When a subscription is created, message credits should only be set if the
> dispatcher is not null.
> If the dispatcher is null, the session is suspended temporarily until a
> dispatcher is created.
> And then when the session is unsuspended, message credits will be set again,
> resulting in granting more credits than intended.
> Please note in order for this error condition to happen the dispatcher should
> be null and the broker should have enough messages.
> If the connection is not started and the message consumer is the very first
> to be created for that session, then the dispatcher thread for that session
> is null.
> Steps To Reproduce
> ----------------------------
> 1. create connection, but not start it
> 1. create a session with client ack
> 2. send 20 messages to a queue
> 3. create receiver with capacity (prefetch) as 10.
> 4. start connection.
> 5. receive 10 messages
> Look at the client and broker logs and observe that the broker sends more
> messages than needed.
> Expected Result.
> ------------------------
> At any given time we should only receive n messages, where n == maxprefetch
> (capacity as defined for the destination)
> Actual Result
> -------------------
> For the above conditions, we get double than what we want (provided the
> broker has enough messages on the queue).
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:[email protected]