From 0a3401772e144db7d85cac7bc713ebeca982361a Mon Sep 17 00:00:00 2001 From: colin <102356659+colinlyguo@users.noreply.github.com> Date: Tue, 15 Aug 2023 15:40:43 +0800 Subject: [PATCH] fix(rollup-relayer): remove tx in pending txs set when tx preparation failed (#793) --- bridge/cmd/rollup_relayer/app/app.go | 2 +- bridge/internal/controller/sender/sender.go | 7 +++++++ common/version/version.go | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/bridge/cmd/rollup_relayer/app/app.go b/bridge/cmd/rollup_relayer/app/app.go index 339afb439..a7d4c09fc 100644 --- a/bridge/cmd/rollup_relayer/app/app.go +++ b/bridge/cmd/rollup_relayer/app/app.go @@ -110,7 +110,7 @@ func action(ctx *cli.Context) error { go utils.Loop(subCtx, 2*time.Second, l2relayer.ProcessPendingBatches) - go utils.Loop(subCtx, 60*time.Second, l2relayer.ProcessCommittedBatches) + go utils.Loop(subCtx, 10*time.Second, l2relayer.ProcessCommittedBatches) // Finish start all rollup relayer functions. log.Info("Start rollup-relayer successfully") diff --git a/bridge/internal/controller/sender/sender.go b/bridge/internal/controller/sender/sender.go index d7d99adc2..3d85c4a21 100644 --- a/bridge/internal/controller/sender/sender.go +++ b/bridge/internal/controller/sender/sender.go @@ -195,6 +195,13 @@ func (s *Sender) SendTransaction(ID string, target *common.Address, value *big.I tx *types.Transaction err error ) + + defer func() { + if err != nil { + s.pendingTxs.Remove(ID) // release the ID on failure + } + }() + if feeData, err = s.getFeeData(s.auth, target, value, data, minGasLimit); err != nil { return common.Hash{}, fmt.Errorf("failed to get fee data, err: %w", err) } diff --git a/common/version/version.go b/common/version/version.go index 92bc86b36..4fd25a8a9 100644 --- a/common/version/version.go +++ b/common/version/version.go @@ -6,7 +6,7 @@ import ( "strings" ) -var tag = "v4.1.45" +var tag = "v4.1.46" var commit = func() string { if info, ok := debug.ReadBuildInfo(); ok {