Skip to content
Snippets Groups Projects
Unverified Commit ef89a201 authored by Luca Moser's avatar Luca Moser Committed by GitHub
Browse files

fixes comm-layer msg loss (#459)

parent 954b4bb6
No related branches found
No related tags found
No related merge requests found
......@@ -274,16 +274,25 @@ func (tangle *Tangle) MonitorMissingMessages(shutdownSignal <-chan struct{}) {
select {
case <-reCheckInterval.C:
var toDelete []message.Id
var toUnmark []message.Id
tangle.missingMessageStorage.ForEach(func(key []byte, cachedObject objectstorage.CachedObject) bool {
defer cachedObject.Release()
missingMessage := cachedObject.Get().(*MissingMessage)
if tangle.messageStorage.Contains(missingMessage.messageId.Bytes()) {
toUnmark = append(toUnmark, missingMessage.MessageId())
return true
}
// check whether message is missing since over our max time delta
if time.Since(missingMessage.MissingSince()) >= MaxMissingTimeBeforeCleanup {
toDelete = append(toDelete, missingMessage.MessageId())
}
return true
})
for _, msgID := range toUnmark {
tangle.missingMessageStorage.DeleteIfPresent(msgID.Bytes())
}
for _, msgID := range toDelete {
// delete the future cone of the missing message
tangle.Events.MessageUnsolidifiable.Trigger(msgID)
......
......@@ -73,6 +73,7 @@ func configure(*node.Plugin) {
}
func run(*node.Plugin) {
if err := daemon.BackgroundWorker("Tangle[MissingMessagesMonitor]", func(shutdownSignal <-chan struct{}) {
Tangle.MonitorMissingMessages(shutdownSignal)
}, shutdown.PriorityMissingMessagesMonitoring); err != nil {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment