Project

General

Profile

Bug #1971

Updated by Junxiao Shi about 10 years ago

Steps to reproduce: 

 1. send an Interest with MustBeFresh=yes  
 2. response a Data with FreshnessPeriod=0ms 
 3. within 50ms, retransmit the same Interest with a fresh Nonce 

 Expected: Interest is forwarded to producer   
 Actual: Interest is not forwarded and eventually times out 

 Root cause: 

 1. The first Interest creates a PIT entry. NCC strategy knows this PIT entry is new. 
 2. When the first Interest is satisfied, in-records and out-record are deleted from the PIT entry; the PIT entry itself is scheduled to be deleted when straggler timer expires (100ms). 
 3. The second Interest arrives before straggler time expires, so it finds the same PIT entry. Straggler timer is cancelled. 
 4. The second Interest cannot be satisfied by ContentStore because the Data is already stale. 
 5. NCC strategy thinks this PIT entry is old via `NccStrategy::PitEntryInfo::isNewInterest`, so it won't forward the Interest. 

 --- 

 Original report: **nfd-status -f : gets frequent timeout on Testbed nodes** 

 When running nfd-status on Testbed nodes we get frequent results of: 

     

 Request timed out 

 I've narrowed it down to the face status portion of nfd-status. 

 This also happens when viewing NFD Status through the status page which uses 
 the nfd-status-http-server to call nfd-status. 

 I have not been able to get this to happen on my local nfd running on MacOS. 
 But I don't know if that is because there are fewer daemons running on my 
 local machine or if it is a Ubuntu (Testbed Nodes) vs. MacOS (local machine) issue. 

 I will see if I can gather some more information by setting a more verbose logging level. 


Back