[
https://issues.apache.org/jira/browse/QPID-2798?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Chuck Rolke updated QPID-2798:
------------------------------
Attachment: crash-double-free-02.patch
Based at qpid\cpp\bindings\qpid\dotnet, this patch creates managed objects in a
more rational way.
Identified in comments as an 'unmanaged clone', a managed object constructor is
given an unmanaged object. The unmanaged object is copied and wrapped in a new
managed object maintaining the principle that now two managed objects reference
the same unmanaged object.
Also:
* csharp.map.sender and csharp.map.receiver get the target Address from a
command line arg.
* functions bool Receiver::Fetch(), and bool Receiver::Get() are temporarily
removed.
* Session copy constructor adds a missing copy of the parentConnection
pointer.
* Some stray debug code is deleted.
> C++ Messaging Client .NET binding fails to clone managed objects correctly
> --------------------------------------------------------------------------
>
> Key: QPID-2798
> URL: https://issues.apache.org/jira/browse/QPID-2798
> Project: Qpid
> Issue Type: Bug
> Environment: A case where managed code asserts while creating a
> managed object.
> Reporter: Chuck Rolke
> Attachments: crash-double-free-02.patch
>
>
> The specific case that failed was
> request = receiver.fetch();
> address = request.ReplyTo;
> sender = session.CreateSender(address);
> The bug occurs during the cloning of the Address object from the
> request.ReplyTo. After that line of code there are two managed objects that
> have pointers to the same unmanaged object. When the CreateSender function
> asserts then the process will get an accvio during shutdown.
--
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]