qpid-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "jiraposter@reviews.apache.org (Commented) (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (QPID-3602) Fix Consumer message credit issues in 0-10 codepath
Date Wed, 16 Nov 2011 18:32:52 GMT

    [ https://issues.apache.org/jira/browse/QPID-3602?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13151404#comment-13151404

jiraposter@reviews.apache.org commented on QPID-3602:

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

Review request for qpid, Gordon Sim, Robbie Gemmell, Weston Price, Keith Wall, and Oleksandr


This patch is for both QPID-3612 & QPID-3613. Please note QPID-3602 is the main JIRA for
credit related issues.

Message completions are now handled independent of the Message acks.

1. The consumer now keeps track of credits on a per subscription basis using the RangeSet
"completions" and sends completions,
   if the unCompletedCount >= _capacity/2
   For capacity = 0 or capacity = 1, we use the flag "sendCompleteForEveryMsg" to send a completion
for each message.

2. Cleanedup the acking process in AMQSession_0_10.java to make acking independent of completions.
   2.1 For AUTO_ACK we send an ack after every message.
   2.1 For DUPS_OK we ack if,
          maxAckDelay <= 0 OR
          unackedCount >= ackBatchingThreshold, where ackBatchingThreshold == prefetch/2

This addresses bug QPID-3602.



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


Added two basic test cases (transacted and client-ack modes) to ensure completions are sent
in time to ensure credits don't dry up.



> Fix Consumer message credit issues in 0-10 codepath
> ---------------------------------------------------
>                 Key: QPID-3602
>                 URL: https://issues.apache.org/jira/browse/QPID-3602
>             Project: Qpid
>          Issue Type: Bug
>          Components: Java Client
>    Affects Versions: 0.14
>            Reporter: Rajith Attapattu
>            Assignee: Rajith Attapattu
>             Fix For: 0.15
> Currently there are several issues related to message credits.
> 1. QPID-2604 - Getting more messages than required by the prefetch value.
> 2. QPID-3604 - If connection is started and stopped, the client *may* get more messages
than required by the prefetch value.
> 3. QPID-3562 - Prefetch=1 case doesn't work properly.
> 4. Prefetch-0 case doesn't work properly (well completely broken).
> 5. QPID-3612 -Message credits are affected by Command Completions and not message-acks.
However these two are intertwined in the logic causing some issues. For example when in client-ack
mode or using transactions, if the client has exhausted the credits, but is waiting for more
messages to come before it acks or commits a transaction, then the client will appear hung
(This issue is currently masked due to some of the above bugs). 
> 6. QPID-3613 Credit should be managed on a per subscription basis than on a per session

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira


Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org

View raw message