From 71ad593ab0d47fb92d41bc02a32e7cef3e62b313 Mon Sep 17 00:00:00 2001 From: i-norden Date: Wed, 9 Feb 2022 16:31:23 -0600 Subject: [PATCH] better logging of rollbacks and dead lock retries --- statediff/indexer/database/sql/indexer.go | 5 +++-- statediff/service.go | 6 ++++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/statediff/indexer/database/sql/indexer.go b/statediff/indexer/database/sql/indexer.go index 3e578a469..e2667cecd 100644 --- a/statediff/indexer/database/sql/indexer.go +++ b/statediff/indexer/database/sql/indexer.go @@ -25,8 +25,6 @@ import ( "math/big" "time" - ipld2 "github.com/ethereum/go-ethereum/statediff/indexer/ipld" - "github.com/ipfs/go-cid" node "github.com/ipfs/go-ipld-format" "github.com/multiformats/go-multihash" @@ -39,6 +37,7 @@ import ( "github.com/ethereum/go-ethereum/params" "github.com/ethereum/go-ethereum/rlp" "github.com/ethereum/go-ethereum/statediff/indexer/interfaces" + ipld2 "github.com/ethereum/go-ethereum/statediff/indexer/ipld" "github.com/ethereum/go-ethereum/statediff/indexer/models" "github.com/ethereum/go-ethereum/statediff/indexer/shared" sdtypes "github.com/ethereum/go-ethereum/statediff/types" @@ -155,9 +154,11 @@ func (sdi *StateDiffIndexer) PushBlock(block *types.Block, receipts types.Receip close(self.iplds) }() if p := recover(); p != nil { + log.Info("panic detected before tx submission, rolling back the tx", "panic", p) rollback(sdi.ctx, tx) panic(p) } else if err != nil { + log.Info("error detected before tx submission, rolling back the tx", "error", err) rollback(sdi.ctx, tx) } else { tDiff := time.Since(t) diff --git a/statediff/service.go b/statediff/service.go index c8c7649fd..bf45b22fe 100644 --- a/statediff/service.go +++ b/statediff/service.go @@ -39,12 +39,11 @@ import ( "github.com/ethereum/go-ethereum/p2p" "github.com/ethereum/go-ethereum/rlp" "github.com/ethereum/go-ethereum/rpc" - "github.com/ethereum/go-ethereum/trie" - ind "github.com/ethereum/go-ethereum/statediff/indexer" "github.com/ethereum/go-ethereum/statediff/indexer/interfaces" nodeinfo "github.com/ethereum/go-ethereum/statediff/indexer/node" types2 "github.com/ethereum/go-ethereum/statediff/types" + "github.com/ethereum/go-ethereum/trie" ) const ( @@ -705,6 +704,9 @@ func (sds *Service) writeStateDiffWithRetry(block *types.Block, parentRoot commo err = sds.writeStateDiff(block, parentRoot, params) if err != nil && strings.Contains(err.Error(), deadlockDetected) { // Retry only when the deadlock is detected. + if i != sds.maxRetry { + log.Info("dead lock detected while writing statediff", "err", err, "retry number", i) + } continue } break