Comment 1 for bug 1466825

Revision history for this message
Prakash Bailkeri (prakashmb) wrote :

Taking nodei38-1 as XmppClient(It is a ToR agent)
From the stats(Session stats and ifmap stats), it is clear that config is not set to XmppClient. The Subscribe message is rxed from the client.(It is visible in the trace and also in stats)

gdb) p *(IFMapClient *) 0x7f9557eacde0
$17 = (IFMapXmppChannel::IFMapSender) {
  <IFMapClient> = {
    _vptr.IFMapClient = 0xae3cd0 <vtable for IFMapXmppChannel::IFMapSender+16>,
    static kIndexInvalid = -1,
    index_ = 4,
    exporter_ = 0x1449f30,
    msgs_sent_ = 0,
    msgs_blocked_ = 0,
    bytes_sent_ = 0,
    nodes_sent_ = 0,
    links_sent_ = 0,
    send_is_blocked_ = false,
    vm_map_ = std::map with 0 elements,
    name_ = "nodei36:192.168.1.6"
  },
  members of IFMapXmppChannel::IFMapSender:
  parent_ = 0x7f94416ac9f0,
  hostname_ = "nodei38-1",
  identifier_ = "default-global-system-config:nodei38-1"
}
(gdb) p *(IFMapXmppChannel*) 0x7f94416ac9f0
$18 = (IFMapXmppChannel) {
  _vptr.IFMapXmppChannel = 0xae3d30 <vtable for IFMapXmppChannel+16>,
  peer_id_ = xmps::CONFIG,
  channel_ = 0x1f2df10,
  ifmap_server_ = 0x7fff29159400,
  ifmap_channel_manager_ = 0x7fff291591a0,
  ifmap_client_ = 0x7f9557eacde0,
  client_added_ = true,
  channel_name_ = "nodei36:192.168.1.6"
}

(gdb) p *(XmppChannel *) 0x1f2df10
$19 = (XmppChannelMux) {
  <XmppChannel> = {
    _vptr.XmppChannel = 0xb6d9f0 <vtable for XmppChannelMux+16>
  },
  members of XmppChannelMux:
  map_ = std::map with 0 elements,
  rxmap_ = std::map with 2 elements = {
    [xmps::CONFIG] = {
      <boost::function2<void, XmppStanza::XmppMessage const*, xmps::PeerState>> = {
        <boost::function_base> = {
          vtable = 0xae3331 <void boost::function2<void, XmppStanza::XmppMessage const*, xmps::PeerState>::assign_to<boost::_bi::bind_t<void, boost::_mfi::mf1<void, IFMapXmppChannel, XmppStanza::XmppMessage const*>, boost::_bi::list2<boost::_bi::value<IFMapXmppChannel*>, boost::arg<1> > > >(boost::_bi::bind_t<void, boost::_mfi::mf1<void, IFMapXmppChannel, XmppStanza::XmppMessage const*>, boost::_bi::list2<boost::_bi::value<IFMapXmppChannel*>, boost::arg<1> > >)::stored_vtable+1>,
          functor = {
            obj_ptr = 0x11,
            type = {
              type = 0x11,
              const_qualified = false,
              volatile_qualified = false
            },
            func_ptr = 0x11,
            bound_memfunc_ptr = {
              memfunc_ptr = &virtual table offset 16,
              obj_ptr = 0x7f94416ac9f0
            },
            obj_ref = {
              obj_ptr = 0x11,
              is_const_qualified = false,
              is_volatile_qualified = false
            },
            data = 17 '\021'
          }
        },
        <std::binary_function<XmppStanza::XmppMessage const*, xmps::PeerState, void>> = {<No data fields>},
        members of boost::function2<void, XmppStanza::XmppMessage const*, xmps::PeerState>:
        static args = <optimized out>,
        static arity = <optimized out>
      }, <No data fields>},
    [xmps::BGP] = {
      <boost::function2<void, XmppStanza::XmppMessage const*, xmps::PeerState>> = {
        <boost::function_base> = {
          vtable = 0xb239d1 <void boost::function2<void, XmppStanza::XmppMessage const*, xmps::PeerState>::assign_to<boost::_bi::bind_t<void, boost::_mfi::mf1<void, BgpXmppChannel, XmppStanza::XmppMessage const*>, boost::_bi::list2<boost::_bi::value<BgpXmppChannel*>, boost::arg<1> > > >(boost::_bi::bind_t<void, boost::_mfi::mf1<void, BgpXmppChannel, XmppStanza::XmppMessage const*>, boost::_bi::list2<boost::_bi::value<BgpXmppChannel*>, boost::arg<1> > >)::stored_vtable+1>,
          functor = {
            obj_ptr = 0x19,
            type = {
              type = 0x19,
              const_qualified = false,
              volatile_qualified = false
            },
            func_ptr = 0x19,
            bound_memfunc_ptr = {
              memfunc_ptr = &virtual table offset 24,
              obj_ptr = 0x7f9441272530
            },
            obj_ref = {
              obj_ptr = 0x19,
              is_const_qualified = false,
              is_volatile_qualified = false
            },
            data = 25 '\031'
          }
        },
        <std::binary_function<XmppStanza::XmppMessage const*, xmps::PeerState, void>> = {<No data fields>},
        members of boost::function2<void, XmppStanza::XmppMessage const*, xmps::PeerState>:
        static args = <optimized out>,
        static arity = <optimized out>
      }, <No data fields>}
  },
  cb_ = {
    <boost::function1<void, boost::system::error_code const&>> = {
      <boost::function_base> = {
        vtable = 0x0,
        functor = {
          obj_ptr = 0x7f95ffffffff,
          type = {
            type = 0x7f95ffffffff,
            const_qualified = 49,
            volatile_qualified = 48
          },
          func_ptr = 0x7f95ffffffff,
          bound_memfunc_ptr = {
            memfunc_ptr = &virtual table offset 140282221821950, this adjustment 3615884932430049329,
            obj_ptr = 0x313a3834312e3731
          },
          obj_ref = {
            obj_ptr = 0x7f95ffffffff,
            is_const_qualified = 49,
            is_volatile_qualified = 48
          },
          data = -1 '\377'
        }
      },
      <std::unary_function<boost::system::error_code const&, void>> = {<No data fields>},
      members of boost::function1<void, boost::system::error_code const&>:
      static args = <optimized out>,
      static arity = <optimized out>
    }, <No data fields>},
  connection_ = 0x5286f90,
  mutex_ = {
    static is_rw_mutex = false,
    static is_recursive_mutex = false,
    static is_fair_mutex = false,
    impl = {
      __data = {
        __lock = 0,
        __count = 0,
        __owner = 0,
        __nusers = 0,
        __kind = 0,
        __spins = 0,
        __elision = 0,
        __list = {
          __prev = 0x0,
          __next = 0x0
        }
      },
      __size = '\000' <repeats 39 times>,
      __align = 0
    }
  }
}
(gdb) p *(XmppConnection *) 0x5286f90
$20 = (XmppServerConnection) {
  <XmppConnection> = {
    _vptr.XmppConnection = 0xb59650 <vtable for XmppServerConnection+16>,
    static kAuthTypeNil = 0xb1deec "NIL",
    static kAuthTypeTls = 0xb589a4 "TLS",
    server_ = 0x14752a0,
    session_ = 0x1623060,
    endpoint_ = {
      impl_ = {
        data_ = {
          base = {
            sa_family = 2,
            sa_data = "\233P\300\250\001\006\000\000\000\000\000\000\000"
          },
          v4 = {
            sin_family = 2,
            sin_port = 20635,
            sin_addr = {
              s_addr = 100772032
            },
            sin_zero = "\000\000\000\000\000\000\000"
          },
          v6 = {
            sin6_family = 2,
            sin6_port = 20635,
            sin6_flowinfo = 100772032,
            sin6_addr = {
              __in6_u = {
                __u6_addr8 = '\000' <repeats 15 times>,
                __u6_addr16 = {0, 0, 0, 0, 0, 0, 0, 0},
                __u6_addr32 = {0, 0, 0, 0}
              }
            },
            sin6_scope_id = 0
          }
        }
      }
    },
    local_endpoint_ = {
      impl_ = {
        data_ = {
          base = {
            sa_family = 2,
            sa_data = "\024\225\300\250\001\004\000\000\000\000\000\000\000"
          },
          v4 = {
            sin_family = 2,
            sin_port = 38164,
            sin_addr = {
              s_addr = 67217600
            },
            sin_zero = "\000\000\000\000\000\000\000"
          },
          v6 = {
            sin6_family = 2,
            sin6_port = 38164,
            sin6_flowinfo = 67217600,
            sin6_addr = {
              __in6_u = {
                __u6_addr8 = '\000' <repeats 15 times>,
                __u6_addr16 = {0, 0, 0, 0, 0, 0, 0, 0},
                __u6_addr32 = {0, 0, 0, 0}
              }
            },
            sin6_scope_id = 0
          }
        }
      }
    },
    config_ = 0x0,
    spin_mutex_ = {
      flag = 0 '\000',
      static is_rw_mutex = false,
      static is_recursive_mutex = false,
      static is_fair_mutex = false
    },
    keepalive_timer_ = 0x52870b0,
    log_uve_ = true,
    admin_down_ = false,
    disable_read_ = false,
    from_ = "nodei36",
    to_ = "nodei38-1",
    auth_enabled_ = false,
    state_machine_ = (boost::scoped_ptr<XmppStateMachine>) 0x6659a00,
    mux_ = (boost::scoped_ptr<XmppChannelMux>) 0x1f2df10,
    last_msg_ = {
      _M_ptr = 0x0
    },
    stats_ = {{
        open = 1,
        close = 0,
        keepalive = 392,
        update = 2
      }, {
        open = 1,
        close = 0,
        keepalive = 389,
        update = 0
      }},
    error_stats_ = {
      connect_error = 0,
      session_close = 0,
      open_fail = 0,
      stream_feature_fail = 0,
      handshake_fail = 0
    }
  },
  members of XmppServerConnection:
  duplicate_ = false,
  on_work_queue_ = false,
  conn_endpoint_ = 0x7f95a4001c50,
  deleter_ = (boost::scoped_ptr<XmppServerConnection::DeleteActor>) 0x1622ce0,
  server_delete_ref_ = {
    <LifetimeRefBase> = {
      _vptr.LifetimeRefBase = 0xb59490 <vtable for LifetimeRef<XmppServerConnection>+16>,
      ref_ = {
        node_ = <boost::intrusive_hook> next = 0x192e770 prev = 0x665a080,
        self_ = 0x5287078,
        ptr_ = 0x14767e0
      }
    },
    members of LifetimeRef<XmppServerConnection>:
    ptr_ = 0x5286f90
  }
}

(gdb) p *(TcpSession *)0x1623060
$21 = (XmppSession) {
  stats_ = std::vector of length 5, capacity 5 = {{
      first = 0,
      second = 0
    }, {
      first = 1,
      second = 173
    }, {
      first = 0,
      second = 0
    }, {
      first = 2,
      second = 566
    }, {
      first = 392,
      second = 782
    }},
..
}