[ 
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

        

Reply via email to