Module: check_mk
Branch: master
Commit: d8672458f9021c24ee430d8e35cc4b59c909cb2a
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=d8672458f9021c…
Author: Mathias Kettner <mk(a)mathias-kettner.de>
Date: Sun Nov 13 20:52:23 2011 +0100
Livecheck: optimize stack size
---
livestatus/src/check_icmp.c | 2 +-
livestatus/src/livecheck.c | 7 +++++++
livestatus/src/livechecking.c | 7 +++++++
modules/check_mk_base.py | 4 ++++
4 files changed, 19 insertions(+), 1 deletions(-)
diff --git a/livestatus/src/check_icmp.c b/livestatus/src/check_icmp.c
index b5ee572..fd29a7c 100644
--- a/livestatus/src/check_icmp.c
+++ b/livestatus/src/check_icmp.c
@@ -808,7 +808,7 @@ finish(int sig)
if(hosts_ok >= min_hosts_alive) status = STATE_OK;
else if((hosts_ok + hosts_warn) >= min_hosts_alive) status = STATE_WARNING;
}
- do_output(0, "%s -- ", status_string[status]);
+ do_output(0, "%s - ", status_string[status]);
host = list;
while(host) {
diff --git a/livestatus/src/livecheck.c b/livestatus/src/livecheck.c
index 89131c8..693c539 100644
--- a/livestatus/src/livecheck.c
+++ b/livestatus/src/livecheck.c
@@ -112,6 +112,13 @@ int main(int argc, char **argv)
int f = open("/dev/null", O_RDONLY);
dup2(f, 0);
+ // Allow for larger stack size
+ struct rlimit rl;
+ getrlimit(RLIMIT_STACK, &rl);
+ rl.rlim_cur = 32 * 1024 * 1024;
+ rl.rlim_max = 32 * 1024 * 1024;
+ setrlimit(RLIMIT_STACK, &rl);
+
// Optimization(2):
// if Command begins / and command line does not
// contain any ', /, < or >, split by spaces and
diff --git a/livestatus/src/livechecking.c b/livestatus/src/livechecking.c
index b706cdf..534132c 100644
--- a/livestatus/src/livechecking.c
+++ b/livestatus/src/livechecking.c
@@ -25,6 +25,7 @@
#include <sys/types.h>
#include <errno.h>
+#include <sys/resource.h>
#include "nagios.h"
#include "logger.h"
@@ -182,6 +183,12 @@ void init_livecheck()
snprintf(ht, sizeof(ht), "%u", host_check_timeout);
char st[32];
snprintf(st, sizeof(st), "%u", service_check_timeout);
+ // reduce stack size in order to save memory
+ struct rlimit rl;
+ getrlimit(RLIMIT_STACK, &rl);
+ logger(LG_INFO, "Stacksize is %d", rl.rlim_cur);
+ rl.rlim_cur = 32768;
+ setrlimit(RLIMIT_STACK, &rl);
execl(g_livecheck_path, "livecheck", check_result_path, ht, st,
(char *)0);
logger(LG_INFO, "ERROR: Cannot start livecheck helper: %s",
strerror(errno));
exit(1);
diff --git a/modules/check_mk_base.py b/modules/check_mk_base.py
index 92a2646..a7a1765 100755
--- a/modules/check_mk_base.py
+++ b/modules/check_mk_base.py
@@ -673,6 +673,10 @@ def save_counters(hostname):
# This is the main check function - the central entry point to all and
# everything
def do_check(hostname, ipaddress):
+# HIRN
+ import time
+ time.sleep(30)
+
if opt_verbose:
sys.stderr.write("Check_mk version %s\n" % check_mk_version)