From 87c962d62d1ad1c5f0cebb15e1b335f588a82cd6 Mon Sep 17 00:00:00 2001 From: Jason Wilder Date: Mon, 29 Jun 2015 22:09:47 -0600 Subject: [PATCH] Fix panics when collectd fails to start If collectd fails to start, it can panic when close is called because some variables have not be initialized yet. --- services/collectd/service.go | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/services/collectd/service.go b/services/collectd/service.go index 71efa90b69..a3d7357b1f 100644 --- a/services/collectd/service.go +++ b/services/collectd/service.go @@ -118,9 +118,15 @@ func (s *Service) Open() error { // Close stops the service. func (s *Service) Close() error { // Close the connection, and wait for the goroutine to exit. - close(s.stop) - s.ln.Close() - s.batcher.Stop() + if s.stop != nil { + close(s.stop) + } + if s.ln != nil { + s.ln.Close() + } + if s.batcher != nil { + s.batcher.Stop() + } s.wg.Wait() // Release all remaining resources.