ActiveMQ-CPP 3.8.2 - attempting to stop session hangs for ever

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

ActiveMQ-CPP 3.8.2 - attempting to stop session hangs for ever

spamtrap
Hi,

[Linux 2.6.18 64 bit, GCC 4.4.7]

We have a consumer which needs to stop/restart consuming messages.  I
have implemented this by calling cms::Session:stop() and
cms::Session::start() [& recover].  Up to now this has worked OK but
we have seen a case where the stop() method hangs forever.

The stack trace is:
#0 0x000000397bc0aee9 in pthread_cond_wait@@GLIBC_2.3.2 ()
   from /lib64/libpthread.so.0
#1 0x00002ac9764699db in
decaf::internal::util::concurrent::PlatformThread::interruptibleWaitOnCondition
(condition=0xb5c8670, mutex=0xb664c50, complete=...)
    at decaf/internal/util/concurrent/unix/PlatformThread.cpp:210
#2 0x00002ac976468886 in
decaf::internal::util::concurrent::Threading::join (
    thread=0xb669930, mills=0, nanos=0)
    at decaf/internal/util/concurrent/Threading.cpp:1171
#3 0x00002ac9762e0dc3 in
activemq::threads::DedicatedTaskRunner::shutdown (
    this=0xb665b70) at activemq/threads/DedicatedTaskRunner.cpp:111
#4 0x00002ac9761977fd in activemq::core::ActiveMQSessionExecutor::stop
(
    this=0x2aaaac022020) at
activemq/core/ActiveMQSessionExecutor.cpp:140
#5 0x00002ac97618ccbc in activemq::core::ActiveMQSession::stop (
    this=<value optimized out>) at
activemq/core/ActiveMQSession.cpp:255

Any ideas?

Reply | Threaded
Open this post in threaded view
|

Re: ActiveMQ-CPP 3.8.2 - attempting to stop session hangs for ever

tabish121@gmail.com
On 06/05/2014 04:36 AM, spam trap wrote:

> Hi,
>
> [Linux 2.6.18 64 bit, GCC 4.4.7]
>
> We have a consumer which needs to stop/restart consuming messages.  I
> have implemented this by calling cms::Session:stop() and
> cms::Session::start() [& recover].  Up to now this has worked OK but
> we have seen a case where the stop() method hangs forever.
>
> The stack trace is:
> #0 0x000000397bc0aee9 in pthread_cond_wait@@GLIBC_2.3.2 ()
>     from /lib64/libpthread.so.0
> #1 0x00002ac9764699db in
> decaf::internal::util::concurrent::PlatformThread::interruptibleWaitOnCondition
> (condition=0xb5c8670, mutex=0xb664c50, complete=...)
>      at decaf/internal/util/concurrent/unix/PlatformThread.cpp:210
> #2 0x00002ac976468886 in
> decaf::internal::util::concurrent::Threading::join (
>      thread=0xb669930, mills=0, nanos=0)
>      at decaf/internal/util/concurrent/Threading.cpp:1171
> #3 0x00002ac9762e0dc3 in
> activemq::threads::DedicatedTaskRunner::shutdown (
>      this=0xb665b70) at activemq/threads/DedicatedTaskRunner.cpp:111
> #4 0x00002ac9761977fd in activemq::core::ActiveMQSessionExecutor::stop
> (
>      this=0x2aaaac022020) at
> activemq/core/ActiveMQSessionExecutor.cpp:140
> #5 0x00002ac97618ccbc in activemq::core::ActiveMQSession::stop (
>      this=<value optimized out>) at
> activemq/core/ActiveMQSession.cpp:255
>
> Any ideas?
>
>
You need to look into getting a back trace on all the threads that are
active to see what is holding the lock that's preventing the executor
from shutting down.

--
Tim Bish
Sr Software Engineer | RedHat Inc.
[hidden email] | www.fusesource.com | www.redhat.com
skype: tabish121 | twitter: @tabish121
blog: http://timbish.blogspot.com/