From 45bfa35fe1846fd75aae2667bf842855d675e50e Mon Sep 17 00:00:00 2001 From: Jono Wenger <jono@elixxir.io> Date: Fri, 22 Apr 2022 10:40:50 -0700 Subject: [PATCH] Fix storage/utility/MessageBuffer.Add so that it loads messages from storage --- storage/utility/messageBuffer.go | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/storage/utility/messageBuffer.go b/storage/utility/messageBuffer.go index 82c8b898e..8f513bdb9 100644 --- a/storage/utility/messageBuffer.go +++ b/storage/utility/messageBuffer.go @@ -203,11 +203,19 @@ func (mb *MessageBuffer) Add(m interface{}) interface{} { defer mb.mux.Unlock() // Ensure message does not already exist in buffer - if face1, exists1 := mb.messages[h]; exists1 { - return face1 + if _, exists1 := mb.messages[h]; exists1 { + msg, err := mb.handler.LoadMessage(mb.kv, MakeStoredMessageKey(mb.key, h)) + if err != nil { + jww.FATAL.Panicf("Error loading message %s: %v", h, err) + } + return msg } - if face2, exists2 := mb.processingMessages[h]; exists2 { - return face2 + if _, exists2 := mb.processingMessages[h]; exists2 { + msg, err := mb.handler.LoadMessage(mb.kv, MakeStoredMessageKey(mb.key, h)) + if err != nil { + jww.FATAL.Panicf("Error loading processing message %s: %v", h, err) + } + return msg } // Save message as versioned object -- GitLab