From 9e13376e08a31a7296c325ebd9fd357cc4a137a2 Mon Sep 17 00:00:00 2001 From: Quentin Le Sceller Date: Wed, 25 Jan 2023 16:02:50 -0500 Subject: [PATCH] Add retry logic --- eth/catalyst/api.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/eth/catalyst/api.go b/eth/catalyst/api.go index beba964df40c3..b2806afdbde58 100644 --- a/eth/catalyst/api.go +++ b/eth/catalyst/api.go @@ -411,6 +411,13 @@ func (api *ConsensusAPI) NewPayloadV1(params beacon.ExecutableDataV1) (beacon.Pa if err := api.eth.BlockChain().InsertBlockWithoutSetHead(block); err != nil { log.Warn("NewPayloadV1: inserting block failed", "error", err) + if err.Error() == "Not locked" { + // we are stil working on the previous block + // we want to retry later + time.Sleep(5 * time.Second) + return api.NewPayloadV1(params) + } + api.invalidLock.Lock() api.invalidBlocksHits[block.Hash()] = 1 api.invalidTipsets[block.Hash()] = block.Header()