[ 
https://issues.apache.org/jira/browse/QPID-7306?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15345123#comment-15345123
 ] 

ASF subversion and git services commented on QPID-7306:
-------------------------------------------------------

Commit 1749781 from [~aconway] in branch 'qpid/trunk'
[ https://svn.apache.org/r1749781 ]

QPID-7306: Conditional compile mismatch in broker and common libs.

Removed _IN_QPID_BROKER compile definition:

Inconsistently set for libqpidcommon (compiled .cpp files) and libqpidbroker 
(uses .h) files
  - The broker has a binary incompatible notion of what is in the library.

It sort-of works by accident:
   - shared_ptr<T> only contains a T*, the mismatch is effectively doing 
reinterpret_cast<T*>
   - plain T* works for op->, but doesn't guarantee no concurrent deletes.
   - we create and destroy shared_ptr in libraries with _IN_QPID_BROKER set so
     we get cleanup, and no cores if we're lucky but there is limited 
protection from races.

Was only used by management:
  - I think exposing non-shared ptr GetObject was a feature that never 
materialized,
  - if not we need a separate function or class for non-shared-ptr users.

> Fix memory bugs and race conditions found in a Qpid HA deployment
> -----------------------------------------------------------------
>
>                 Key: QPID-7306
>                 URL: https://issues.apache.org/jira/browse/QPID-7306
>             Project: Qpid
>          Issue Type: Bug
>          Components: C++ Broker
>    Affects Versions: 0.32
>            Reporter: Alan Conway
>            Assignee: Alan Conway
>
> Bugs related to thread safety and lifecycle of Links/Bridges, management 
> objects and Queues. These were discovered in a HA environment but most of the 
> issues could theoretically affect a stand alone broker also. For more 
> information see https://bugzilla.redhat.com/show_bug.cgi?id=1333767



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to