You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficcontrol.apache.org by ne...@apache.org on 2017/02/20 01:57:06 UTC

[05/16] incubator-trafficcontrol git commit: Add MonitorConfig poller, manager failure logs

Add MonitorConfig poller, manager failure logs


Project: http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/commit/463b347b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/tree/463b347b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/diff/463b347b

Branch: refs/heads/master
Commit: 463b347b8d1778c8a45089a3b6f52984aea8c8ac
Parents: 8475009
Author: Robert Butts <ro...@gmail.com>
Authored: Fri Feb 17 09:27:19 2017 -0700
Committer: Dave Neuman <ne...@apache.org>
Committed: Sun Feb 19 18:56:45 2017 -0700

----------------------------------------------------------------------
 traffic_monitor_golang/common/poller/poller.go              | 8 ++++++++
 .../traffic_monitor/manager/monitorconfig.go                | 9 +++++++++
 2 files changed, 17 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/463b347b/traffic_monitor_golang/common/poller/poller.go
----------------------------------------------------------------------
diff --git a/traffic_monitor_golang/common/poller/poller.go b/traffic_monitor_golang/common/poller/poller.go
index 81eeb3c..018e95c 100644
--- a/traffic_monitor_golang/common/poller/poller.go
+++ b/traffic_monitor_golang/common/poller/poller.go
@@ -120,6 +120,14 @@ func NewMonitorConfig(interval time.Duration) MonitorConfigPoller {
 func (p MonitorConfigPoller) Poll() {
 	tick := time.NewTicker(p.Interval)
 	defer tick.Stop()
+	defer func() {
+		if err := recover(); err != nil {
+			log.Errorf("MonitorConfigPoller panic: %v\n", err)
+		} else {
+			log.Errorf("MonitorConfigPoller failed without panic\n")
+		}
+		os.Exit(1) // The Monitor can't run without a MonitorConfigPoller
+	}()
 	for {
 		select {
 		case opsConfig := <-p.OpsConfigChannel:

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/463b347b/traffic_monitor_golang/traffic_monitor/manager/monitorconfig.go
----------------------------------------------------------------------
diff --git a/traffic_monitor_golang/traffic_monitor/manager/monitorconfig.go b/traffic_monitor_golang/traffic_monitor/manager/monitorconfig.go
index 82dd15c..bb1c049 100644
--- a/traffic_monitor_golang/traffic_monitor/manager/monitorconfig.go
+++ b/traffic_monitor_golang/traffic_monitor/manager/monitorconfig.go
@@ -21,6 +21,7 @@ package manager
 
 import (
 	"fmt"
+	"os"
 	"strings"
 	"sync"
 	"time"
@@ -191,6 +192,14 @@ func monitorConfigListen(
 	cfg config.Config,
 	staticAppData StaticAppData,
 ) {
+	defer func() {
+		if err := recover(); err != nil {
+			log.Errorf("MonitorConfigManager panic: %v\n", err)
+		} else {
+			log.Errorf("MonitorConfigManager failed without panic\n")
+		}
+		os.Exit(1) // The Monitor can't run without a MonitorConfigManager
+	}()
 	for monitorConfig := range monitorConfigPollChan {
 		monitorConfigTS.Set(monitorConfig)
 		healthURLs := map[string]poller.PollConfig{}