Module: check_mk
Branch: master
Commit: 6c69ae083ff1650d6f1c31195dc93f4cc617a9c5
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=6c69ae083ff165…
Author: Moritz Kiemer <mo(a)mathias-kettner.de>
Date: Thu Apr 4 11:30:44 2019 +0200
7392 FIX mongodb_mem: Don't crash upon zero mapped bytes
CMK-1885
Change-Id: I71a6fdd8126cc8b4cd2b6a639f41961db7d12e0f
---
.werks/7392 | 10 ++++++++
checks/mongodb_mem | 9 ++++---
.../datasets/mongodb_mem_2_regression.py | 30 ++++++++++++++++++++++
3 files changed, 45 insertions(+), 4 deletions(-)
diff --git a/.werks/7392 b/.werks/7392
new file mode 100644
index 0000000..9651d1f
--- /dev/null
+++ b/.werks/7392
@@ -0,0 +1,10 @@
+Title: mongodb_mem: Don't crash upon zero mapped bytes
+Level: 1
+Component: checks
+Compatible: compat
+Edition: cre
+Version: 1.6.0i1
+Date: 1554370210
+Class: fix
+
+
diff --git a/checks/mongodb_mem b/checks/mongodb_mem
index 337678e..64280c7 100644
--- a/checks/mongodb_mem
+++ b/checks/mongodb_mem
@@ -61,10 +61,11 @@ def check_mongodb_mem(_no_item, params, parsed):
# MongoDB doc: If virtual value is significantly larger than mapped (e.g. 3 or more
times),
# this may indicate a memory leak.
- virt_mapped_factor = parsed["virtual"] / float(parsed["mapped"])
- if virt_mapped_factor >= 3:
- textfmt = "Virtual size is %.1f times the mapped size (possible memory
leak)"
- yield 1, textfmt % virt_mapped_factor
+ if parsed.get("mapped"): # present, non-zero
+ virt_mapped_factor = parsed["virtual"] /
float(parsed["mapped"])
+ if virt_mapped_factor >= 3:
+ textfmt = "Virtual size is %.1f times the mapped size (possible memory
leak)"
+ yield 1, textfmt % virt_mapped_factor
check_info['mongodb_mem'] = {
diff --git a/tests/unit/checks/generictests/datasets/mongodb_mem_2_regression.py
b/tests/unit/checks/generictests/datasets/mongodb_mem_2_regression.py
new file mode 100644
index 0000000..05fdf14
--- /dev/null
+++ b/tests/unit/checks/generictests/datasets/mongodb_mem_2_regression.py
@@ -0,0 +1,30 @@
+# yapf: disable
+
+
+checkname = 'mongodb_mem'
+
+
+info = [[u'resident', u'79'],
+ [u'supported', u'True'],
+ [u'virtual', u'1021'],
+ [u'mappedWithJournal', u'0'],
+ [u'mapped', u'0'],
+ [u'bits', u'64'],
+ [u'note', u'fields', u'vary', u'by',
u'platform'],
+ [u'page_faults', u'9']]
+
+
+discovery = {'': [(None, {})]}
+
+
+checks = {'': [(None,
+ {},
+ [(0,
+ 'Resident usage: 79.00 MB',
+ [('process_resident_size', 82837504, None, None, None,
None)]),
+ (0,
+ 'Virtual usage: 1021.00 MB',
+ [('process_virtual_size', 1070596096, None, None, None,
None)]),
+ (0,
+ 'Mapped usage: 0.00 B',
+ [('process_mapped_size', 0, None, None, None, None)])])]}
\ No newline at end of file