activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Henrique Magarotto (JIRA)" <j...@apache.org>
Subject [jira] Updated: (AMQCPP-354) unexpected exception in TransactionSynhcronization::beforeEnd
Date Tue, 01 Mar 2011 23:50:36 GMT

     [ https://issues.apache.org/jira/browse/AMQCPP-354?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Henrique Magarotto updated AMQCPP-354:
--------------------------------------

    Attachment: activemqTest.tgz

How to reproduce:
1. Start ActiveMQ
2. Send a massage './activemqTest -p1 -n1'
3. Run consumer './activemqTest -c1 -d10000'
4. Stop activemq when 'Starting delay...' message appears.
5. After activemq is down and delay is finish, consumer try commit (message 'Try commit')
and unexpected exception occurs.

Test code attached, based on ActiveMQ-CPP sample 'activemq-cpp-library-3.2.4/src/examples/main.cpp':


> 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
>         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

        

Mime
View raw message