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]