From 0ab32bf0434e218ff0648fe02410806fea9a9cba Mon Sep 17 00:00:00 2001 From: Dmytro Haidashenko Date: Tue, 11 Feb 2025 10:15:40 +0100 Subject: [PATCH 1/2] fix block sorter memory leak --- pkg/solana/logpoller/blocks_sorter.go | 1 + 1 file changed, 1 insertion(+) diff --git a/pkg/solana/logpoller/blocks_sorter.go b/pkg/solana/logpoller/blocks_sorter.go index d3dfdb1e3..9cc8626da 100644 --- a/pkg/solana/logpoller/blocks_sorter.go +++ b/pkg/solana/logpoller/blocks_sorter.go @@ -113,6 +113,7 @@ func (p *blocksSorter) readNextReadyBlock() *Block { if !ok { return nil } + delete(p.readyBlocks, slotNumber) p.queue.Remove(element) return &block From 58a0a646f6f6b715f95bec2487d4a6a3e02f9c8a Mon Sep 17 00:00:00 2001 From: Dmytro Haidashenko Date: Tue, 11 Feb 2025 12:32:41 +0100 Subject: [PATCH 2/2] improve logging --- pkg/solana/logpoller/log_poller.go | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/pkg/solana/logpoller/log_poller.go b/pkg/solana/logpoller/log_poller.go index 29defd60e..f83fb6cc9 100644 --- a/pkg/solana/logpoller/log_poller.go +++ b/pkg/solana/logpoller/log_poller.go @@ -243,12 +243,18 @@ func (lp *Service) backfillFilters(ctx context.Context, filters []Filter, to int } } - err := lp.processBlocksRange(ctx, addresses, minSlot, to) - if err != nil { - return err + if minSlot < to { + err := lp.processBlocksRange(ctx, addresses, minSlot, to) + if err != nil { + return err + } + + lp.lggr.Infow("Done backfilling filters", "filters", len(filters), "from", minSlot, "to", to) + } else { + lp.lggr.Infow("Starting block for filters backfill is greater than the latest processed block - marking filters as backfilled and starting global processing", "filters", len(filters), "from", minSlot, "to", to) } - lp.lggr.Infow("Done backfilling filters", "filters", len(filters), "from", minSlot, "to", to) + var err error for _, filter := range filters { filterErr := lp.filters.MarkFilterBackfilled(ctx, filter.ID) if filterErr != nil {