Comment 2 for bug 1430091

Revision history for this message
Prakash Bailkeri (prakashmb) wrote : Re: [2.1-Build 39] control-node crashed and collector got initializing while deleting logical interfaces

1. core core.contrail-contro.20833.system001.1425942501 has following BT.

#0 0x00007ff6fe578bb9 in raise () from /lib/x86_64-linux-gnu/libc.so.6
#1 0x00007ff6fe57bfc8 in abort () from /lib/x86_64-linux-gnu/libc.so.6
#2 0x00007ff6fe571a76 in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#3 0x00007ff6fe571b22 in __assert_fail () from /lib/x86_64-linux-gnu/libc.so.6
#4 0x000000000045a966 in IFMapExporter::StateUpdateOnDequeue (this=0x29b1fc0, update=update@entry=0x7ff6dd94a8b0, dequeue_set=..., is_delete=<optimized out>)
    at controller/src/ifmap/ifmap_exporter.cc:548
#5 0x0000000000488fd2 in IFMapUpdateSender::ProcessUpdate (this=this@entry=0x29b2010, update=update@entry=0x7ff6dd94a8b0, base_send_set=...) at controller/src/ifmap/ifmap_update_sender.cc:225
#6 0x0000000000489514 in IFMapUpdateSender::Send (this=0x29b2010, imarker=<optimized out>) at controller/src/ifmap/ifmap_update_sender.cc:184
#7 0x0000000000489c1b in IFMapUpdateSender::SendTask::Run (this=0x7ff69bdf59b0) at controller/src/ifmap/ifmap_update_sender.cc:41
#8 0x0000000000a5e490 in TaskImpl::execute (this=0x7ff6f7dbfb40) at controller/src/base/task.cc:232
#9 0x00007ff6ff350b3a in ?? () from /usr/lib/libtbb.so.2
#10 0x00007ff6ff34c816 in ?? () from /usr/lib/libtbb.so.2
#11 0x00007ff6ff34bf4b in ?? () from /usr/lib/libtbb.so.2
#12 0x00007ff6ff3480ff in ?? () from /usr/lib/libtbb.so.2
#13 0x00007ff6ff3482f9 in ?? () from /usr/lib/libtbb.so.2
#14 0x00007ff6ff56c182 in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
#15 0x00007ff6fe63cfbd in clone () from /lib/x86_64-linux-gnu/libc.so.6

(gdb) fr 4
#4 0x000000000045a966 in IFMapExporter::StateUpdateOnDequeue (this=0x29b1fc0, update=update@entry=0x7ff6dd94a8b0, dequeue_set=..., is_delete=<optimized out>)
    at controller/src/ifmap/ifmap_exporter.cc:548
548 in controller/src/ifmap/ifmap_exporter.cc
(gdb) p db_entry
$10 = (IFMapNode *) 0x7ff6ea755ff0
(gdb) set pagination off
(gdb) p *db_entry
$11 = (IFMapNode) {
  <DBGraphVertex> = {
    <DBEntry> = {
      <DBEntryBase> = {
        _vptr.DBEntryBase = 0xae6bd0 <vtable for IFMapNode+16>,
        chg_list_ = {
          <boost::intrusive::detail::generic_hook<boost::intrusive::get_list_node_algo<void*>, boost::intrusive::member_tag, (boost::intrusive::link_mode_type)1, 0>> = {
            <boost::intrusive::detail::no_default_definer> = {<No data fields>},
            <boost::intrusive::list_node<void*>> = {
              next_ = 0x0,
              prev_ = 0x0
            }, <No data fields>}, <No data fields>},
        tpart_ = 0x29c2ee0,
        state_ = {
          _M_t = {
            _M_impl = {
              <std::allocator<std::_Rb_tree_node<std::pair<int const, DBState*> > >> = {
                <__gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<int const, DBState*> > >> = {<No data fields>}, <No data fields>},
              members of std::_Rb_tree<int, std::pair<int const, DBState*>, std::_Select1st<std::pair<int const, DBState*> >, std::less<int>, std::allocator<std::pair<int const, DBState*> > >::_Rb_tree_impl<std::less<int>, false>:
              _M_key_compare = {
                <std::binary_function<int, int, bool>> = {<No data fields>}, <No data fields>},
              _M_header = {
                _M_color = std::_S_red,
                _M_parent = 0x7ff6ed792d80,
                _M_left = 0x7ff6ed792d80,
                _M_right = 0x7ff6ed792d80
              },
              _M_node_count = 1
            }
          }
        },
        flags = 2 '\002',
        onremoveq_ = {
          <tbb::internal::atomic_impl<bool>> = {
            my_storage = {
              my_value = false
            }
          }, <No data fields>},
        last_change_at_ = 1425942500841580
      },
      members of DBEntry:
      node_ = {
        <boost::intrusive::detail::generic_hook<boost::intrusive::get_set_node_algo<void*, false>, boost::intrusive::member_tag, (boost::intrusive::link_mode_type)1, 0>> = {
          <boost::intrusive::detail::no_default_definer> = {<No data fields>},
          <boost::intrusive::rbtree_node<void*>> = {
            parent_ = 0x7ff6dcd35e80,
            left_ = 0x7ff6ea732b20,
            right_ = 0x7ff6e01cd620,
            color_ = boost::intrusive::rbtree_node<void*>::black_t
          }, <No data fields>}, <No data fields>}
    },
    members of DBGraphVertex:
    vertex_id_ = 0x0
  },
  members of IFMapNode:
  table_ = 0x29c2e40,
  name_ = {
    static npos = <optimized out>,
    _M_dataplus = {
      <std::allocator<char>> = {
        <__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},
      members of std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Alloc_hider:
      _M_p = 0x7ff6a324c598 "default-global-system-config:fuda:ge-0/0/0:ge-0/0/0.2186"
    }
  },
  list_ = {
    <boost::intrusive::list_impl<boost::intrusive::listopt<boost::intrusive::detail::member_hook_traits<IFMapObject, boost::intrusive::list_member_hook<boost::intrusive::none, boost::intrusive::none, boost::intrusive::none>, &IFMapObject::node_>, unsigned long, true> >> = {
      <boost::intrusive::detail::clear_on_destructor_base<boost::intrusive::list_impl<boost::intrusive::listopt<boost::intrusive::detail::member_hook_traits<IFMapObject, boost::intrusive::list_member_hook<boost::intrusive::none, boost::intrusive::none, boost::intrusive::none>, &IFMapObject::node_>, unsigned long, true> > >> = {<No data fields>},
      members of boost::intrusive::list_impl<boost::intrusive::listopt<boost::intrusive::detail::member_hook_traits<IFMapObject, boost::intrusive::list_member_hook<boost::intrusive::none, boost::intrusive::none, boost::intrusive::none>, &IFMapObject::node_>, unsigned long, true> >:
      static external_value_traits = false,
      static constant_time_size = true,
      static stateful_value_traits = <optimized out>,
      data_ = {
        <boost::intrusive::detail::member_hook_traits<IFMapObject, boost::intrusive::list_member_hook<boost::intrusive::none, boost::intrusive::none, boost::intrusive::none>, &IFMapObject::node_>> = {
          static link_mode = <optimized out>
        },
        members of boost::intrusive::list_impl<boost::intrusive::listopt<boost::intrusive::detail::member_hook_traits<IFMapObject, boost::intrusive::list_member_hook<boost::intrusive::none, boost::intrusive::none, boost::intrusive::none>, &IFMapObject::node_>, unsigned long, true> >::data_t:
        root_plus_size_ = {
          <boost::intrusive::detail::size_holder<true, unsigned long>> = {
            static constant_time_size = <optimized out>,
            size_ = 0
          },
          members of boost::intrusive::list_impl<boost::intrusive::listopt<boost::intrusive::detail::member_hook_traits<IFMapObject, boost::intrusive::list_member_hook<boost::intrusive::none, boost::intrusive::none, boost::intrusive::none>, &IFMapObject::node_>, unsigned long, true> >::root_plus_size:
          root_ = {
            next_ = 0x7ff6ea756090,
            prev_ = 0x7ff6ea756090
          }
        }
      }
    }, <No data fields>}
}

(gdb) p table
$12 = (autogen::DBTable_Server_LogicalInterface *) 0x29c2e40
(gdb) p *table
$13 = (autogen::DBTable_Server_LogicalInterface) {
  <IFMapServerTable> = {
    <IFMapTable> = {
      <DBTable> = {
        <DBTableBase> = {
          _vptr.DBTableBase = 0xae5a10 <vtable for autogen::DBTable_Server_LogicalInterface+16>,
          static kInvalidId = -1,
          db_ = 0x7fffbfc38360,
          name_ = {
            static npos = <optimized out>,
            _M_dataplus = {
              <std::allocator<char>> = {
                <__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},
              members of std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Alloc_hider:
              _M_p = 0x29c2e18 "__ifmap__.logical_interface.0"
            }
          },
          info_ = {
            _M_ptr = 0x29c2e90
          }
        },
        members of DBTable:
        partitions_ = {
          <std::_Vector_base<DBTablePartition*, std::allocator<DBTablePartition*> >> = {
            _M_impl = {
              <std::allocator<DBTablePartition*>> = {
                <__gnu_cxx::new_allocator<DBTablePartition*>> = {<No data fields>}, <No data fields>},
              members of std::_Vector_base<DBTablePartition*, std::allocator<DBTablePartition*> >::_Vector_impl:
              _M_start = 0x29c2f90,
              _M_finish = 0x29c2f98,
              _M_end_of_storage = 0x29c2f98
            }
          }, <No data fields>},
        walk_id_ = -1
      },
      members of IFMapTable:
      static kPartitionCount = 1
    },
    members of IFMapServerTable:
    graph_ = 0x7fffbfc38300
  }, <No data fields>}
(gdb)