You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Geoff Simmons (JIRA)" <ji...@apache.org> on 2014/05/20 18:03:08 UTC

[jira] [Created] (AMQCPP-544) decaf Lock::lock() triggering ABRT within destructors

Geoff Simmons created AMQCPP-544:
------------------------------------

             Summary: 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.2#6252)