[rrd-developers] inconsistency in src/parsetime.c rrdtool 1.0.49 (fwd)
Haroon Rafique
haroon.rafique at utoronto.ca
Thu Oct 21 19:43:52 MEST 2004
I didn't get any bites on the rrd-users list, so trying the developers
list.
--
Haroon Rafique
<haroon.rafique at utoronto.ca>
---------- Forwarded message ----------
Date: Fri, 1 Oct 2004 10:49:46 -0400 (EDT)
From: Haroon Rafique <haroon.rafique at utoronto.ca>
To: rrd-users at list.ee.ethz.ch
Subject: [rrd-users] inconsistency in src/parsetime.c rrdtool 1.0.49
Hi,
I noticed an inconsistency in the documentation in src/parsetime.c. I
looked in the contrib directory and there is a trytime directory which
helped me isolate the anomaly a little further.
According to the at style time specification notes (from man rrdfetch),
-6m should be interpreted as -6 months. However, that's not the case
currently. It is interpreted as -6 minutes.
Try:
./contrib/trytime/trytime -s -6m -e -5m
The time now is: Fri Oct 1 10:35:12 2004
Start time was specified as: '-6m',
for me this means: Fri Oct 1 10:29:12 2004 EDT (or 1096640952 sec since
epoch)
End time was specified as: '-5m',
for me this means: Sat May 1 10:35:12 2004 EDT (or 1083422112 sec since
epoch)
Notice how the -6m got interpreted as -6 minutes. This is in direct
contrast with the following comment in src/parsetime.c
* As you may note, there is an ambiguity with respect to
* the 'm' time unit (which can mean either minutes or months).
* To cope with this, code tries to read users mind :) by applying
* certain heuristics. There are two of them:
*
* 1. If 'm' is used in context of (i.e. right after the) years,
* months, weeks, or days it is assumed to mean months, while
* in the context of hours, minutes, and seconds it means minutes.
* (e.g., in -1y6m or +3w1m 'm' means 'months', while in
* -3h20m or +5s2m 'm' means 'minutes')
*
* 2. Out of context (i.e. right after the '+' or '-' sign) the
* meaning of 'm' is guessed from the number it directly follows.
* Currently, if the number absolute value is below 25 it is assumed
* that 'm' means months, otherwise it is treated as minutes.
* (e.g., -25m == -25 minutes, while +24m == +24 months)
*
line 511 seems to be the culprit:
511 if( delta < 6 ) /* it may be some other value but in the context
512 * of RRD who needs less than 6 min deltas? */
513 sc_tokid = MONTHS;
514 else
515 sc_tokid = MINUTES;
Anyone care to comment? Its not really a bug, but I think the
documentation should be fixed in:
./contrib/trytime/README
./src/parsetime.c
./doc/rrdfetch.pod
to make it clear that:
* Currently, if the number absolute value is below 6 it is assumed
* that 'm' means months, otherwise it is treated as minutes.
* (e.g., -6m == -6 minutes, while +5m == +5 months)
I did join rrd-developers but the welcome message said rrd-developers was
only for discussing the future of rrd.
Thanks in advance,
--
Haroon Rafique
<haroon.rafique at utoronto.ca>
--
Unsubscribe mailto:rrd-developers-request at list.ee.ethz.ch?subject=unsubscribe
Help mailto:rrd-developers-request at list.ee.ethz.ch?subject=help
Archive http://www.ee.ethz.ch/~slist/rrd-developers
WebAdmin http://www.ee.ethz.ch/~slist/lsg2.cgi
More information about the rrd-developers
mailing list