Qpid
  1. Qpid
  2. QPID-3648

On shutdown, broker can crash if v1 QMF agents are currently attached.

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Trivial Trivial
    • Resolution: Fixed
    • Affects Version/s: 0.10, 0.12, 0.14
    • Fix Version/s: 0.15
    • Component/s: C++ Broker
    • Labels:
      None

      Description

      Incorrect cleanup of remote agent objects may lead to a crash when the broker is shut down.

      #0 0x006b0b6c in memcpy () from /lib/libc.so.6
      #1 0x00423d04 in std::basic_string<char, std::char_traits<char>,
      std::allocator<char> >::_Rep::_M_clone(std::allocator<char> const&, unsigned
      int) () from /usr/lib/libstdc++.so.6
      #2 0x00424667 in std::basic_string<char, std::char_traits<char>,
      std::allocator<char> >::basic_string(std::basic_string<char,
      std::char_traits<char>, std::allocator<char> > const&) ()
      from /usr/lib/libstdc++.so.6
      #3 0x0565ce5f in ObjectId (this=0x9807498, __in_chrg=<value optimized out>)
      at ../include/qpid/management/ManagementObject.h:51
      #4 getObjectId (this=0x9807498, __in_chrg=<value optimized out>)
      at ../include/qpid/management/ManagementObject.h:199
      #5 qpid::management::ManagementAgent::RemoteAgent::~RemoteAgent
      (this=0x9807498,
      __in_chrg=<value optimized out>) at qpid/management/ManagementAgent.cpp:113
      #6 0x056644e8 in
      checked_delete<qpid::management::ManagementAgent::RemoteAgent> (
      this=0x9806320) at /usr/include/boost/checked_delete.hpp:34
      #7
      boost::detail::sp_counted_impl_p<qpid::management::ManagementAgent::RemoteAgent>::dispose
      (
      this=0x9806320) at /usr/include/boost/detail/sp_counted_impl.hpp:76
      #8 0x05664a18 in ~shared_count (this=0x98075c8, __in_chrg=<value optimized
      out>)
      at /usr/include/boost/detail/sp_counted_base_gcc_x86.hpp:145
      #9 ~shared_ptr (this=0x98075c8, __in_chrg=<value optimized out>)
      at /usr/include/boost/shared_ptr.hpp:106
      #10 std::pair<qpid::management::ObjectId const,
      boost::shared_ptr<qpid::management::ManagementAgent::RemoteAgent> >::~pair
      (this=0x98075c8, __in_chrg=<value optimized out>)
      at /usr/include/c++/4.1.2/bits/stl_pair.h:69
      #11 0x05656ed4 in _M_erase (this=0xb7542008, __in_chrg=<value optimized out>)
      at /usr/include/c++/4.1.2/ext/new_allocator.h:107
      #12 ~_Rb_tree (this=0xb7542008, __in_chrg=<value optimized out>)
      at /usr/include/c++/4.1.2/bits/stl_tree.h:578
      #13 ~map (this=0xb7542008, __in_chrg=<value optimized out>)
      at /usr/include/c++/4.1.2/bits/stl_map.h:93
      --Type <return> to continue, or q <return> to quit--
      #14 qpid::management::ManagementAgent::~ManagementAgent (this=0xb7542008,
      __in_chrg=<value optimized out>) at qpid/management/ManagementAgent.cpp:158
      #15 0x05512552 in ~auto_ptr (this=0x970b708, __in_chrg=<value optimized out>)
      at /usr/include/c++/4.1.2/memory:259
      #16 qpid::broker::Broker::~Broker (this=0x970b708, __in_chrg=<value optimized
      out>)
      at qpid/broker/Broker.cpp:405
      #17 0x0550b505 in qpid::RefCounted::released (this=0xa3b7e008) at
      qpid/RefCounted.h:48
      #18 0x05540630 in qpid::broker::Daemon::fork (this=0xbf8a5498) at
      qpid/broker/Daemon.cpp:91
      #19 0x0804e12d in QpiddBroker::execute (this=0xbf8a5725, options=0x9704520)
      at posix/QpiddBroker.cpp:179
      #20 0x0804c811 in main (argc=4, argv=0xbf8a57d4) at qpidd.cpp:80
      (gdb

      1. qpid-3648.patch
        0.7 kB
        Ken Giusti

        Activity

        Hide
        Ken Giusti added a comment -

        proposed fix.

        Show
        Ken Giusti added a comment - proposed fix.

          People

          • Assignee:
            Ken Giusti
            Reporter:
            Ken Giusti
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development