Bug #3608
Updated by Alex Afanasyev over 8 years ago
NFD segfaults when receiving interests with full names. ``` (gdb) bt #0 nfd::name_tree::Entry::erasePitEntry (this=0xa142a0, pitEntry=std::shared_ptr (count 6, weak 0) 0xac63c0) at ../daemon/table/name-tree-entry.cpp:103 #1 0x0000000000534312 in nfd::Pit::erase (this=this@entry=0x891ad8, pitEntry=std::shared_ptr (count 6, weak 0) 0xac63c0) at ../daemon/table/pit.cpp:119 #2 0x00000000004ba91c in nfd::Forwarder::onInterestFinalize (this=0x891950, pitEntry=std::shared_ptr (count 6, weak 0) 0xac63c0, isSatisfied=<optimized out>, dataFreshnessPeriod=...) at ../daemon/fw/forwarder.cpp:371 #3 0x00000000004c1d8f in boost::_mfi::mf3<void, nfd::Forwarder, std::shared_ptr<nfd::pit::Entry>, bool, boost::chrono::duration<long, boost::ratio<1l, 1000l> > const&>::operator() (a3=..., a2=<optimized out>, a1=..., p=<optimized out>, this=<optimized out>) at /usr/include/boost/bind/mem_fn_template.hpp:393 #4 boost::_bi::list4<boost::_bi::value<nfd::Forwarder*>, boost::_bi::value<std::shared_ptr<nfd::pit::Entry> >, boost::_bi::value<bool>, boost::_bi::value<boost::chrono::duration<long, boost::ratio<1l, 1000l> > > >::operator()<boost::_mfi::mf3<void, nfd::Forwarder, std::shared_ptr<nfd::pit::Entry>, bool, boost::chrono::duration<long, boost::ratio<1l, 1000l> > const&>, boost::_bi::list0> (a=<synthetic pointer>, f=..., this=<optimized out>) at /usr/include/boost/bind/bind.hpp:457 #5 boost::_bi::bind_t<void, boost::_mfi::mf3<void, nfd::Forwarder, std::shared_ptr<nfd::pit::Entry>, bool, boost::chrono::duration<long, boost::ratio<1l, 1000l> > const&>, boost::_bi::list4<boost::_bi::value<nfd::Forwarder*>, boost::_bi::value<std::shared_ptr<nfd::pit::Entry> >, boost::_bi::value<bool>, boost::_bi::value<boost::chrono::duration<long, boost::ratio<1l, 1000l> > > > >::operator() (this=<optimized out>) at /usr/include/boost/bind/bind.hpp:893 #6 std::_Function_handler<void (), boost::_bi::bind_t<void, boost::_mfi::mf3<void, nfd::Forwarder, std::shared_ptr<nfd::pit::Entry>, bool, boost::chrono::duration<long, boost::ratio<1l, 1000l> > const&>, boost::_bi::list4<boost::_bi::value<nfd::Forwarder*>, boost::_bi::value<std::shared_ptr<nfd::pit::Entry> >, boost::_bi::value<bool>, boost::_bi::value<boost::chrono::duration<long, boost::ratio<1l, 1000l> > > > > >::_M_invoke(std::_Any_data const&) ( __functor=...) at /usr/include/c++/5/functional:1871 #7 0x00007ffff7467722 in std::function<void ()>::operator()() const (this=0x7fffffffd710) at /usr/include/c++/5/functional:2271 #8 ndn::util::scheduler::Scheduler::onEvent (this=0x86f910, error=...) at ../src/util/scheduler.cpp:182 #9 0x00007ffff7467e10 in std::_Mem_fn_base<void (ndn::util::scheduler::Scheduler::*)(boost::system::error_code const&), true>::operator()<boost::system::error_code const&, void> (__object=<optimized out>, this=0x7fffffffd7a0) at /usr/include/c++/5/functional:600 #10 std::_Bind<std::_Mem_fn<void (ndn::util::scheduler::Scheduler::*)(boost::system::error_code const&)> (ndn::util::scheduler::Scheduler*, std::_Placeholder<1>)>::__call<void, boost::system::error_code const&, 0ul, 1ul>(std::tuple<boost::system::error_code const&>&&, std::_Index_tuple<0ul, 1ul>) (__args=<optimized out>, this=0x7fffffffd7a0) at /usr/include/c++/5/functional:1074 #11 std::_Bind<std::_Mem_fn<void (ndn::util::scheduler::Scheduler::*)(boost::system::error_code const&)> (ndn::util::scheduler::Scheduler*, std::_Placeholder<1>)>::operator()<boost::system::error_code const&, void>(boost::system::error_code const&) (this=0x7fffffffd7a0) at /usr/include/c++/5/functional:1133 #12 boost::asio::detail::binder1<std::_Bind<std::_Mem_fn<void (ndn::util::scheduler::Scheduler::*)(boost::system::error_code const&)> (ndn::util::scheduler::Scheduler*, std::_Placeholder<1>)>, boost::system::error_code>::operator()() (this=0x7fffffffd7a0) at /usr/include/boost/asio/detail/bind_handler.hpp:47 #13 boost::asio::asio_handler_invoke<boost::asio::detail::binder1<std::_Bind<std::_Mem_fn<void (ndn::util::scheduler::Scheduler::*)(boost::system::error_code const&)> (ndn::util::scheduler::Scheduler*, std::_Placeholder<1>)>, boost::system::error_code> >(boost::asio::detail::binder1<std::_Bind<std::_Mem_fn<void (ndn::util::scheduler::Scheduler::*)(boost::system::error_code const&)> (ndn::util::scheduler::Scheduler*, std::_Placeholder<1>)>, boost::system::error_code>&, ...) (function=...) at /usr/include/boost/asio/handler_invoke_hook.hpp:69 #14 boost_asio_handler_invoke_helpers::invoke<boost::asio::detail::binder1<std::_Bind<std::_Mem_fn<void (ndn::util::scheduler::Scheduler::*)(boost::system::error_code const&)> (ndn::util::scheduler::Scheduler*, std::_Placeholder<1>)>, boost::system::error_code>, std::_Bind<std::_Mem_fn<void (ndn::util::scheduler::Scheduler::*)(boost::system::error_code const&)> (ndn::util::scheduler::Scheduler*, std::_Placeholder<1>)> >(boost::asio::detail::binder1<std::_Bind<std::_Mem_fn<void (ndn::util::scheduler::Scheduler::*)(boost::system::error_code const&)> (ndn::util::scheduler::Schedule---Type <return> to continue, or q <return> to quit--- ```