From 7860501da9896c29595a9b4b119843eea3da4141 Mon Sep 17 00:00:00 2001 From: Artem Date: Sat, 25 Nov 2023 15:48:36 +0100 Subject: [PATCH] Fix: add request timeout --- pkg/indexer/receiver/worker.go | 7 ++++++- pkg/node/rpc/api.go | 6 ++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/pkg/indexer/receiver/worker.go b/pkg/indexer/receiver/worker.go index c6f75648..ab4aaff2 100644 --- a/pkg/indexer/receiver/worker.go +++ b/pkg/indexer/receiver/worker.go @@ -24,11 +24,15 @@ func (r *Module) worker(ctx context.Context, level types.Level) { default: } - block, err := r.api.BlockDataGet(ctx, level) + requestTimeout, cancel := context.WithTimeout(ctx, time.Second*10) + block, err := r.api.BlockDataGet(requestTimeout, level) if err != nil { + cancel() + if errors.Is(err, context.Canceled) { return } + r.Log.Err(err). Uint64("height", uint64(level)). Msg("while getting block data") @@ -38,6 +42,7 @@ func (r *Module) worker(ctx context.Context, level types.Level) { } result = block + cancel() break } diff --git a/pkg/node/rpc/api.go b/pkg/node/rpc/api.go index 10f7f0d4..1bd8e5aa 100644 --- a/pkg/node/rpc/api.go +++ b/pkg/node/rpc/api.go @@ -22,6 +22,10 @@ import ( "golang.org/x/time/rate" ) +const ( + celeniumUserAgent = "Celenium Indexer" +) + type API struct { client *http.Client cfg config.DataSource @@ -80,6 +84,7 @@ func (api *API) get(ctx context.Context, path string, args map[string]string, ou if err != nil { return err } + req.Header.Set("User-Agent", celeniumUserAgent) response, err := api.client.Do(req) if err != nil { @@ -123,6 +128,7 @@ func (api *API) post(ctx context.Context, requests []types.Request, output any) if err != nil { return err } + req.Header.Set("User-Agent", celeniumUserAgent) response, err := api.client.Do(req) if err != nil {