From 101af8998770489b337375c1db5ae4f94757fade Mon Sep 17 00:00:00 2001 From: Edd Robinson Date: Wed, 5 Jul 2017 13:42:23 +0100 Subject: [PATCH] Update CHANGELOG --- CHANGELOG.md | 9 ++++++++- tsdb/engine/tsm1/compact.go | 25 +++++++------------------ 2 files changed, 15 insertions(+), 19 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index db60471b5f8..5494aa06420 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,7 +16,14 @@ - [#8466](https://github.com/influxdata/influxdb/issues/8466): illumos build broken on syscall.Mmap - [#8124](https://github.com/influxdata/influxdb/issues/8124): Prevent privileges on non-existent databases from being set. -## v1.3.0 [unreleased] +## v1.3.1 [unreleased] + +### Bugfixes + +- [#8559](https://github.com/influxdata/influxdb/issues/8559): Ensure temporary TSM files get cleaned up when compaction aborted. + + +## v1.3.0 [2017-06-21] ### Release Notes diff --git a/tsdb/engine/tsm1/compact.go b/tsdb/engine/tsm1/compact.go index 948bd7fce63..f3c04d80f77 100644 --- a/tsdb/engine/tsm1/compact.go +++ b/tsdb/engine/tsm1/compact.go @@ -748,9 +748,7 @@ func (c *Compactor) CompactFull(tsmFiles []string) ([]string, error) { c.mu.RUnlock() if !enabled { - c.mu.Lock() - defer c.mu.Unlock() - if err := c.cleanupDisabledCompaction(tsmFiles); err != nil { + if err := c.removeTmpFiles(files); err != nil { return nil, err } return nil, errCompactionsDisabled @@ -782,9 +780,7 @@ func (c *Compactor) CompactFast(tsmFiles []string) ([]string, error) { c.mu.RUnlock() if !enabled { - c.mu.Lock() - defer c.mu.Unlock() - if err := c.cleanupDisabledCompaction(tsmFiles); err != nil { + if err := c.removeTmpFiles(files); err != nil { return nil, err } return nil, errCompactionsDisabled @@ -794,19 +790,12 @@ func (c *Compactor) CompactFast(tsmFiles []string) ([]string, error) { } -// cleanupDisabledCompaction is responsible for cleaning up a compaction that +// removeTmpFiles is responsible for cleaning up a compaction that // was started, but then abandoned before the temporary files were dealt with. -func (c *Compactor) cleanupDisabledCompaction(tsmFiles []string) error { - for _, f := range tsmFiles { - files, err := filepath.Glob(filepath.Join(filepath.Dir(f), fmt.Sprintf("*.%s", CompactionTempExtension))) - if err != nil { - return fmt.Errorf("error cleaning up compaction temp files: %s", err.Error()) - } - - for _, f := range files { - if err := os.Remove(f); err != nil { - return fmt.Errorf("error removing temp compaction file: %v", err) - } +func (c *Compactor) removeTmpFiles(files []string) error { + for _, f := range files { + if err := os.Remove(f); err != nil { + return fmt.Errorf("error removing temp compaction file: %v", err) } } return nil