From e097ae9632e3b12de4c2516b007f7305841a7530 Mon Sep 17 00:00:00 2001 From: Cameron Sparr Date: Tue, 13 Dec 2016 14:49:11 +0000 Subject: [PATCH] Fix possible panic when file info cannot be gotten closes #2061 --- CHANGELOG.md | 1 + plugins/inputs/filestat/filestat.go | 11 +++++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 68262c98d..8cb3e6196 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -27,6 +27,7 @@ - [#2146](https://github.com/influxdata/telegraf/issues/2146): Fix potential panic in aggregator plugin metric maker. - [#1843](https://github.com/influxdata/telegraf/pull/1843) & [#1668](https://github.com/influxdata/telegraf/issues/1668): Add optional ability to define PID as a tag. - [#1730](https://github.com/influxdata/telegraf/issues/1730): Fix win_perf_counters not gathering non-English counters. +- [#2061](https://github.com/influxdata/telegraf/issues/2061): Fix panic when file stat info cannot be collected due to permissions or other issue(s). ## v1.1.2 [2016-12-12] diff --git a/plugins/inputs/filestat/filestat.go b/plugins/inputs/filestat/filestat.go index 938c12e34..83f511a84 100644 --- a/plugins/inputs/filestat/filestat.go +++ b/plugins/inputs/filestat/filestat.go @@ -4,6 +4,7 @@ import ( "crypto/md5" "fmt" "io" + "log" "os" "github.com/influxdata/telegraf" @@ -78,8 +79,14 @@ func (f *FileStat) Gather(acc telegraf.Accumulator) error { "file": fileName, } fields := map[string]interface{}{ - "exists": int64(1), - "size_bytes": fileInfo.Size(), + "exists": int64(1), + } + + if fileInfo == nil { + log.Printf("E! Unable to get info for file [%s], possible permissions issue", + fileName) + } else { + fields["size_bytes"] = fileInfo.Size() } if f.Md5 {