[rrd-users] RRDs seems broken on OpenBSD

Sam Umbach sumbach at gmail.com
Tue Apr 10 02:21:07 CEST 2007


On 4/9/07, jim steele <jsteele1997 at gmail.com> wrote:
> Hello,
>
> I installed rrdtool 1.2.19 on my newly-installed OpenBSD 4.0 machine,
> exactly according to the instructions provided. It compiles and
> installs fine, and the rrdtool command line program works properly,
> and produces this output:

> However, when I try to use RRDs in a perl script, I get this error:
>
> /usr/bin/perl:/usr/local/rrdtool-1.2.19/lib/librrd.so.2.9: undefined
> symbol 'art_alloc'
> lazy binding failed!
> Segmentation fault

Looks like a missing dependency.  rrdtool 1.2.x depends on libart_lgpl
(as well as libfreetype and libpng).  The first thing to try is ldd
(or the equivalent on OpenBSD).  Here is the output on my Fedora Core
6 box:
$ ldd `which rrdtool`
        linux-gate.so.1 =>  (0x00ddf000)
        librrd.so.2 => /usr/lib/librrd.so.2 (0x00212000)
        libpng12.so.0 => /usr/lib/libpng12.so.0 (0x05f1f000)
        libz.so.1 => /usr/lib/libz.so.1 (0x00d4b000)
        libart_lgpl_2.so.2 => /usr/lib/libart_lgpl_2.so.2 (0x006ea000)
        libm.so.6 => /lib/libm.so.6 (0x00d03000)
        libc.so.6 => /lib/libc.so.6 (0x00bc4000)
        libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x05e9d000)
        /lib/ld-linux.so.2 (0x001f5000)

> This is the code I am using in my perl script:
>         ($cpuavg,$xsize,$ysize) = RRDs::graph(
>                 '/var/www/htdocs/test/test.png',
>                 '--start','-900',
>                 '--end','-300',
>                 "DEF:test=$rrd_root/$host/$host_cpu.rrd:ds0:AVERAGE",
>                 "DEF:test2=$rrd_root/$host/$host_cpu.rrd:ds1:AVERAGE",
>                 'PRINT:test:AVERAGE:%lf',
>                 'PRINT:test2:AVERAGE:%lf');

Try running the equivalent rrdtool graph command at the command-line
(this may not be perfect, but it's close):
rrdtool graph
  /var/www/htdocs/test/test.png
  --start -900
  --end -300
  DEF:test=$rrd_root/$host/$host_cpu.rrd:ds0:AVERAGE
  DEF:test2=$rrd_root/$host/$host_cpu.rrd:ds1:AVERAGE
  PRINT:test:AVERAGE:%lf
  PRINT:test2:AVERAGE:%lf

If that shows the same error message, the problem lies with rrdtool, not RRDs.

-Sam



More information about the rrd-users mailing list