[
https://issues.apache.org/jira/browse/AMQCPP-354?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Timothy Bish resolved AMQCPP-354.
---------------------------------
Resolution: Fixed
Fix Version/s: 3.2.6
Fixed in the 3.2.x fixes branch. Non-issue in trunk as exception
specifications are removed there.
> unexpected exception in TransactionSynhcronization::beforeEnd
> -------------------------------------------------------------
>
> Key: AMQCPP-354
> URL: https://issues.apache.org/jira/browse/AMQCPP-354
> 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.2.6
>
> Attachments: activemqTest.tgz
>
>
> An unexpected exception is thrown if broker is stopped while consumer is in
> transaction.
> I get the following message:
> terminate called after throwing an instance of 'cms::CMSException'
> what(): Failover timeout of 1000 ms reached.
> Aborted (core dumped)
> core backtrace:
> #0 0x001ef422 in __kernel_vsyscall ()
> #1 0x00c5a651 in *__GI_raise (sig=6) at
> ../nptl/sysdeps/unix/sysv/linux/raise.c:64
> #2 0x00c5da82 in *__GI_abort () at abort.c:92
> #3 0x00bf952f in __gnu_cxx::__verbose_terminate_handler() () from
> /usr/lib/libstdc++.so.6
> #4 0x00bf7465 in ?? () from /usr/lib/libstdc++.so.6
> #5 0x00bf74a2 in std::terminate() () from /usr/lib/libstdc++.so.6
> #6 0x00bf74c5 in ?? () from /usr/lib/libstdc++.so.6
> #7 0x00bf6915 in __cxa_call_unexpected () from /usr/lib/libstdc++.so.6
> #8 0x0052f8ae in activemq::core::TransactionSynhcronization::beforeEnd
> (this=0x93ac548) at activemq/core/ActiveMQConsumer.cpp:84
> #9 0x00550588 in activemq::core::ActiveMQTransactionContext::beforeEnd
> (this=0x93b3e48) at activemq/core/ActiveMQTransactionContext.cpp:192
> #10 0x00550d63 in activemq::core::ActiveMQTransactionContext::commit
> (this=0x93b3e48) at activemq/core/ActiveMQTransactionContext.cpp:127
> #11 0x0053e460 in activemq::core::ActiveMQSession::commit (this=0x93b3c10) at
> activemq/core/ActiveMQSession.cpp:189
> #12 0x0042c1a0 in activemq::cmsutil::PooledSession::commit (this=0x93b3fd8)
> at activemq/cmsutil/PooledSession.h:87
> #13 0x0804c0fb in Consumer::onMessage (this=0x93a8c30, message=0x93b49b0) at
> main.cpp:455
> #14 0x0804bdc8 in Consumer::consumeLoop (this=0x93a8c30) at main.cpp:415
> #15 0x0804bb56 in Consumer::run (this=0x93a8c30) at main.cpp:381
> #16 0x00823cf1 in decaf::lang::ThreadProperties::runCallback
> (properties=0x93abff0) at decaf/lang/Thread.cpp:135
> #17 0x00822847 in threadWorker (arg=0x93abff0) at decaf/lang/Thread.cpp:188
> #18 0x0015a96e in start_thread (arg=0xb6f8bb70) at pthread_create.c:300
> #19 0x00cfda4e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130
> Exception specification for method
> 'activemq::core::TransactionSynhcronization::beforeEnd' says: 'throw(
> exceptions::ActiveMQException )' but 'ActiveMQConsumer::acknowledge' throws
> 'cms::CMSException', so 'std::unexpected' is called and 'abort' occurs.
> (http://www.linuxprogrammingblog.com/cpp-exception-specifications-are-evil)
--
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira