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{}