[
https://issues.apache.org/jira/browse/QPID-7679?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Robbie Gemmell updated QPID-7679:
---------------------------------
Affects Version/s: qpid-cpp-1.36.0
> Memory leak in DirectExchange
> -----------------------------
>
> Key: QPID-7679
> URL: https://issues.apache.org/jira/browse/QPID-7679
> Project: Qpid
> Issue Type: Bug
> Components: C++ Broker
> Affects Versions: qpid-cpp-0.34, qpid-cpp-1.36.0
> Reporter: Cliff Jansen
> Assignee: Cliff Jansen
> Fix For: qpid-cpp-1.37.0
>
> Attachments: Q7679_0.diff, unbind.cpp
>
>
> The Exchange::unbind call for DirectExchange is coded assuming that the
> binding actually exists. If the binding does not exist, this has the side
> effect of creating a Bindingkey in the BindingKey map that remains in the map
> until broker exit. The management count of bindings is not updated so there
> is no indication there of the problem.
> A well behaved 0_10 program that creates a queue, creates a direct binding,
> deletes the binding and then deletes the queue results in a second implicit
> unbind when the queue is deleted (usually on the QueueDeleteBody, but if an
> autodelete queue, it can also happen on the MessageCancelBody ending a
> subscription).
> TopicExchange and FanOutExchange explicitly guard against non-existence of
> the binding/queue pair on unbind(). Presumably, DirectExchange should do the
> same. HeadersExchange doesn't check but doesn't "remember" the pair.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]