Hi, When generating arguments for rrd_create, the previous format string "%.1f", was rounding up the value too aggressively.
ex: for xff==0.9999 the result would be -> 1.0 (invalid value for xff!) The new format string is "%.10f", which lead up to 10 digits after the dot, enough to be close to the double type limit, and so handling correctly the previous example. --- src/utils_rrdcreate.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/src/utils_rrdcreate.c b/src/utils_rrdcreate.c index 5b13238..8547702 100644 --- a/src/utils_rrdcreate.c +++ b/src/utils_rrdcreate.c @@ -156,7 +156,7 @@ static int rra_get (char ***ret, const value_list_t *vl, /* {{{ */ if (rra_num >= rra_max) break; - status = ssnprintf (buffer, sizeof (buffer), "RRA:%s:%3.1f:%u:%u", + status = ssnprintf (buffer, sizeof (buffer), "RRA:%s:%3.10f:%u:%u", rra_types[j], cfg->xff, cdp_len, cdp_num); if ((status < 0) || ((size_t) status >= sizeof (buffer))) -- 1.7.4.1 -- François-Xavier Bourlet
0001-fix-xff-excessive-rounding.patch
Description: Binary data
_______________________________________________ collectd mailing list collectd@verplant.org http://mailman.verplant.org/listinfo/collectd