Bug #2757
Updated by Junxiao Shi over 9 years ago
When the RIB rib manager on a gateway processes a receives and performs the command of remote unregistration, namely /localhop/nfd/rib/unregister/..., the nfd process will exit unexpectedly. More specifically, the local host (who sent out the unregistration command command) can receive response from a laptop, the remote hub saying that the unregistration is successfully performed. However, the nfd process on the gateway crashes remote hub exits after sending that. I tested a successful response. series of commits, and found that this bug occurs from the following commit: Environment: commit 76c751ce80109cd429cd45d32a04015f7715546b Author: Vince Lehman <vslehman@memphis.edu> Date: Tue Nov 18 17:36:38 2014 -0600 rib: Perform FIB updates before modifying RIB refs: #1941 Change-Id: I1457f71ddd1c120daae48308d5cc02a7c0ecf93d Simple steps to reproduce the bug: setup a test environment with two machines, machines: A and B. A works as the laptop local host while B works as the gateway. remote hub. Steps to reproduce: 1. run nfd on A with `rib.remote-register` rib.remote-register enabled, and set the log level to INFO 2. generate an identity /Z/A on A and install its cert. 3. run nfd on B with `rib.localhop-security` rib.localhop-security enabled, configure the trust anchor as type any. 4. run `nfdc "nfdc register /localhop/nfd udp4://<ip_address_of_B>` udp4://<ip_address_of_B>" on A to gain connectivity to B. 5. run `ndnpingserver ndn:/Z/A/H` "ndnpingserver ndn:/Z/A/H" on A to register prefix /Z/A/H/ping locally. Confirm that /Z/A is successfully registered to B's rib (run `nfd-status -r` nfd-status -r on B). 6. stop ndnpingserver on A. Confirm that /Z/A/H/ping is unregistered from A's rib and there is not any other entries on A's rib starts with prefix /Z/A. So that /Z/A will be unregistered from B's rib. Actual: Then, you can see that A's nfd can receive the response of successfully unregistration of /Z/A from B. But you can not run nfd-status on B again because B's nfd has exited unexpectedly. Expected: B's nfd does not crash.