Module: check_mk
Branch: master
Commit: afcfeedf9ac67360eab533dc09e57d726681d416
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=afcfeedf9ac673…
Author: Sebastian Herbord <sh(a)mathias-kettner.de>
Date: Tue Jan 26 08:39:13 2016 +0100
#2939 FIX winperf_phydisk: fixed permanent stall state if windows reports several disks
with the same drive letter
It's not completely clear what makes windows report statistics for multiple disks with
the same
letter but it was observed to happen in the wild. Most probably it is related to dynamic
disks where
one drive spans multiple physikal disks.
---
.werks/2939 | 11 +++++++++++
ChangeLog | 1 +
checks/winperf_phydisk | 10 +++++++++-
3 files changed, 21 insertions(+), 1 deletion(-)
diff --git a/.werks/2939 b/.werks/2939
new file mode 100644
index 0000000..6a4e07a
--- /dev/null
+++ b/.werks/2939
@@ -0,0 +1,11 @@
+Title: winperf_phydisk: fixed permanent stall state if windows reports several disks with
the same drive letter
+Level: 1
+Component: checks
+Compatible: compat
+Version: 1.2.7i4
+Date: 1453793706
+Class: fix
+
+It's not completely clear what makes windows report statistics for multiple disks
with the same
+letter but it was observed to happen in the wild. Most probably it is related to dynamic
disks where
+one drive spans multiple physikal disks.
diff --git a/ChangeLog b/ChangeLog
index 7b49a8c..6565f0b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -214,6 +214,7 @@
* 2953 FIX: netextreme_psu_in: Fixed discovery of Power Supply Input checks
* 2954 FIX: netextreme_temp: Fixed temperature checking
* 2955 FIX: cpu.loads: Fixed monitoring on some AIX systems
+ * 2939 FIX: winperf_phydisk: fixed permanent stall state if windows reports several
disks with the same drive letter...
Multisite:
* 2684 Added icons for downloading agent data / walks of hosts...
diff --git a/checks/winperf_phydisk b/checks/winperf_phydisk
index 91636e0..2c805ad 100644
--- a/checks/winperf_phydisk
+++ b/checks/winperf_phydisk
@@ -109,7 +109,15 @@ def winperf_phydisk_convert(info):
if current_node != "":
entries.extend(finalize_block(current_node))
current_node = line[0]
- current_disks = [ d.split('_')[-1] for d in line[3:-1] ]
+ current_disks = []
+ for disk_id in line[3:-1]:
+ disk_id = disk_id.split('_')
+
+ if disk_id[-1] not in current_disks:
+ disk_id = disk_id[-1]
+ else:
+ disk_id = "%s_%s" % (disk_id[-1], disk_id[0])
+ current_disks.append(disk_id)
elif line[1] == '-14':
current_disk_read_bytes = map(int, line[2:-2])
elif line[1] == '-12':