Race condition in queue
-----------------------

                 Key: QPID-2588
                 URL: https://issues.apache.org/jira/browse/QPID-2588
             Project: Qpid
          Issue Type: Bug
          Components: C++ Broker
    Affects Versions: 0.6
            Reporter: Gordon Sim


==32561== Possible data race during read of size 8 at 0x60260f0 by thread #9
==32561==    at 0x4F1AC4A: 
qpid::broker::Queue::enqueue(qpid::broker::TransactionContext*, 
boost::intrusive_ptr<qpid::broker::Message>, bool) (Queue.cpp:743)
==32561==    by 0x4F1577E: 
qpid::broker::Queue::deliver(boost::intrusive_ptr<qpid::broker::Message>&) 
(Queue.cpp:157)
==32561==    by 0x4ECC2A1: 
qpid::broker::DeliverableMessage::deliverTo(boost::shared_ptr<qpid::broker::Queue>
 const&) (DeliverableMessage.cpp:31)
==32561==    by 0x4EE3AD2: 
qpid::broker::Exchange::doRoute(qpid::broker::Deliverable&, 
boost::shared_ptr<std::vector<boost::shared_ptr<qpid::broker::Exchange::Binding>,
 std::allocator<boost::shared_ptr<qpid::broker::Exchange::Binding> > > const>) 
(Exchange.cpp:91)
==32561==    by 0x4F74702: 
qpid::broker::TopicExchange::route(qpid::broker::Deliverable&, std::string 
const&, qpid::framing::FieldTable const*) (TopicExchange.cpp:321)
==32561==    by 0x4F490DC: 
qpid::broker::SemanticState::route(boost::intrusive_ptr<qpid::broker::Message>, 
qpid::broker::Deliverable&) (SemanticState.cpp:461)
==32561==    by 0x4F482C6: 
qpid::broker::SemanticState::handle(boost::intrusive_ptr<qpid::broker::Message>)
 (SemanticState.cpp:415)
==32561==    by 0x4F6DB55: 
qpid::broker::SessionState::handleContent(qpid::framing::AMQFrame&, 
qpid::framing::SequenceNumber const&) (SessionState.cpp:249)
==32561==    by 0x4F6E803: 
qpid::broker::SessionState::handleIn(qpid::framing::AMQFrame&) 
(SessionState.cpp:327)
==32561==    by 0x4F716EC: 
qpid::framing::Handler<qpid::framing::AMQFrame&>::MemFunRef<qpid::framing::Handler<qpid::framing::AMQFrame&>::InOutHandlerInterface,
 
&(qpid::framing::Handler<qpid::framing::AMQFrame&>::InOutHandlerInterface::handleIn(qpid::framing::AMQFrame&))>::handle(qpid::framing::AMQFrame&)
 (Handler.h:67)
==32561==    by 0x55DF009: 
qpid::amqp_0_10::SessionHandler::handleIn(qpid::framing::AMQFrame&) 
(SessionHandler.cpp:93)
==32561==    by 0x4F716EC: 
qpid::framing::Handler<qpid::framing::AMQFrame&>::MemFunRef<qpid::framing::Handler<qpid::framing::AMQFrame&>::InOutHandlerInterface,
 
&(qpid::framing::Handler<qpid::framing::AMQFrame&>::InOutHandlerInterface::handleIn(qpid::framing::AMQFrame&))>::handle(qpid::framing::AMQFrame&)
 (Handler.h:67)
==32561==  This conflicts with a previous write of size 8 by thread #1
==32561==    at 0x4F1CA89: qpid::broker::Queue::destroy() (Queue.cpp:900)
==32561==    by 0x4F1D48B: 
qpid::broker::Queue::tryAutoDelete(qpid::broker::Broker&, 
boost::shared_ptr<qpid::broker::Queue>) (Queue.cpp:1011)
==32561==    by 0x4F48029: 
qpid::broker::SemanticState::cancel(boost::shared_ptr<qpid::broker::SemanticState::ConsumerImpl>)
 (SemanticState.cpp:402)
==32561==    by 0x4F449DE: qpid::broker::SemanticState::~SemanticState() 
(SemanticState.cpp:84)
==32561==    by 0x4F6CCA1: qpid::broker::SessionState::~SessionState() 
(SessionState.cpp:96)
==32561==    by 0x4F6CE53: qpid::broker::SessionState::~SessionState() 
(SessionState.cpp:96)
==32561==    by 0x4F67BDC: 
std::auto_ptr<qpid::broker::SessionState>::~auto_ptr() (auto_ptr.h:168)
==32561==    by 0x4F66CEF: qpid::broker::SessionHandler::handleDetach() 
(SessionHandler.cpp:70)




-- 
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]

Reply via email to