[rrd-developers] [Ganglia-developers] Integrating rrdcached with Ganglia

kevin brintnall kbrint at rufus.net
Fri Oct 3 16:27:26 CEST 2008


On Mon, Sep 29, 2008 at 04:34:42PM +0100, Daniel.Pocock at barclayscapital.com wrote:
> I've upgraded to 1.3.3 (the patch applies with 1 reject, which is only
> the copyright message) and installed the debug symbols and found that
> each time this error occurs, rrd_update is trying to update an RRD file
> that is smaller than the expected size (i.e. smaller than the other RRD
> files in the same directory)

Dan, you should toss the original patch that you downloaded from me and
use the SVN trunk.  There have been significant developments since then.

> > (gdb) bt
> > #0  0x0000003312077b60 in memcpy () from /lib64/libc.so.6
> > #1  0x00002aaaaaae1633 in rrd_write () from /usr/lib64/librrd.so.4
> > #2  0x00002aaaaaae5e10 in rrd_lock () from /usr/lib64/librrd.so.4
> > #3  0x00002aaaaaae69e2 in rrd_lock () from /usr/lib64/librrd.so.4
> > #4  0x00002aaaaaae7cfb in rrd_lock () from /usr/lib64/librrd.so.4
> > #5  0x0000000000405113 in ?? ()
> > #6  0x00000033134062f7 in start_thread () from /lib64/libpthread.so.0
> > #7  0x00000033120ce85d in clone () from /lib64/libc.so.6

> I've upgraded to 1.3.3 (the patch applies with 1 reject, which is only
> the copyright message) and installed the debug symbols and found that
> each time this error occurs, rrd_update is trying to update an RRD file
> that is smaller than the expected size (i.e. smaller than the other RRD
> files in the same directory)

This is the key piece of info here.. 

This is not a bug in the rrdcached itself.  The root of the issue is that
we mmap() only as large as the file is..  However, we write to MMAP'ed
memory based on how large the file SHOULD be (header+ ds_cnt*rra_cnt data
items).  When we extend past the MMAP'ed region, all bets are off..

I'm working on a patch for it.

-- 
 kevin brintnall =~ /kbrint at rufus.net/



More information about the rrd-developers mailing list