From 2048c807600fb203fa2cfe32bcf28770f07c6696 Mon Sep 17 00:00:00 2001 From: Piotr Tabor Date: Tue, 15 Sep 2020 12:02:41 +0200 Subject: [PATCH] etcdserver: v3compactor should use proper clock for latency (took) reporting. The code used to: - report time since previous compaction success as a 'duration' of compaction process itself. - mix real clock with 'injected' clock. This led to strange log-lines in tests in order of 234543543h of duration. --- etcdserver/api/v3compactor/periodic.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/etcdserver/api/v3compactor/periodic.go b/etcdserver/api/v3compactor/periodic.go index 206325fee..fa0d45330 100644 --- a/etcdserver/api/v3compactor/periodic.go +++ b/etcdserver/api/v3compactor/periodic.go @@ -136,13 +136,14 @@ func (pc *Periodic) Run() { zap.Int64("revision", rev), zap.Duration("compact-period", pc.period), ) + startTime := pc.clock.Now() _, err := pc.c.Compact(pc.ctx, &pb.CompactionRequest{Revision: rev}) if err == nil || err == mvcc.ErrCompacted { pc.lg.Info( "completed auto periodic compaction", zap.Int64("revision", rev), zap.Duration("compact-period", pc.period), - zap.Duration("took", time.Since(lastSuccess)), + zap.Duration("took", pc.clock.Now().Sub(startTime)), ) lastSuccess = pc.clock.Now() } else {