From e8200547020ca2f49ff41d853f132b8002c298d4 Mon Sep 17 00:00:00 2001 From: Andrew Richardson Date: Wed, 10 Aug 2022 14:11:36 -0400 Subject: [PATCH] Distinguish "message not available" from "message missing data" Signed-off-by: Andrew Richardson --- internal/events/aggregator.go | 9 ++++++--- internal/events/aggregator_test.go | 13 +++++++++++++ 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/internal/events/aggregator.go b/internal/events/aggregator.go index 5fb50f2091..1735803b49 100644 --- a/internal/events/aggregator.go +++ b/internal/events/aggregator.go @@ -421,10 +421,13 @@ func (ag *aggregator) processMessage(ctx context.Context, manifest *core.BatchMa cro = data.CRORequirePublicBlobRefs } msg, data, dataAvailable, err := ag.data.GetMessageWithDataCached(ctx, msgEntry.ID, cro) - if err != nil { + switch { + case err != nil: return err - } - if !dataAvailable { + case msg == nil: + l.Debugf("Message '%s' in batch '%s' is not yet available", msgEntry.ID, manifest.ID) + return nil + case !dataAvailable: l.Errorf("Message '%s' in batch '%s' is missing data", msgEntry.ID, manifest.ID) return nil } diff --git a/internal/events/aggregator_test.go b/internal/events/aggregator_test.go index 970e22ad95..edc40eafc5 100644 --- a/internal/events/aggregator_test.go +++ b/internal/events/aggregator_test.go @@ -938,6 +938,19 @@ func TestProcessMsgFailData(t *testing.T) { mdm.AssertExpectations(t) } +func TestProcessMsgNoData(t *testing.T) { + ag, cancel := newTestAggregator() + defer cancel() + + mdm := ag.data.(*datamocks.Manager) + mdm.On("GetMessageWithDataCached", ag.ctx, mock.Anything, data.CRORequirePins).Return(nil, nil, false, nil) + + err := ag.processMessage(ag.ctx, &core.BatchManifest{}, &core.Pin{Masked: true, Sequence: 12345}, 10, &core.MessageManifestEntry{}, nil) + assert.NoError(t, err) + + mdm.AssertExpectations(t) +} + func TestProcessMsgFailMissingData(t *testing.T) { ag, cancel := newTestAggregator() defer cancel()