[
https://issues.apache.org/jira/browse/QPID-2631?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Gordon Sim resolved QPID-2631.
------------------------------
Resolution: Fixed
> Race in qpid::client::Bounds causes (rare) deadlock
> ---------------------------------------------------
>
> Key: QPID-2631
> URL: https://issues.apache.org/jira/browse/QPID-2631
> Project: Qpid
> Issue Type: Bug
> Components: C++ Client
> Affects Versions: 0.5, 0.6
> Reporter: Gordon Sim
> Assignee: Gordon Sim
> Fix For: 0.7
>
>
> There is a race condition in the use of Bounds in SessionImpl::sendFrame.
> This function sends the frame first, then calls
> Bounds::expand(). But it's possible the network thread calls Bounds::reduce()
> between sending the frame and calling expand. If the Bounds::current value is > 0
> that reduce() is lost. If enough reduce() calls are lost in this way
> eventually we will deadlock.
> In investigating this it also became clear that the connection frames weren't
> correctly accounted for (i.e. the bounds are never expended for connection
> frames, though they are included in the byte count passed in on reduce()).
> Though this shouldn't actually cause any problem it is logically incorrect,
> unintuitive and could mask problems that are hard to diagnose.
--
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]