From b6f0008577a52b362061bc8e47d2b40af11884e4 Mon Sep 17 00:00:00 2001 From: pk910 Date: Wed, 13 Sep 2023 23:29:51 +0200 Subject: [PATCH] bubble up errors when fetching proposer duties fails (reset client readiness) --- indexer/client.go | 11 +++++++++-- rpc/beaconapi.go | 1 + 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/indexer/client.go b/indexer/client.go index 336cde85..595b4ac6 100644 --- a/indexer/client.go +++ b/indexer/client.go @@ -255,7 +255,11 @@ func (client *IndexerClient) runIndexerClient() error { currentEpoch := utils.TimeToEpoch(time.Now()) if currentEpoch > client.lastEpochStats { // ensure latest epoch stats are loaded for chain of this client - client.ensureEpochStats(uint64(currentEpoch), client.lastHeadRoot) + err := client.ensureEpochStats(uint64(currentEpoch), client.lastHeadRoot) + if err != nil { + client.isConnected = false + return err + } } } } @@ -344,7 +348,10 @@ func (client *IndexerClient) prefillCache(finalizedSlot uint64, latestHeader *rp } currentEpoch := utils.EpochOfSlot(currentBlock.Slot) for epoch := firstEpoch; epoch <= currentEpoch; epoch++ { - client.ensureEpochStats(epoch, currentBlock.Root) + err := client.ensureEpochStats(epoch, currentBlock.Root) + if err != nil { + return err + } } return nil diff --git a/rpc/beaconapi.go b/rpc/beaconapi.go index dd488a57..6a7945e3 100644 --- a/rpc/beaconapi.go +++ b/rpc/beaconapi.go @@ -101,6 +101,7 @@ func (bc *BeaconClient) getJson(requrl string, returnValue interface{}) error { return errNotFound } data, _ := io.ReadAll(resp.Body) + logger.WithField("client", bc.name).Debugf("RPC Error %v: %v", resp.StatusCode, data) return fmt.Errorf("url: %v, error-response: %s", logurl, data) }