[rrd-developers] FOUND IT! (was: rrd_graph.c: draw_horizontal_grid()...)
    Stanislav Sinyagin 
    ssinyagin at yahoo.com
       
    Mon Apr 28 19:41:15 MEST 2003
    
    
  
Finally I found it. 
This all happened because of the inconsistency between rrd_open.c 
and rrd_create.c.
As far as I understand (CVSWeb would be nice...), that's because of 
the latest Jake's changes. 
rrd_open.c reads live_head differently, depending on version:
    if(version < 3) {
            rrd->live_head = (live_head_t *)malloc(sizeof(live_head_t));
            if(rrd->live_head == NULL) {
                rrd_set_error("live_head_t malloc");
                fclose(*in_file); 
                return (-1);
            }
                fread(&rrd->live_head->last_up, sizeof(long), 1, *in_file); 
                rrd->live_head->last_up_usec = 0;
    }
    else {
            MYFREAD(rrd->live_head, live_head_t, 1)
    }
But rrd_create.c has no idea about the RRD version being created:
    fwrite(rrd->live_head,
           sizeof(live_head_t),1, rrd_file);
As a result, the simple command
  ./bin/rrdtool create /tmp/a.rrd DS:A:GAUGE:300:U:U RRA:AVERAGE:0.5:1:100 
creates Version 1 file with fullsize live_head in it. 
Then rrd_open reads in the data with some offset caused by this conflict.
Then we get the last row filled in with some arbitrary data:
./bin/rrdtool dump /tmp/a.rrd
<skipped>
<!-- 2003-04-28 19:00:00 MEST / 1051549200 --> <row><v> 
NaN </v></row>
                        <!-- 2003-04-28 19:05:00 MEST / 1051549500 --> <row><v> 
2.1113858120e-312 </v></row>
                </database>
        </rra>
</rrd>
In addition, rrd_dump always prints version=3, regardless of the file version:
    printf("\t<version> %s </version>\n",RRD_VERSION);
As far as I understand, this is not fully correct. 
Regards,
Stanislav
--
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://www.ee.ethz.ch/~slist/rrd-developers
WebAdmin    http://www.ee.ethz.ch/~slist/lsg2.cgi
    
    
More information about the rrd-developers
mailing list