[rrd-users] RRDs seems broken on OpenBSD

Sam Umbach sumbach at gmail.com
Tue Apr 10 21:13:15 CEST 2007

On 4/10/07, jim steele <jsteele1997 at gmail.com> wrote:
> The command line rrdtool works properly.

Does this mean the rrdtool graph command works properly?  If your
dynamic linker performs lazy binding (and it looks like it does) then
you won't know a symbol is missing until it is accessed.

> Does this mean there is
> something wrong with RRDs? If so, is it something that I can fix or is
> it an rrdtool development issue?

I believe this is an issue with your enviroment, but it may be an
issue with the Makefile or build system.  I don't think this is a
problem with the code (RRDs or rrdtool).

> > > 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

In my copy of libart_lgpl, art_alloc is not a symbol at all; a #define
in art_misc.h aliases art_alloc to malloc.  The fact that this is
showing up as a symbol to be imported may indicate an incompatible
version of libart_lgpl.  I am using libart_lgpl-2.3.17 successfully.

One thing that might be helpful is to track down which library is
referencing art_alloc.  Try the following and report the results:

nm -D /usr/lib/librrd.so | grep art_alloc
nm -D /usr/lib/perl5/vendor_perl/5.8.5/i386-linux-thread-multi/auto/RRDs/RRDs.so
| grep art_alloc
nm -D /usr/lib/libart_lgpl_2.so | grep art_alloc

You'll have to change the path on the second command to point to your
copy of RRDs.so (it won't be in the same place on OpenBSD, and it may
depend on your Perl version).

If art_alloc is exported by your copy of libart_lgpl_2.so, then the
only other thing I can think of is a problem with the LD_LIBRARY_PATH
(or whatever the OpenBSD dynamic linker uses).  Are you running this
perl script from a web server or another user account that may have a
different LD_LIBRARY_PATH?

Thanks for hanging in there, Jim.  We'll get to the bottom of this
issue.  I am not particularly familiar with the various dynamic
linkers on Linux, BSD, OS X, and Windows, but I know they are
complicated and can cause a lot of issues when trying to create a
multi-platform build.


More information about the rrd-users mailing list