[rrd-developers] rrdtool overflow with large rpn expressions?

George Coulouris coulouri at ncbi.nlm.nih.gov
Fri Jan 13 21:42:43 MET 2006


Hello and happy new year!

It seems that large rpn expressions will overflow the rpn parser. I use 
rrdtool to aggregate data over hundreds of hosts (e.g. min/avg/max of a 
given performance metric, in this example, disk usage), and the rpn 
strings can grow quite large.

The native ability to handle *sets* of rrds would make cluster 
monitoring much easier.

Cheers,
George Coulouris
National Center for Biotechnology Information (contractor)

<---- cut here

Here's a stack dump:

#0  0xb7e0f078 in mallopt () from /lib/libc.so.6
#1  0xb7e0dbb0 in realloc () from /lib/libc.so.6
#2  0xb7fae0b3 in rpn_parse () from /usr/local/rrdtool-1.2.9/lib/librrd.so.2
#3  0xb7fa923b in rrd_parse_cdef ()
    from /usr/local/rrdtool-1.2.9/lib/librrd.so.2
#4  0xb7fa94df in rrd_graph_script ()
    from /usr/local/rrdtool-1.2.9/lib/librrd.so.2
#5  0xb7fa501c in rrd_graph () from /usr/local/rrdtool-1.2.9/lib/librrd.so.2
#6  0xb7fbec21 in HandleInputLine ()
    from /usr/local/rrdtool-1.2.9/lib/librrd.so.2
#7  0xb7fbdcf5 in main () from /usr/local/rrdtool-1.2.9/lib/librrd.so.2
#8  0xb7daf976 in __libc_start_main () from /lib/libc.so.6
#9  0x08048421 in _start ()

and some sanitized example input:

rrdtool graph mnt_per_export_per_home-86400.png DEF
:machine0_mnt_per_export_per_home_raw=/path/o_machine0/gauge_mnt_per_export_per_
home.rrd:Orca19990222:AVERAGE 
CDEF:machine0_mnt_per_export_per_home=machine0_mn
t_per_export_per_home_raw,UN,0,machine0_mnt_per_export_per_home_raw,IF 
DEF:machi
ne1_mnt_per_export_per_home_raw=/path/o_machine1/gauge_mnt_per_export_per_home.r
rd:Orca19990222:AVERAGE 
CDEF:machine1_mnt_per_export_per_home=machine1_mnt_per_
export_per_home_raw,UN,0,machine1_mnt_per_export_per_home_raw,IF 
DEF:machine2_mn
t_per_export_per_home_raw=/path/o_machine2/gauge_mnt_per_export_per_home.rrd:Orc
a19990222:AVERAGE 
CDEF:machine2_mnt_per_export_per_home=machine2_mnt_per_export
_per_home_raw,UN,0,machine2_mnt_per_export_per_home_raw,IF 
DEF:machine3_mnt_per_
export_per_home_raw=/path/o_machine3/gauge_mnt_per_export_per_home.rrd:Orca19990
222:AVERAGE 
CDEF:machine3_mnt_per_export_per_home=machine3_mnt_per_export_per_h
ome_raw,UN,0,machine3_mnt_per_export_per_home_raw,IF 
DEF:machine4_mnt_per_export
_per_home_raw=/path/o_machine4/gauge_mnt_per_export_per_home.rrd:Orca19990222:AV
ERAGE 
CDEF:machine4_mnt_per_export_per_home=machine4_mnt_per_export_per_home_ra
w,UN,0,machine4_mnt_per_export_per_home_raw,IF 
DEF:machine5_mnt_per_export_per_h
ome_raw=/path/o_machine5/gauge_mnt_per_export_per_home.rrd:Orca19990222:AVERAGE
 
CDEF:machine5_mnt_per_export_per_home=machine5_mnt_per_export_per_home_raw,UN,0
,machine5_mnt_per_export_per_home_raw,IF 
DEF:machine6_mnt_per_export_per_home_ra
w=/path/o_machine6/gauge_mnt_per_export_per_home.rrd:Orca19990222:AVERAGE 
  CDEF:
machine6_mnt_per_export_per_home=machine6_mnt_per_export_per_home_raw,UN,0,machi
ne6_mnt_per_export_per_home_raw,IF 
DEF:machine7_mnt_per_export_per_home_raw=/pat
h/o_machine7/gauge_mnt_per_export_per_home.rrd:Orca19990222:AVERAGE 
CDEF:machin
e7_mnt_per_export_per_home=machine7_mnt_per_export_per_home_raw,UN,0,machine7_mn
t_per_export_per_home_raw,IF 
DEF:machine8_mnt_per_export_per_home_raw=/path/o_ma
chine8/gauge_mnt_per_export_per_home.rrd:Orca19990222:AVERAGE 
CDEF:machine8_mnt
_per_export_per_home=machine8_mnt_per_export_per_home_raw,UN,0,machine8_mnt_per_
export_per_home_raw,IF 
CDEF:max_mnt_per_export_per_home=machine0_mnt_per_export_
per_home,machine1_mnt_per_export_per_home,MAX,machine2_mnt_per_export_per_home,M
AX,machine3_mnt_per_export_per_home,MAX,machine4_mnt_per_export_per_home,MAX,mac
hine5_mnt_per_export_per_home,MAX,machine6_mnt_per_export_per_home,MAX,machine7_
mnt_per_export_per_home,MAX,machine8_mnt_per_export_per_home,MAX 
CDEF:avg_mnt_pe
r_export_per_home=machine0_mnt_per_export_per_home,machine1_mnt_per_export_per_h
ome,+,machine2_mnt_per_export_per_home,+,machine3_mnt_per_export_per_home,+,mach
ine4_mnt_per_export_per_home,+,machine5_mnt_per_export_per_home,+,machine6_mnt_p
er_export_per_home,+,machine7_mnt_per_export_per_home,+,machine8_mnt_per_export_
per_home,+,9,/ 
CDEF:min_mnt_per_export_per_home=machine0_mnt_per_export_per_home
,machine1_mnt_per_export_per_home,MIN,machine2_mnt_per_export_per_home,MIN,machi
ne3_mnt_per_export_per_home,MIN,machine4_mnt_per_export_per_home,MIN,machine5_mn
t_per_export_per_home,MIN,machine6_mnt_per_export_per_home,MIN,machine7_mnt_per_
export_per_home,MIN,machine8_mnt_per_export_per_home,MIN  -s -86400 -e 
-3600 --n
o-legend --title 'export home' 
LINE1:min_mnt_per_export_per_home#0000ff:min_mnt_
per_export_per_home 
LINE2:avg_mnt_per_export_per_home#010101:avg_mnt_per_export_
per_home 
LINE1:max_mnt_per_export_per_home#ff0000:max_mnt_per_export_per_home

--
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://lists.ee.ethz.ch/rrd-developers
WebAdmin    http://lists.ee.ethz.ch/lsg2.cgi



More information about the rrd-developers mailing list