From 094a67a179a5bdc9bd97ded545755055298fb38a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96mer=20Faruk=20Irmak?= Date: Thu, 30 May 2024 09:46:05 +0300 Subject: [PATCH] fix: use a named deadline timer in CCC stage (#782) --- params/version.go | 2 +- rollup/pipeline/pipeline.go | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/params/version.go b/params/version.go index f6bd9c3bdc..7d19cf91ef 100644 --- a/params/version.go +++ b/params/version.go @@ -24,7 +24,7 @@ import ( const ( VersionMajor = 5 // Major version component of the current release VersionMinor = 3 // Minor version component of the current release - VersionPatch = 28 // Patch version component of the current release + VersionPatch = 29 // Patch version component of the current release VersionMeta = "mainnet" // Version metadata to append to the version string ) diff --git a/rollup/pipeline/pipeline.go b/rollup/pipeline/pipeline.go index d66a04e338..172bf1def6 100644 --- a/rollup/pipeline/pipeline.go +++ b/rollup/pipeline/pipeline.go @@ -310,14 +310,16 @@ func (p *Pipeline) cccStage(candidates <-chan *BlockCandidate, deadline time.Tim var deadlineReached bool go func() { + deadlineTimer := time.NewTimer(time.Until(deadline)) defer func() { close(resultCh) + deadlineTimer.Stop() lifetimeTimer.UpdateSince(p.start) }() for { idleStart := time.Now() select { - case <-time.After(time.Until(deadline)): + case <-deadlineTimer.C: cccIdleTimer.UpdateSince(idleStart) // note: currently we don't allow empty blocks, but if we ever do; make sure to CCC check it first if lastCandidate != nil { @@ -328,8 +330,6 @@ func (p *Pipeline) cccStage(candidates <-chan *BlockCandidate, deadline time.Tim return } deadlineReached = true - // avoid deadline case being triggered again and again - deadline = time.Now().Add(time.Hour) case candidate := <-candidates: cccIdleTimer.UpdateSince(idleStart) cccStart := time.Now()