qpid-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Steve Huston (JIRA)" <qpid-...@incubator.apache.org>
Subject [jira] Resolved: (QPID-2076) C++ Broker assumes it can delete a pointer passed by message store plugin
Date Fri, 02 Oct 2009 15:49:23 GMT

     [ https://issues.apache.org/jira/browse/QPID-2076?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Steve Huston resolved QPID-2076.
--------------------------------

       Resolution: Fixed
    Fix Version/s: 0.6

Patches applied to trunk r821066.

> C++ Broker assumes it can delete a pointer passed by message store plugin
> -------------------------------------------------------------------------
>
>                 Key: QPID-2076
>                 URL: https://issues.apache.org/jira/browse/QPID-2076
>             Project: Qpid
>          Issue Type: Bug
>          Components: C++ Broker
>    Affects Versions: 0.5
>            Reporter: Steve Huston
>            Assignee: Steve Huston
>             Fix For: 0.6
>
>         Attachments: QPID-2076.diff, steve_test_patch.txt
>
>
> The 0.5 broker/message-store plugin arrangement has the plugin allocating an object derived
from MessageStore and calling qpid::broker::Broker::setStore(MessageStore*) to allow the broker's
normal operation to invoke methods through the pointer.
> The passed MessageStore pointer is stored in a std::auto_ptr and the Broker destruction
deletes the store. This is not valid in all cases. Particularly, on Windows, different DLLs
can have different heaps. Memory allocated in one DLL (such as a plugin) can often not be
deleted from a different DLL or executable (such as the broker) - it looks like freeing memory
which was never allocated.
> It also may be desireable in some cases to pass a pointer to qpid::broker::Broker::setStore()
that is not dynamically allocated.
> I propose changing the store pointer in qpid::broker::Broker from std::auto_ptr to boost::shared_ptr
- this will allow the constructing DLL to control if, when, and how the memory is released.

-- 
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:dev-subscribe@qpid.apache.org


Mime
View raw message