Module: check_mk
Branch: master
Commit: 06c8a634d67aae884146c863ff09a5ec85de1f96
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=06c8a634d67aae…
Author: Lars Michelsen <lm(a)mathias-kettner.de>
Date: Wed Dec 2 11:16:50 2015 +0100
Conflicts:
ChangeLog
checks/winperf_processor
---
.werks/2849 | 10 ++++++++++
ChangeLog | 1 +
checks/winperf_processor | 13 ++++++++++---
3 files changed, 21 insertions(+), 3 deletions(-)
diff --git a/.werks/2849 b/.werks/2849
new file mode 100644
index 0000000..4eaae74
--- /dev/null
+++ b/.werks/2849
@@ -0,0 +1,10 @@
+Title: winperf_processor.util: Fixed crash in case no CPU infos are sent
+Level: 1
+Component: checks
+Class: fix
+Compatible: compat
+State: unknown
+Version: 1.2.7i4
+Date: 1449051266
+
+
diff --git a/ChangeLog b/ChangeLog
index 42ee294..c425e9a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -114,6 +114,7 @@
* 2744 FIX: waitmax now kills the whole process group and is a bit more robust.
* 2842 FIX: jolokia_metrics.perm_gen: fixed wrong calculation of perf variables warn
and crit
* 2782 FIX: cups_queues: fix crash in case user name contains spaces
+ * 2849 FIX: winperf_processor.util: Fixed crash in case no CPU infos are sent
Multisite:
* 2684 Added icons for downloading agent data / walks of hosts...
diff --git a/checks/winperf_processor b/checks/winperf_processor
index 21345a8..75152e4 100644
--- a/checks/winperf_processor
+++ b/checks/winperf_processor
@@ -35,14 +35,13 @@ def inventory_winperf_util(info):
try:
if line[0] == '-232':
return [(None, "winperf_cpu_default_levels")]
- except:
+ except IndexError:
pass
# params: levels for warn / crit in percentage
def check_winperf_util(_no_item, params, info):
if not info:
- yield 3, "Got no information from agent"
return
this_time = int(float(info[0][0]))
@@ -51,9 +50,17 @@ def check_winperf_util(_no_item, params, info):
"-96": "user",
"-94": "privileged"}
+ winperf_lines = []
+ for line in info[1:]:
+ if line[0] in what_map:
+ winperf_lines.append(line)
+
+ if not winperf_lines:
+ return
+
wrapped = False
- for line in info[1:]:
+ for line in winperf_lines:
if line[0] in what_map:
what = what_map[line[0]]
# Windows sends one counter for each CPU plus one counter that