Project

General

Profile

Bug #2757

Updated by Junxiao Shi about 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. 

Back