activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Teemu Torma (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (AMQCPP-355) Transactional consumer using MessageListener freezes on commit
Date Thu, 14 Apr 2011 13:20:06 GMT

    [ https://issues.apache.org/jira/browse/AMQCPP-355?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13019822#comment-13019822
] 

Teemu Torma commented on AMQCPP-355:
------------------------------------

I tried to test this on 3.3.0, and indeed the deadlock does not happen anymore, but the consumer
does receive anything after the broker is restarted (the broker shows there is a consumer
though) and the message that was being commited whilst the broker was down was not consumed
from the queue.

> Transactional consumer using MessageListener freezes on commit
> --------------------------------------------------------------
>
>                 Key: AMQCPP-355
>                 URL: https://issues.apache.org/jira/browse/AMQCPP-355
>             Project: ActiveMQ C++ Client
>          Issue Type: Bug
>    Affects Versions: 3.2.4
>         Environment: ActiveMQ 5.4.2
> ActiveMQ-CPP 3.2.4
> Ubuntu 10.04
> JRE 1.6.0_20-b02
>            Reporter: Henrique Magarotto
>            Assignee: Timothy Bish
>             Fix For: 3.3.0
>
>
> How to reproduce (using test code attached in AMQCPP-354 issue):
> 1- Start ActiveMQ
> 2- Start 'MessageListener' consumer './activemqTest -l -c1 -d10000'
> 3- Send one message './activemqTest -p1'
> 4- Wait consumer 'Starting delay'
> 5- Stop ActiveMQ
> 6- Consumer will try commit
> 8- Freezes
> BACKTRACE:
> Thread 1:
> #0  0x00eed422 in __kernel_vsyscall ()
> #1  0x00468b5d in pthread_join (threadid=3061414768, thread_return=0xbf951e8c) at pthread_join.c:89
> #2  0x00be23c0 in decaf::lang::Thread::join (this=0x9551574) at decaf/lang/Thread.cpp:421
> #3  0x0804c9f1 in AppTest::joinEndPoins (this=0xbf951f14) at main.cpp:586
> #4  0x0804c678 in AppTest::run (this=0xbf951f14) at main.cpp:555
> #5  0x0804a33c in main (argc=4, argv=0xbf952034) at main.cpp:633
> Thread 2:
> #0  0x00eed422 in __kernel_vsyscall ()
> #1  0x0046c015 in pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_wait.S:122
> #2  0x003259dd in __pthread_cond_wait (cond=0x9547e38, mutex=0x9547e08) at forward.c:139
> #3  0x00bb06a9 in decaf::internal::util::concurrent::ConditionImpl::wait (condition=0x9547e38)
at decaf/internal/util/concurrent/unix/ConditionImpl.cpp:94
> #4  0x00c21353 in decaf::util::concurrent::Mutex::wait (this=0x9547d6c) at decaf/util/concurrent/Mutex.cpp:95
> #5  0x0094c9c5 in activemq::threads::CompositeTaskRunner::run (this=0x9547d48) at activemq/threads/CompositeTaskRunner.cpp:118
> #6  0x00be3cf1 in decaf::lang::ThreadProperties::runCallback (properties=0x9547e90) at
decaf/lang/Thread.cpp:135
> #7  0x00be2847 in threadWorker (arg=0x9547e90) at decaf/lang/Thread.cpp:188
> #8  0x0046796e in start_thread (arg=0xb7799b70) at pthread_create.c:300
> #9  0x00318a4e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130
> Thread 3:
> #0  0x00eed422 in __kernel_vsyscall ()
> #1  0x0046eaf9 in __lll_lock_wait () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/lowlevellock.S:142
> #2  0x0046a13b in _L_lock_748 () from /lib/tls/i686/cmov/libpthread.so.0
> #3  0x00469f61 in __pthread_mutex_lock (mutex=0x95523a8) at pthread_mutex_lock.c:61
> #4  0x00325ba6 in pthread_mutex_lock (mutex=0x95523a8) at forward.c:182
> #5  0x00bb0aa1 in decaf::internal::util::concurrent::MutexImpl::lock (handle=0x95523a8)
at decaf/internal/util/concurrent/unix/MutexImpl.cpp:71
> #6  0x00c21412 in decaf::util::concurrent::Mutex::lock (this=0x95522bc) at decaf/util/concurrent/Mutex.cpp:75
> #7  0x00915770 in decaf::util::StlQueue<decaf::lang::Pointer<activemq::commands::MessageDispatch,
decaf::util::concurrent::atomic::AtomicRefCounter> >::lock (this=0x95522a8)
>     at ./decaf/util/StlQueue.h:253
> #8  activemq::core::MessageDispatchChannel::lock (this=0x95522a8) at activemq/core/MessageDispatchChannel.h:153
> #9  0x00c20ab5 in decaf::util::concurrent::Lock::lock (this=0xb6f97fe4) at decaf/util/concurrent/Lock.cpp:54
> #10 0x00c20c08 in Lock (this=0xfffffe00, object=0x95523a8, intiallyLocked=true) at decaf/util/concurrent/Lock.cpp:32
> #11 0x008de102 in activemq::core::ActiveMQConsumer::clearMessagesInProgress (this=0x9552270)
at activemq/core/ActiveMQConsumer.cpp:1112
> #12 0x008ff15c in activemq::core::ActiveMQSession::clearMessagesInProgress (this=0x9551b90)
at activemq/core/ActiveMQSession.cpp:239
> #13 0x008c8543 in activemq::core::ActiveMQConnection::transportInterrupted (this=0x9548210)
at activemq/core/ActiveMQConnection.cpp:704
> #14 0x00953b34 in activemq::transport::TransportFilter::transportInterrupted (this=0x95481c0)
at activemq/transport/TransportFilter.cpp:67
> #15 0x009687ae in activemq::transport::failover::FailoverTransport::handleTransportFailure
(this=0x9547a38, error=...) at activemq/transport/failover/FailoverTransport.cpp:476
> #16 0x0097406c in activemq::transport::failover::FailoverTransportListener::onException
(this=0x9547878, ex=...) at activemq/transport/failover/FailoverTransportListener.cpp:97
> #17 0x00953c0b in activemq::transport::TransportFilter::fire (this=0x9549d80, ex=...)
at activemq/transport/TransportFilter.cpp:49
> #18 0x00953c64 in activemq::transport::TransportFilter::onException (this=0x9549d80,
ex=...) at activemq/transport/TransportFilter.cpp:41
> #19 0x00953c0b in activemq::transport::TransportFilter::fire (this=0x95497f0, ex=...)
at activemq/transport/TransportFilter.cpp:49
> #20 0x00953c64 in activemq::transport::TransportFilter::onException (this=0x95497f0,
ex=...) at activemq/transport/TransportFilter.cpp:41
> #21 0x00951b13 in activemq::transport::IOTransport::fire (this=0x95497a0, ex=...) at
activemq/transport/IOTransport.cpp:73
> #22 0x009523bf in activemq::transport::IOTransport::run (this=0x95497a0) at activemq/transport/IOTransport.cpp:246
> #23 0x00be3cf1 in decaf::lang::ThreadProperties::runCallback (properties=0x9549ea0) at
decaf/lang/Thread.cpp:135
> #24 0x00be2847 in threadWorker (arg=0x9549ea0) at decaf/lang/Thread.cpp:188
> #25 0x0046796e in start_thread (arg=0xb6f98b70) at pthread_create.c:300
> #26 0x00318a4e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130
> Thread 4:
> #0  0x00eed422 in __kernel_vsyscall ()
> #1  0x0046c015 in pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_wait.S:122
> #2  0x003259dd in __pthread_cond_wait (cond=0x95516c8, mutex=0x9551698) at forward.c:139
> #3  0x00bb06a9 in decaf::internal::util::concurrent::ConditionImpl::wait (condition=0x95516c8)
at decaf/internal/util/concurrent/unix/ConditionImpl.cpp:94
> #4  0x00c21353 in decaf::util::concurrent::Mutex::wait (this=0x9551584) at decaf/util/concurrent/Mutex.cpp:95
> #5  0x00c2029a in decaf::util::concurrent::CountDownLatch::await (this=0x955157c) at
decaf/util/concurrent/CountDownLatch.cpp:56
> #6  0x0804af84 in JMSEndPointThread::stopCheck (this=0x9551574, timeOut=-1) at main.cpp:226
> #7  0x0804bb46 in Consumer::run (this=0x9551570) at main.cpp:379
> #8  0x00be3cf1 in decaf::lang::ThreadProperties::runCallback (properties=0x95515b0) at
decaf/lang/Thread.cpp:135
> #9  0x00be2847 in threadWorker (arg=0x95515b0) at decaf/lang/Thread.cpp:188
> #10 0x0046796e in start_thread (arg=0xb6797b70) at pthread_create.c:300
> #11 0x00318a4e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130
> Thread 5:
> #0  0x00eed422 in __kernel_vsyscall ()
> #1  0x0046eaf9 in __lll_lock_wait () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/lowlevellock.S:142
> #2  0x0046a13b in _L_lock_748 () from /lib/tls/i686/cmov/libpthread.so.0
> #3  0x00469f61 in __pthread_mutex_lock (mutex=0x95475e0) at pthread_mutex_lock.c:61
> #4  0x00325ba6 in pthread_mutex_lock (mutex=0x95475e0) at forward.c:182
> #5  0x00bb0aa1 in decaf::internal::util::concurrent::MutexImpl::lock (handle=0x95475e0)
at decaf/internal/util/concurrent/unix/MutexImpl.cpp:71
> #6  0x00c21412 in decaf::util::concurrent::Mutex::lock (this=0x9547a88) at decaf/util/concurrent/Mutex.cpp:75
> #7  0x00c20ab5 in decaf::util::concurrent::Lock::lock (this=0xb5f95ce0) at decaf/util/concurrent/Lock.cpp:54
> #8  0x00c20c08 in Lock (this=0xfffffe00, object=0x95475e0, intiallyLocked=true) at decaf/util/concurrent/Lock.cpp:32
> #9  0x0096b8fd in activemq::transport::failover::FailoverTransport::oneway (this=0x9547a38,
command=...) at activemq/transport/failover/FailoverTransport.cpp:186
> #10 0x00957f9f in activemq::transport::correlator::ResponseCorrelator::oneway (this=0x95481c0,
command=...) at activemq/transport/correlator/ResponseCorrelator.cpp:82
> #11 0x008c13be in activemq::core::ActiveMQConnection::oneway (this=0x9548210, command=...)
at activemq/core/ActiveMQConnection.cpp:741
> #12 0x00900a4f in activemq::core::ActiveMQSession::oneway (this=0x9551b90, command=...)
at activemq/core/ActiveMQSession.cpp:903
> #13 0x008e5a1c in activemq::core::ActiveMQConsumer::acknowledge (this=0x9552270) at activemq/core/ActiveMQConsumer.cpp:860
> #14 0x008ef885 in activemq::core::TransactionSynhcronization::beforeEnd (this=0x95529e8)
at activemq/core/ActiveMQConsumer.cpp:85
> #15 0x00910588 in activemq::core::ActiveMQTransactionContext::beforeEnd (this=0x9551dc8)
at activemq/core/ActiveMQTransactionContext.cpp:192
> #16 0x00910d63 in activemq::core::ActiveMQTransactionContext::commit (this=0x9551dc8)
at activemq/core/ActiveMQTransactionContext.cpp:127
> #17 0x008fe460 in activemq::core::ActiveMQSession::commit (this=0x9551b90) at activemq/core/ActiveMQSession.cpp:189
> #18 0x007ec1a0 in activemq::cmsutil::PooledSession::commit (this=0x9551f38) at activemq/cmsutil/PooledSession.h:87
> #19 0x0804c0fb in Consumer::onMessage (this=0x9551570, message=0x9552ec0) at main.cpp:455
> #20 0x008e972f in activemq::core::ActiveMQConsumer::dispatch (this=0x9552270, dispatch=...)
at activemq/core/ActiveMQConsumer.cpp:1018
> #21 0x0090d5c3 in activemq::core::ActiveMQSessionExecutor::dispatch (this=0x9551e78,
dispatch=...) at activemq/core/ActiveMQSessionExecutor.cpp:129
> #22 0x0090d993 in activemq::core::ActiveMQSessionExecutor::iterate (this=0x9551e78) at
activemq/core/ActiveMQSessionExecutor.cpp:166
> #23 0x009507f3 in activemq::threads::DedicatedTaskRunner::run (this=0x9552550) at activemq/threads/DedicatedTaskRunner.cpp:111
> #24 0x00be3cf1 in decaf::lang::ThreadProperties::runCallback (properties=0x9551ad8) at
decaf/lang/Thread.cpp:135
> #25 0x00be2847 in threadWorker (arg=0x9551ad8) at decaf/lang/Thread.cpp:188
> #26 0x0046796e in start_thread (arg=0xb5f96b70) at pthread_create.c:300
> #27 0x00318a4e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message