[ https://issues.apache.org/jira/browse/QPID-1084?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Marnie McCormack updated QPID-1084: ----------------------------------- Descoping items not being worked on for M4 into Unknown Fix Version for now > [Java Client] Race condition suspending channel in no-ack flow control > situations > --------------------------------------------------------------------------------- > > Key: QPID-1084 > URL: https://issues.apache.org/jira/browse/QPID-1084 > Project: Qpid > Issue Type: Bug > Components: Java Client > Affects Versions: M2, M2.1, M3 > Reporter: Rob Godfrey > Assignee: Rob Godfrey > Attachments: QPID-1084.patch > > > When operating in no-ack mode the 0-8/0-9 client session uses a > FlowControllingBlockingQueue with a threshold listener to attempt to flow > control the channel when too many messages build up. > This code has a built in race condition: > new FlowControllingBlockingQueue.ThresholdListener() > { > public void > aboveThreshold(int currentValue) > { > > _logger.debug( > > "Above threshold(" + _defaultPrefetchHighMark > + ") > so suspending channel. Current value is " + currentValue); > new > Thread(new SuspenderRunner(true)).start(); > } > public void > underThreshold(int currentValue) > { > > _logger.debug( > > "Below threshold(" + _defaultPrefetchLowMark > + ") > so unsuspending channel. Current value is " + currentValue); > new > Thread(new SuspenderRunner(false)).start(); > } > }); > A call to aboveThreshold which is quickly followed by a call to > underThreshold may result in the SuspenRunner threads executing in the > opposite order to that which was desired. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.