From 41b5762af7eace5f3120aed0a05aabdd924fdd3d Mon Sep 17 00:00:00 2001 From: Quentin Le Sceller Date: Wed, 22 Mar 2023 10:54:36 -0400 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 f92943c66cf4f..1acb553d3da66 100644 --- a/eth/catalyst/api.go +++ b/eth/catalyst/api.go @@ -522,6 +522,13 @@ func (api *ConsensusAPI) newPayload(params engine.ExecutableData) (engine.Payloa 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()