From 49218fd3bd3f473abc1da011e9dbfe8d94aa7675 Mon Sep 17 00:00:00 2001
From: Edd Robinson <me@edd.io>
Date: Mon, 2 Oct 2017 17:11:57 +0100
Subject: [PATCH] Fix issue with series being added to log file

---
 tsdb/index/tsi1/log_file.go    | 13 +++++++++++++
 tsdb/index/tsi1/series_file.go |  2 +-
 2 files changed, 14 insertions(+), 1 deletion(-)

diff --git a/tsdb/index/tsi1/log_file.go b/tsdb/index/tsi1/log_file.go
index 1807616934..2aa3910cfb 100644
--- a/tsdb/index/tsi1/log_file.go
+++ b/tsdb/index/tsi1/log_file.go
@@ -438,8 +438,17 @@ func (f *LogFile) AddSeriesList(names [][]byte, tagsSlice []models.Tags) error {
 		return err
 	}
 
+	if seriesIDs == nil {
+		// All of these series IDs exist in the index.
+		return nil
+	}
+
 	entries := make([]LogEntry, len(names))
 	for i := range names {
+		if seriesIDs[i] == 0 {
+			// We don't need to allocate anything for this series.
+			continue
+		}
 		entries[i] = LogEntry{SeriesID: seriesIDs[i]}
 	}
 
@@ -447,6 +456,10 @@ func (f *LogFile) AddSeriesList(names [][]byte, tagsSlice []models.Tags) error {
 	defer f.mu.Unlock()
 
 	for i := range entries {
+		if seriesIDs[i] == 0 {
+			// We don't need to add this series.
+			continue
+		}
 		if err := f.appendEntry(&entries[i]); err != nil {
 			return err
 		}
diff --git a/tsdb/index/tsi1/series_file.go b/tsdb/index/tsi1/series_file.go
index da7831f17c..1ad5aed637 100644
--- a/tsdb/index/tsi1/series_file.go
+++ b/tsdb/index/tsi1/series_file.go
@@ -168,7 +168,7 @@ func (f *SeriesFile) CreateSeriesListIfNotExists(names [][]byte, tagsSlice []mod
 
 	// Return immediately if no series need to be created.
 	if !createRequired {
-		return offsets, nil
+		return nil, nil
 	}
 
 	// Obtain write lock to create new series.