[
https://issues.apache.org/jira/browse/AMQCPP-625?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17264195#comment-17264195
]
Thomas Pohl commented on AMQCPP-625:
------------------------------------
I can confirm the issue and saw it a number of times. Somehow the reason for
that the InactivityMonitor doesn't destroy it's timers first. So during
destruction threads still access the monitor and this causes the threads. It's
really hard to prove in a reliable fashion. But I've been able to fix this by
simply ensure the Timer variables are the last once declared.
> Inactivity mointor core dump
> -----------------------------
>
> Key: AMQCPP-625
> URL: https://issues.apache.org/jira/browse/AMQCPP-625
> Project: ActiveMQ C++ Client
> Issue Type: Bug
> Components: Decaf, Openwire
> Reporter: Satadip Dutta
> Assignee: Timothy A. Bish
> Priority: Critical
> Attachments: timerCrash.patch
>
>
> Broker Configuration:
> ----------------------------
> <transportConnector name="openwire"
> uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600&transport.useInactivityMonitor=false"/>
> Client configuration:
> ---------------------------
> failover://(tcp://192.168.114.105:61616,tcp://192.168.114.105:61616)?randomize=false&wireFormat=openwire&transport.useInactivityMonitor=false
>
> Application cores/crashes/segfaults and generates core file, even when in
> idle state. Below is the backtrace - Not sure if this is related to
> inactivity monitor
> (gdb) bt
> #0 0x00007f2dd9bff989 in raise () from /lib64/libc.so.6
> #1 0x00007f2dd9c01098 in abort () from /lib64/libc.so.6
> #2 0x00007f2dda5039d5 in __gnu_cxx::__verbose_terminate_handler() () from
> /lib64/libstdc++.so.6
> #3 0x00007f2dda501946 in ?? () from /lib64/libstdc++.so.6
> #4 0x00007f2dda501973 in std::terminate() () from /lib64/libstdc++.so.6
> #5 0x00007f2dda5024df in __cxa_pure_virtual () from /lib64/libstdc++.so.6
> #6 0x00007f2ddc404baa in decaf::util::concurrent::Lock::~Lock
> (this=0x7f2d637fdbf0, __in_chrg=<optimized out>) at
> decaf/util/concurrent/Lock.cpp:46
> #7 0x00007f2ddc221e80 in activemq::threads::CompositeTaskRunner::wakeup
> (this=<optimized out>) at activemq/threads/CompositeTaskRunner.cpp:154
> #8 0x00007f2ddc282c95 in
> activemq::transport::inactivity::InactivityMonitor::readCheck
> (this=0x7f2d70003a50)
> at activemq/transport/inactivity/InactivityMonitor.cpp:400
> #9 0x00007f2ddc3ffe5d in decaf::util::TimerImpl::run (this=0x7f2d70002160)
> at decaf/util/Timer.cpp:156
> #10 0x00007f2ddc37b622 in (anonymous namespace)::runCallback
> (arg=0x7f2d70002670) at decaf/internal/util/concurrent/Threading.cpp:268
> #11 0x00007f2ddc37beec in (anonymous namespace)::threadEntryMethod
> (arg=0x7f2d70002670) at decaf/internal/util/concurrent/Threading.cpp:256
> #12 0x00007f2dda9b4df3 in start_thread () from /lib64/libpthread.so.0
> #13 0x00007f2dd9cc03dd in clone () from /lib64/libc.so.6
>
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)