diff --git a/ethtxmanager/ethtxmanager.go b/ethtxmanager/ethtxmanager.go index 9f646dcaf6..e7099afddc 100644 --- a/ethtxmanager/ethtxmanager.go +++ b/ethtxmanager/ethtxmanager.go @@ -21,7 +21,7 @@ import ( const ( failureIntervalInSeconds = 5 - maxHistorySize = 10 + // maxHistorySize = 10 ) var ( @@ -321,16 +321,16 @@ func (c *Client) monitorTxs(ctx context.Context) error { // this Tx and we are not able to identify automatically, so we mark this as failed to let the // caller know something is not right and needs to be review and to avoid to monitor this // tx infinitely - if len(mTx.history) == maxHistorySize { - mTx.status = MonitoredTxStatusFailed - mTxLog.Infof("marked as failed because reached the history size limit: %v", err) - // update monitored tx changes into storage - err = c.storage.Update(ctx, mTx, nil) - if err != nil { - mTxLog.Errorf("failed to update monitored tx when max history size limit reached: %v", err) - continue - } - } + // if len(mTx.history) == maxHistorySize { + // mTx.status = MonitoredTxStatusFailed + // mTxLog.Infof("marked as failed because reached the history size limit: %v", err) + // // update monitored tx changes into storage + // err = c.storage.Update(ctx, mTx, nil) + // if err != nil { + // mTxLog.Errorf("failed to update monitored tx when max history size limit reached: %v", err) + // continue + // } + // } var signedTx *types.Transaction if !mined { diff --git a/sequencer/sequencesender.go b/sequencer/sequencesender.go index f1eb091c36..4c05bf2603 100644 --- a/sequencer/sequencesender.go +++ b/sequencer/sequencesender.go @@ -24,14 +24,20 @@ const ( ) func (s *Sequencer) tryToSendSequence(ctx context.Context, ticker *time.Ticker) { + retry := false // process monitored sequences before starting a next cycle s.ethTxManager.ProcessPendingMonitoredTxs(ctx, ethTxManagerOwner, func(result ethtxmanager.MonitoredTxResult, dbTx pgx.Tx) { if result.Status == ethtxmanager.MonitoredTxStatusFailed { + retry = true resultLog := log.WithFields("owner", ethTxManagerOwner, "id", result.ID) - resultLog.Fatal("failed to send sequence, TODO: review this fatal and define what to do in this case") + resultLog.Error("failed to send sequence, TODO: review this fatal and define what to do in this case") } }, nil) + if retry { + return + } + // Check if synchronizer is up to date if !s.isSynced(ctx) { log.Info("wait for synchronizer to sync last batch")