You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Timothy Bish (JIRA)" <ji...@apache.org> on 2013/02/08 18:31:14 UTC
[jira] [Resolved] (AMQCPP-455) Found an access violation in CMS
when creating a new connection
[ https://issues.apache.org/jira/browse/AMQCPP-455?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Timothy Bish resolved AMQCPP-455.
---------------------------------
Resolution: Fixed
Fixed on trunk and the 3.5.x fixes branch. Ensures that the configuration data is thread safe preventing concurrent calls to createConnection from stepping on each other.
> Found an access violation in CMS when creating a new connection
> ---------------------------------------------------------------
>
> Key: AMQCPP-455
> URL: https://issues.apache.org/jira/browse/AMQCPP-455
> Project: ActiveMQ C++ Client
> Issue Type: Bug
> Components: CMS Impl
> Affects Versions: 3.5.0
> Environment: Windows xp service pack 3, ActiveMQ broker 5.3.1, apr 1.4.2, apr-util 1.3.9, apr iconv 1.2.1
> Reporter: Helen Huang
> Assignee: Timothy Bish
> Priority: Critical
> Fix For: 3.5.1, 3.6.0
>
> Attachments: CMS.zip, CrashHang_Report__CMSMessageHandler-MultiTest.exe__02062013143636663.mht
>
>
> Caught an access violation in CMS. The iterator seemed to be out of bound. The following is the call stack:
> activemq-cppud.dll!std::_Tree<std::_Tmap_traits<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >,0> >::const_iterator::operator++() Line 264
> activemq-cppud.dll!std::_Tree<std::_Tmap_traits<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >,0> >::insert<std::_Tree<std::_Tmap_traits<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >,0> >::const_iterator>(std::_Tree<std::_Tmap_traits<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >,0> >::const_iterator _First=(<Bad Ptr>,<Bad Ptr>), std::_Tree<std::_Tmap_traits<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >,0> >::const_iterator _Last=(<Bad Ptr>,<Bad Ptr>)) Line 742 + 0xa bytes
> activemq-cppud.dll!decaf::util::StlMap<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::copy(const decaf::util::StlMap<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > > & source={...}) Line 701
> activemq-cppud.dll!decaf::util::Properties::clone() Line 280
> activemq-cppud.dll!activemq::core::ActiveMQConnectionFactory::doCreateConnection(const decaf::net::URI & uri={...}, const std::basic_string<char,std::char_traits<char>,std::allocator<char> > & username="", const std::basic_string<char,std::char_traits<char>,std::allocator<char> > & password="", const std::basic_string<char,std::char_traits<char>,std::allocator<char> > & clientId="") Line 289 + 0x1f bytes
> activemq-cppud.dll!activemq::core::ActiveMQConnectionFactory::createConnection() Line 245
> activemq-cppud.dll!activemq::cmsutil::CmsAccessor::createConnection() Line 58 + 0x32 bytes
> activemq-cppud.dll!activemq::cmsutil::CmsTemplate::getConnection() Line 258 + 0xd bytes
> activemq-cppud.dll!activemq::cmsutil::CmsTemplate::takeSession() Line 283
> activemq-cppud.dll!activemq::cmsutil::CmsTemplate::execute(activemq::cmsutil::SessionCallback * action=0x02abfac4) Line 433 + 0x8 bytes
> activemq-cppud.dll!activemq::cmsutil::CmsTemplate::execute(activemq::cmsutil::ProducerCallback * action=0x02abfb3c) Line 458
> activemq-cppud.dll!activemq::cmsutil::CmsTemplate::send(activemq::cmsutil::MessageCreator * messageCreator=0x02abfc48) Line 539
> CMSMessageHandler-MultiTest.exe!cmstemplate::Sender::SendMessage(std::basic_string<char,std::char_traits<char>,std::allocator<char> > & message="25040;CTBZMRWGBGIUAHHKNRRBBDZUQYMTZFTPYUOCLPLUTHNSBVFZFDTIMKBUIYAQBYBINKJLHQWUNEOUBILUSFBOVSHAPJICGMQYXALGF", cmstemplate::ErrorCode & errorCode=CMS_SUCCESS) Line 65 + 0x2d bytes
> CMSMessageHandler-MultiTest.exe!cmstemplate::TestSenderAndReceiver::run() Line 91
> activemq-cppud.dll!decaf::lang::Thread::run() Line 143
> activemq-cppud.dll!`anonymous namespace'::runCallback(void * arg=0x00beeb68) Line 262 + 0x11 bytes
> activemq-cppud.dll!`anonymous namespace'::threadEntryMethod(void * arg=0x00beeb68) Line 250 + 0x15 bytes
> msvcr80d.dll!_callthreadstartex() Line 348 + 0xf bytes
> msvcr80d.dll!_threadstartex(void * ptd=0x00bf0ee8) Line 331
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira