Closed pulsejet closed 2 years ago
Thank you for reporting this. Let me figure out what happened.
I also got some errors about pitExpiryQueue
being nil
? Not sure if its the same thing
Besides that, pitExpiryQueue
is also used by two coroutines.
I think the final solution should be move go pitCs.expirationPitLoop()
to the forwarding thread loop.
Hello, @pulsejet . If you have time could you please check if #40 fixes the problem? Thanks.
I removed the expirationPitLoop()
instead of adding a lock.
There is some concurrent map write in Pit. Maybe because
expirationPitLoop
runs in a separate goroutinehttps://github.com/named-data/YaNFD/blob/1b359373e000d5550da5e465ce346a79128d7f24/table/pit-cs-tree.go#L77
and this is not okay for the map deletion in
RemoveInterest
.https://github.com/named-data/YaNFD/blob/1b359373e000d5550da5e465ce346a79128d7f24/table/pit-cs-tree.go#L99 https://github.com/named-data/YaNFD/blob/1b359373e000d5550da5e465ce346a79128d7f24/table/pit-cs-tree.go#L175
EDIT: sorry the log is a mess somehow