[ https://issues.apache.org/jira/browse/QPID-7679?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Cliff Jansen resolved QPID-7679. -------------------------------- Resolution: Resolved Fix Version/s: qpid-cpp-1.37.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 > 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.3.15#6346) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org