1. Qpid
  2. QPID-2045

crash when destroying a federation link with a dynamic bridge


    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 0.6
    • Component/s: C++ Broker
    • Labels:
    • Environment:

      fedora core 11


      While experimenting with the Federation tests, I managed to cause a crash in the broker. My modified test creates two bridges, but only calls "bridge.close()" on one of the bridges. This results in a broker crash. I will attach my test shortly. I am running the latest trunk as of today (8/11/2009). Thanks,


      pure virtual method called
      terminate called without an active exception

      Program received signal SIGABRT, Aborted.
      [Switching to Thread 0x7ffff5001910 (LWP 8354)]
      0x00007ffff65032f5 in raise () from /lib64/libc.so.6
      Missing separate debuginfos, use: debuginfo-install boost-1.37.0-6.fc11.x86_64 cyrus-sasl-lib-2.1.22-22.fc11.x86_64 e2fsprogs-libs-1.41.4-12.fc11.x86_64 glibc-2.10.1-4.x86_64 libgcc-4.4.0-4.x86_64 libstdc++-4.4.0-4.x86_64 nss-softokn-freebl-
      (gdb) where
      warning: (Internal error: pc 0x7ffff76e55de in read in psymtab, but not in symtab.)

      warning: (Internal error: pc 0x7ffff76e55de in read in psymtab, but not in symtab.)

      warning: (Internal error: pc 0x7ffff76e5590 in read in psymtab, but not in symtab.)

      #0 0x00007ffff65032f5 in raise () from /lib64/libc.so.6
      #1 0x00007ffff6504b20 in abort () from /lib64/libc.so.6
      #2 0x0000003d972c3e15 in _gnu_cxx::_verbose_terminate_handler() () from /usr/lib64/libstdc++.so.6
      #3 0x0000003d972c2236 in ?? () from /usr/lib64/libstdc++.so.6
      #4 0x0000003d972c2263 in std::terminate() () from /usr/lib64/libstdc++.so.6
      #5 0x0000003d972c2b3f in __cxa_pure_virtual () from /usr/lib64/libstdc++.so.6
      #6 0x00007ffff7abd565 in qpid::broker::Exchange::propagateFedOp (this=0x7ffff0034620, routingKey="ft-key.one.#", tags="", op="U", origin="") at qpid/broker/Exchange.cpp:237
      #7 0x00007ffff7b34975 in qpid::broker::TopicExchange::unbind (this=<value optimized out>, queue=<value optimized out>, constRoutingKey=<value optimized out>) at qpid/broker/TopicExchange.cpp:267
      #8 0x00007ffff7af6911 in qpid::broker::QueueBindings::unbind (this=0x7ffff0040058, exchanges=<value optimized out>, queue={px = 0x7ffff003fe10, pn = {pi_ = 0x7ffff003b370}}) at qpid/broker/QueueBindings.cpp:39
      #9 0x00007ffff7aed1be in qpid::broker::Queue::unbind (this=<value optimized out>, exchanges=@0x20a2, shared_ref=<value optimized out>) at qpid/broker/Queue.cpp:849
      #10 0x00007ffff7aed390 in qpid::broker::Queue::tryAutoDelete (broker=@0x629bb0, queue={px = 0x7ffff003fe10, pn = {pi_ = 0x7ffff003b370}}) at qpid/broker/Queue.cpp:927
      #11 0x00007ffff7b0e728 in qpid::broker::SemanticState::cancel (this=<value optimized out>, c=<value optimized out>) at qpid/broker/SemanticState.cpp:342
      #12 0x00007ffff7b12726 in qpid::broker::SemanticState::~SemanticState (this=0x7ffff00340c8, __in_chrg=<value optimized out>) at qpid/broker/SemanticState.cpp:73
      #13 0x00007ffff7b2f858 in qpid::broker::SessionState::~SessionState (this=0x7ffff0033ef0, __in_chrg=<value optimized out>) at qpid/broker/SessionState.cpp:96
      #14 0x00007ffff7b2825a in ~auto_ptr (this=<value optimized out>, __in_chrg=<value optimized out>) at /usr/lib/gcc/x86_64-redhat-linux/4.4.0/../../../../include/c++/4.4.0/backward/auto_ptr.h:168
      #15 qpid::broker::SessionHandler::handleDetach (this=<value optimized out>, __in_chrg=<value optimized out>) at qpid/broker/SessionHandler.cpp:70
      #16 0x00007ffff76e478a in qpid::amqp_0_10::SessionHandler::detach (this=0x7ffff0000b40, name="test-session") at qpid/amqp_0_10/SessionHandler.cpp:176
      #17 0x00007ffff76a5e33 in qpid::framing::SessionDetachBody::invoke<qpid::framing::AMQP_AllOperations::SessionHandler> (invocable=<value optimized out>, this=<value optimized out>) at ../include/qpid/framing/SessionDetachBody.h:63
      #18 qpid::framing::AMQP_AllOperations::SessionHandler::Invoker::visit (invocable=<value optimized out>, this=<value optimized out>) at qpid/framing/AllInvoker.cpp:744
      #19 0x00007ffff76e55df in qpid::framing::invoke<qpid::amqp_0_10::SessionHandler> (target=<value optimized out>, body=@0x6) at ./qpid/framing/Invoker.h:67
      #20 0x00007ffff76e1765 in qpid::amqp_0_10::SessionHandler::invoke (this=0x0, m=@0x6) at qpid/amqp_0_10/SessionHandler.cpp:72
      #21 0x00007ffff76e2c00 in qpid::amqp_0_10::SessionHandler::handleIn (this=0x7ffff0000b40, f=@0x7ffff50004d0) at qpid/amqp_0_10/SessionHandler.cpp:82
      #22 0x00007ffff7a9ab23 in qpid::framing::Handler<qpid::framing::AMQFrame&>::operator() (t=<value optimized out>, this=<value optimized out>) at ./qpid/framing/Handler.h:42
      #23 qpid::broker::Connection::received (t=<value optimized out>, this=<value optimized out>) at qpid/broker/Connection.cpp:136
      #24 0x00007ffff7a7e8e8 in qpid::amqp_0_10::Connection::decode (this=0x7ffff00012a0, buffer=<value optimized out>, size=<value optimized out>) at qpid/amqp_0_10/Connection.cpp:58
      #25 0x00007ffff770c0b4 in qpid::sys::AsynchIOHandler::readbuff (this=0x7ffff00356d0, buff=0x7ffff0043530) at qpid/sys/AsynchIOHandler.cpp:113
      #26 0x00007ffff7657c44 in boost::function2<bool, qpid::sys::AsynchIO&, qpid::sys::AsynchIOBufferBase*>::operator() (this=<value optimized out>, a0=@0x20a2, a1=0x6) at /usr/include/boost/function/function_template.hpp:989
      #27 0x00007ffff7655e29 in qpid::sys::posix::AsynchIO::readable (this=0x7ffff0035d60, h=<value optimized out>) at qpid/sys/posix/AsynchIO.cpp:452
      #28 0x00007ffff7712b74 in boost::function1<void, qpid::sys::DispatchHandle&>::operator() (this=<value optimized out>, a0=@0x20a2) at /usr/include/boost/function/function_template.hpp:989
      #29 0x00007ffff770f8ac in qpid::sys::DispatchHandle::processEvent (this=0x7ffff0035d68, type=qpid::sys::Poller::READABLE) at qpid/sys/DispatchHandle.cpp:278
      #30 0x00007ffff766316a in qpid::sys::Poller::Event::process (this=<value optimized out>) at ./qpid/sys/Poller.h:123
      #31 qpid::sys::Poller::run (this=<value optimized out>) at qpid/sys/epoll/EpollPoller.cpp:476
      #32 0x00007ffff7659baa in qpid::sys::(anonymous namespace)::runRunnable (p=0x209e) at qpid/sys/posix/Thread.cpp:35
      #33 0x00007ffff62ba86a in start_thread () from /lib64/libpthread.so.0
      #34 0x00007ffff65ae39d in clone () from /lib64/libc.so.6
      #35 0x0000000000000000 in ?? ()

      1. federation.patch
        4 kB
        Ken Giusti
      2. QPID-2045_fix.patch
        0.7 kB
        Ken Giusti
      3. QPID-2045_test.patch
        0.8 kB
        Ken Giusti
      4. QPID-2045.diff
        0.7 kB
        Ken Giusti


        Ken Giusti created issue -
        Ken Giusti made changes -
        Field Original Value New Value
        Attachment federation.patch [ 12416243 ]
        Ted Ross made changes -
        Assignee Ted Ross [ tedross ]
        Ken Giusti made changes -
        Attachment QPID-2045.diff [ 12416481 ]
        Ken Giusti made changes -
        Attachment QPID-2045_fix.patch [ 12418433 ]
        Attachment QPID-2045_test.patch [ 12418434 ]
        Ted Ross made changes -
        Status Open [ 1 ] Resolved [ 5 ]
        Fix Version/s 0.6 [ 12313728 ]
        Resolution Fixed [ 1 ]
        Ken Giusti made changes -
        Status Resolved [ 5 ] Closed [ 6 ]


          • Assignee:
            Ted Ross
            Ken Giusti
          • Votes:
            0 Vote for this issue
            0 Start watching this issue


            • Created: