You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "Timothy Bish (JIRA)" <ji...@apache.org> on 2015/07/16 19:23:04 UTC
[jira] [Closed] (AMQCPP-544) decaf Lock::lock() triggering ABRT
within destructors
[ https://issues.apache.org/jira/browse/AMQCPP-544?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Timothy Bish closed AMQCPP-544.
-------------------------------
Resolution: Cannot Reproduce
Have not seen this in testing the code that will become v3.9.0. Perhaps a problem that has been resolved by another fix.
> decaf Lock::lock() triggering ABRT within destructors
> -----------------------------------------------------
>
> Key: AMQCPP-544
> URL: https://issues.apache.org/jira/browse/AMQCPP-544
> Project: ActiveMQ C++ Client
> Issue Type: Bug
> Components: CMS Impl, Decaf
> Affects Versions: 3.8.2
> Environment: $ uname -a
> Linux XXXXX 2.6.32-431.11.2.el6.x86_64 #1 SMP Mon Mar 3 13:32:45 EST 2014 x86_64 x86_64 x86_64 GNU/Linux
> libstdc++.so.6.0.13
> Reporter: Geoff Simmons
> Assignee: Timothy Bish
>
> We are experiencing SIGABRTs during attempts to disconnect a client from the broker by calling the destructor of ActiveMQConnection.
> Here's the portion of the stack trace that includes activemq-cpp code:
> {noformat}
> (gdb) bt
> #3 <signal handler called>
> #4 0x00007f98ce2fe925 in raise () from /lib64/libc.so.6
> #5 0x00007f98ce300105 in abort () from /lib64/libc.so.6
> #6 0x00007f98cafd1a5d in __gnu_cxx::__verbose_terminate_handler() ()
> from /usr/lib64/libstdc++.so.6
> #7 0x00007f98cafcfbe6 in ?? () from /usr/lib64/libstdc++.so.6
> #8 0x00007f98cafcfc13 in std::terminate() () from /usr/lib64/libstdc++.so.6
> #9 0x00007f98cafd053f in __cxa_pure_virtual () from /usr/lib64/libstdc++.so.6
> #10 0x00007f98cd891e8b in decaf::util::concurrent::Lock::lock() ()
> from /usr/lib64/libactivemq-cpp.so.18
> #11 0x00007f98cd891fa5 in decaf::util::concurrent::Lock::Lock(decaf::util::concurrent::Synchronizable*, bool) () from /usr/lib64/libactivemq-cpp.so.18
> #12 0x00007f98cd538d0d in activemq::core::ConnectionConfig::~ConnectionConfig()
> () from /usr/lib64/libactivemq-cpp.so.18
> #13 0x00007f98cd4f39c2 in activemq::core::ActiveMQConnection::~ActiveMQConnection() () from /usr/lib64/libactivemq-cpp.so.18
> #14 0x00007f98cd4f3b69 in activemq::core::ActiveMQConnection::~ActiveMQConnection() () from /usr/lib64/libactivemq-cpp.so.18
> {noformat}
> The call to {{__cxa_pure_virtual()}} in frame 9 indicates that {{decaf::util::concurrent::Lock::lock()}} is calling a pure virtual function. Since this is happening within destructor calls (of both ActiveMQConnection and ConnectionConfig), it has evidently triggered std::terminate from libstdc++, and hence the abort.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)