Bug #2564
closed
  
Memory access violation in NameTree test suite
 
        
        Added by Alex Afanasyev over 10 years ago.
        Updated over 10 years ago.
        
  
  
  
  Description
  
  I think one of the recent commits to nfd or ndn-cxx introduced a problem.  At least, test cases are now consistently failing on all platforms:
[Exception] - memory access violation at address: 0x00001050: no mapping at fault address
 == [File] - ../tests/daemon/table/name-tree.t.cpp
 == [Line] - 278
   
 
 
  
  
    
    
    
    
       - Subject changed from Memory access violation somewhere to Memory access violation in NameTree test suite
 
       - Assignee changed from Junxiao Shi to Haowei Yuan
 
    
    Reassigning to @Haowei, author of NameTree.
 
     
   
  
  
    
    
    
    What do you mean "consistently failing on all platforms"? How did it get past CI?
 
     
   
  
  
    
    
    
    One possible sequence is:
- NFD passes CI
 
- ndn-cxx Change that breaks NFD is merged
 
#1948 would eliminate this problem.
 
     
   
  
  
    
    
    
    
       - Description updated (diff)
 
       - Category set to Tables
 
    
    
     
   
  
  
    
    
    
    
       - Assignee changed from Haowei Yuan to Junxiao Shi
 
    
    Junxiao, the issue is introduced by recently merged commits in ndn-cxx and/or NFD (I believe it is due to ndn-cxx commit, but I don't have proof).  You authored both recent commits, so please take a look.
@Davide.  Unfortunately, we don't have yet #1948 in place and merges in the library can have unexpected effects to other projects and are not yet capturable by CI.
 
     
   
  
  
  
  
    
    
    
    
       - Status changed from New to Resolved
 
       - Assignee changed from Junxiao Shi to Alex Afanasyev
 
       - % Done changed from 0 to 100
 
    
    Apparently, it is a trivial problem in TableNameTree test suite.  The issue is that with XML output we are requesting all log output.  One of the test cases used BOOST_CHECK_MESSAGE in the following way:
BOOST_CHECK_MESSAGE(m_names.empty(), "excess Names including " << *m_names.begin());
When verbose log output is not enabled, nothing bad is happening (the message printed only when case fails).  When verbose log is enabled, then the test case fails as we are attempting to dereference invalid iterator.
 
     
   
  
  
    
    
    
    
       - Status changed from Resolved to Code review
 
    
    
     
   
  
  
    
    
    
    
       - Status changed from Code review to Closed
 
    
    
     
   
  
 
  
  
 
Also available in:  Atom
  PDF