From 0ef6c44c5b771f8bf8d0a73b7e2b3331dfdf19e4 Mon Sep 17 00:00:00 2001 From: Nathaniel Cook Date: Mon, 18 Jul 2016 09:40:55 -0600 Subject: [PATCH] fix panic in replay (#720) --- CHANGELOG.md | 3 ++- replay.go | 9 ++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d46e67baf..afdb010a8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,8 +8,9 @@ ### Bugfixes -- [#710](https://github.com/influxdata/kapacitor/pull/662): Fix infinite loop when parsing unterminated regex in TICKscript. +- [#710](https://github.com/influxdata/kapacitor/pull/710): Fix infinite loop when parsing unterminated regex in TICKscript. - [#711](https://github.com/influxdata/kapacitor/issue/711): Fix where database name with quotes breaks subscription startup logic. +- [#719](https://github.com/influxdata/kapacitor/pull/719): Fix panic on replay. ## v1.0.0-beta3 [2016-07-09] diff --git a/replay.go b/replay.go index 7c8700685..66a2b9c7f 100644 --- a/replay.go +++ b/replay.go @@ -173,11 +173,17 @@ func replayBatchFromChan(clck clock.Clock, batches <-chan models.Batch, collecto defer collector.Close() // Find relative times - start := time.Time{} + var start, tmax time.Time var diff time.Duration zero := clck.Zero() for b := range batches { + if len(b.Points) == 0 { + // Emit empty batch + b.TMax = tmax + collector.CollectBatch(b) + continue + } if start.IsZero() { start = b.Points[0].Time diff = zero.Sub(start) @@ -193,6 +199,7 @@ func replayBatchFromChan(clck clock.Clock, batches <-chan models.Batch, collecto } clck.Until(lastTime) b.TMax = b.Points[len(b.Points)-1].Time + tmax = b.TMax collector.CollectBatch(b) } return nil