Robbie Gemmell created QPIDJMS-292:
--------------------------------------

             Summary: consumers may buffer vastly more messages than expected 
for their 'prefetch' value
                 Key: QPIDJMS-292
                 URL: https://issues.apache.org/jira/browse/QPIDJMS-292
             Project: Qpid JMS
          Issue Type: Bug
          Components: qpid-jms-client
            Reporter: Robbie Gemmell
            Assignee: Robbie Gemmell
             Fix For: 0.23.0


Consumers may buffer vastly more messages than expected for their 'prefetch' 
value.

The consumer link credit handling is toggled via the 'prefetch' settings, which 
aims to limit the number of messages locally buffered for the consumer, 
protecting the consumer and enabling the server to better distribute between 
multiple consumers as and when appropriate, particularly ones that arrive later 
than others.

The link credit handling however has not been correctly accounting for already 
buffered but not yet consumed messages, but rather only the credit itself at 
the point of inspection. As a result, if the credit is sufficiently (>=70%) 
utilised between processing of messages, more link credit is granted to top up 
to the 'prefetch' value, This potentially allows it to buffer more than 
<prefetch> messages, and also grant more credit even after it has already done 
so. If there is a signficant backlog of messages available and the broker can 
feed them to the client quickly enough, and consumption does not similarly keep 
up, this can repeat to the extent of buffering as many messages as are 
available.

The only obvious workarounds would be reducing the prefetch to 0 or 1.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to