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)