From: Florian Forster Date: Sat, 6 Nov 2010 13:26:38 +0000 (+0100) Subject: rrdtool plugin: Make sure "cache_timeout + random_variation" dosn't get negative. X-Git-Tag: collectd-5.0.0-beta0~19^2~3 X-Git-Url: https://git.verplant.org/?a=commitdiff_plain;h=f1b5b8611d87a7904c31ae4b28ea47f11f3c38b9;p=collectd.git rrdtool plugin: Make sure "cache_timeout + random_variation" dosn't get negative. --- diff --git a/src/rrdtool.c b/src/rrdtool.c index c948d1f8..b366a9c6 100644 --- a/src/rrdtool.c +++ b/src/rrdtool.c @@ -661,6 +661,14 @@ static int64_t rrd_get_random_variation (void) if (random_timeout <= 0) return (0); + /* Assure that "cache_timeout + random_variation" is never negative. */ + if (random_timeout > cache_timeout) + { + INFO ("rrdtool plugin: Adjusting \"RandomTimeout\" to %.3f seconds.", + CDTIME_T_TO_DOUBLE (cache_timeout)); + random_timeout = cache_timeout; + } + /* This seems a bit complicated, but "random_timeout" is likely larger than * RAND_MAX, so we can't simply use modulo here. */ dbl_timeout = CDTIME_T_TO_DOUBLE (random_timeout);