Uploaded image for project: 'ActiveMQ C++ Client'
  1. ActiveMQ C++ Client
  2. AMQCPP-354

unexpected exception in TransactionSynhcronization::beforeEnd

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 3.2.4
    • 3.2.6
    • None
    • None
    • ActiveMQ 5.4.2
      ActiveMQ-CPP 3.2.4
      Ubuntu 10.04
      JRE 1.6.0_20-b02

    Description

      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)

      Attachments

        1. activemqTest.tgz
          5 kB
          Henrique Magarotto

        Activity

          People

            tabish Timothy A. Bish
            hmagarotto Henrique Magarotto
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: