<div dir="ltr">Hi Junxiao,<div><br></div><div>Thank you so much! Setting $HOME variable works like a charm (sudo HOME=/tmp nfd -c /usr/local/etc/ndn/nfd.conf). I didn't generate a key for NFD but everything is fine, maybe because I have disabled command authorization.</div><div><br></div><div>Spent several days trying to debug this, and nothing made sense (after signature verification is bypassed, the corresponding ValidatorState is indeterminate when it is destroyed, and thus the error), I guess the inconsistency may have caused memory leakage somewhere.</div><div><br></div><div>Thanks again for the tip!</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Junxiao Shi <<a href="mailto:shijunxiao@email.arizona.edu">shijunxiao@email.arizona.edu</a>> 于2019年8月15日周四 下午9:54写道:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="auto">Hi Zhongda<div dir="auto"><br></div><div dir="auto">This appears to be a KeyChain conflict.</div><div dir="auto"><br></div><div dir="auto">NFD needs to run from an isolated KeyChain ($HOME environment variable). If it shares a KeyChain with another app that modifies the KeyChain, modifications could make NFD's view of the KeyChain inconsistent with what's in the filesystem, and eventually cause a crash.</div><div dir="auto"><br></div><div dir="auto">Also, you must manually generate a key inside that KeyChain. Otherwise, NFD would generate a key first time it's needed. Depending on timing between NFD's two threads, one of these can occur: (1) RIB thread generates a key then main thread drops root privilege, future signing fails because key is inaccessible; (2) two threads try to generate keys simultaneously, causing a conflict; (3) main thread drops root privilege then RIB thread generates a key as non-root, and everything works. Thus, always generate the key yourself and make it accessible by NFD's euid.</div><div dir="auto"><br></div>Yours, Junxiao<br><br><div class="gmail_quote" dir="auto"><div dir="ltr" class="gmail_attr">On Thu, Aug 8, 2019, 05:30 Zhongda Xia via Nfd-dev <<a href="mailto:nfd-dev@lists.cs.ucla.edu" target="_blank">nfd-dev@lists.cs.ucla.edu</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Hi all,<div><br></div><div>My NFD crashes after a local application exits (producer applications like "ndnpingserver"), showing the following error messages:</div><div><br></div><div>1565242734.292879 DEBUG: [nfd.FibUpdater] Failed to apply FibUpdate( Name: /rv, faceId: 263, action: REMOVE_NEXTHOP) (code: 10021, error: Internal implementation error (Validator/policy did not invoke success or failure callback))<br>terminate called after throwing an instance of 'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<nfd::rib::FibUpdater::Error> >'<br>  what():  Non-recoverable error: Internal implementation error (Validator/policy did not invoke success or failure callback) code: 10021<br></div><div><br></div><div>I am still trying to debug this, and my setup is a little complicated (working on a dev branch), so I'm hoping someone has seen something similar before, and could give me a hint on what to check first. Thanks!</div></div><br>
</blockquote></div></div>
</blockquote></div>