diff --git a/zk/stages/stage_sequence_execute.go b/zk/stages/stage_sequence_execute.go index 35d98d9be0a..a9e751f24e5 100644 --- a/zk/stages/stage_sequence_execute.go +++ b/zk/stages/stage_sequence_execute.go @@ -158,7 +158,14 @@ func SpawnSequencingStage( log.Info(fmt.Sprintf("[%s] Starting batch %d...", logPrefix, batchState.batchNumber)) + // once the batch ticker has ticked we need a signal to close the batch after the next block is done + batchTimedOut := false + for blockNumber := executionAt + 1; runLoopBlocks; blockNumber++ { + if batchTimedOut { + log.Debug(fmt.Sprintf("[%s] Closing batch due to timeout", logPrefix)) + break + } log.Info(fmt.Sprintf("[%s] Starting block %d (forkid %v)...", logPrefix, blockNumber, batchState.forkId)) logTicker.Reset(10 * time.Second) blockTicker.Reset(cfg.zk.SequencerBlockSealTime) @@ -231,8 +238,8 @@ func SpawnSequencingStage( } case <-batchTicker.C: if !batchState.isAnyRecovery() { - runLoopBlocks = false - break LOOP_TRANSACTIONS + log.Debug(fmt.Sprintf("[%s] Batch timeout reached", logPrefix)) + batchTimedOut = true } default: if batchState.isLimboRecovery() {