View Issue Details

IDProjectCategoryView StatusLast Update
0009246GNUnettransport servicepublic2024-12-09 18:03
Reporterthejackimonster Assigned Tothejackimonster  
PrioritynormalSeverityminorReproducibilitysometimes
Status closedResolutionfixed 
Product VersionGit master 
Target Version0.23.0Fixed in Version0.23.0 
Summary0009246: Virtual links are still in memory during shutdown
DescriptionWhile testing around making connections between multiple peers I tripped following assertion:
ERROR Assertion failed at gnunet-service-transport.c:12926

It states that the multipeermap containing the virtual links (potentially of neighbours) should be empty during shutdown. However it isn't always empty.

So I tried to solve it via following commit because I thought the visibility task was keeping them alive during cleanup:
https://git.gnunet.org/gnunet.git/commit/?id=d384ca1cb91f1f3482b28f576bd91e9c85ecf6b6

Seems like that's not the only thing causing this. Because I was still able to trigger the assert after my changes.
Steps To Reproduce- Startup peer (gnunet-arm -s)
- Wait for established connections to other peers (gnunet-core -s)
- Open a connection via cadet to another peer (gnunet-cadet)
- Stop all services (gnunet-arm -e)
Additional InformationI guess as workaround we could iterate through all remaining links and free them. But I assumed the assert had the reason to potentially catch errors in other parts of the code. So I only made changes to freeing the neighbours, not starting any more visibility tasks during shutdown.
TagsNo tags attached.

Activities

schanzen

2024-11-28 08:35

administrator   ~0023768

I think the problem is that neighbour->vl is not really populated at any point. The solution is to either cleanup links or to add it to the neighbour->vl field appropriately. I am a bit confused myself. This is sphaghetti code... especially DV

schanzen

2024-11-28 09:32

administrator   ~0023769

Attempted a fix in 40d1433b8..d81aca3af
I think it is necessary to cleanup both neighbours and DV entities in order to make sure the VLs are cleaned up implicitly.

schanzen

2024-12-09 17:02

administrator   ~0023819

No response closing for now.

schanzen

2024-12-09 18:03

administrator   ~0023843

Released

Related Changesets

gnunet: master d81aca3a

2024-11-28 10:31

schanzen


Details Diff
transport: Attempt to fix issue 0009246 Affected Issues
0009246
mod - src/service/transport/gnunet-service-transport.c Diff File

Issue History

Date Modified Username Field Change
2024-10-03 00:25 thejackimonster New Issue
2024-11-10 10:46 schanzen Target Version => 0.22.3
2024-11-14 09:43 schanzen Target Version 0.22.3 => 0.23.0
2024-11-28 08:35 schanzen Note Added: 0023768
2024-11-28 09:31 schanzen Changeset attached => gnunet master d81aca3a
2024-11-28 09:32 schanzen Assigned To => schanzen
2024-11-28 09:32 schanzen Status new => feedback
2024-11-28 09:32 schanzen Note Added: 0023769
2024-11-30 16:41 schanzen Assigned To schanzen => thejackimonster
2024-12-09 17:02 schanzen Status feedback => resolved
2024-12-09 17:02 schanzen Resolution open => fixed
2024-12-09 17:02 schanzen Fixed in Version => 0.23.0
2024-12-09 17:02 schanzen Note Added: 0023819
2024-12-09 18:03 schanzen Note Added: 0023843
2024-12-09 18:03 schanzen Status resolved => closed