Re: RPN workaround to decrease IFs
Tobias Oetiker <[email protected]>
| Newsgroups | gmane.comp.db.rrdtool.devel |
|---|---|
| Message-ID | <[email protected]> |
Hi Maris, thanks for the bug report ... COMPUTE is not used very often hence there might be a bunch of bugs burried there ... my guess (without looking at the code) is that the system does not properly determine that it is running out of space for storing the COMPUTE expression. (since the rrdtool data format has only a rather limited amount of space for these expressions, that state might be reached quite quickly. cheers tobi Today Maris Janis Vasilevskis wrote: > Hi, > > rrdtool create causes segmentation fault on COMPUTE with 4 IFs, but work with 3 IFs > (my environment: Centos 5.5, tested with RRD 1.4.4 and 1.4.5). > For one of possible workarounds, I should be sure about result of UNKN,0,/ - UNKN or INF? > Another ideas welcomed. > > The task is elementary: computed cpuperc=cpuused/cpuall*100 > 4 data checks required: > 1) cpuused unknown - result unknown > 2) cpuall unknown - result unknown > 3) cpuused>cpuall - bad data, result unknown > 4) cpuall=0 - result 0 > When I implement them using IF, segmentation fault occurs. > > If I remove any of 4 IFs, create works normally. > > A full sample causing segfault: > rrdtool create x1.rrd \ > DS:cpuused:DERIVE:600:0:U \ > DS:cpuall:DERIVE:600:0:U \ > DS:cpuperc:COMPUTE:cpuused,UN,UNKN,cpuall,UN,UNKN,cpuused,cpuall,GT,UNKN,cpuall,0,EQ,0,cpuused,cpuall,/,100,*,IF,IF,IF,IF \ > RRA:AVERAGE:0.5:1:60 > > Thank you, > Mahris > > _______________________________________________ > rrd-developers mailing list > [email protected] > https://lists.oetiker.ch/cgi-bin/listinfo/rrd-developers > > -- Tobi Oetiker, OETIKER+PARTNER AG, Aarweg 15 CH-4600 Olten, Switzerland http://it.oetiker.ch [email protected] ++41 62 775 9902 / sb: -9900