[rrd-developers] rrdtool: *** glibc detected *** free(): invalid pointer: 0x08056450 ***

Tobias Oetiker tobi at oetiker.ch
Wed Jun 11 23:10:49 CEST 2008


> > Didn't look, admittedly, but aren't they unsigned long int and could
> > eventually be unsigned long long int (which would potentially hurt
> > alot)?
> Yes, switching from "long" to "long long" might be one way to implement
> that. Iirc, "long long" has been added in C99 and most current compilers
> should support it, so I don't really think we will run into much trouble
> because of that. collectd [1] is using "long long"'s in a couple of
> places and it's known to compile and run on quite a few different
> architectures.

I have switched to long long in mrtg for some time now, and there
were no problems ...

> > I think that we should better avoid the trouble right on spot and try to
> > calculate the upcoming wrapping beforehand.
> Well, those values are later used as offsets into the RRD file.
> Admittedly, it should be quite uncommon to have RRD files exceeding 2GB
> but if adding support for those cases is doable in a fairly reasonable
> way, it should be done anyway.

by all means ... lets try to make 1.4 capable of going places ...

the idea would be

* cross platform data format
* microsecond resolution
* 'long time'
* large file support
* 64 bit internal pointers
* 512byte (or 4k) RRA bounderies for better access optimization


PS if you have a patch for 1.3 to tell the users off when they try
to create 'bad' rrds, bring it on :-)

Tobi Oetiker, OETIKER+PARTNER AG, Aarweg 15 CH-4600 Olten
http://it.oetiker.ch tobi at oetiker.ch ++41 62 213 9902

More information about the rrd-developers mailing list