[rrd-developers] Re: Strange lockup issue
Bertelson, Tom (CAP, CARD)
Tom.Bertelson at gecapital.com
Wed Dec 5 23:29:52 MET 2001
I too had a lockup problem, under Solaris. The problem appeared when the
end time was greater that the last datapoint in the file. Do the problems
go away if you decrease the end time?
Here's my fix, along with another that fixes calling the rrd_* routines
multiple times within a C program. Hope this helps.
--- src/rrd_create.c.orig Thu Feb 22 06:02:47 2001
+++ src/rrd_create.c Thu Nov 29 12:42:13 2001
@@ -16,6 +16,8 @@
struct time_value last_up_tv;
char *parsetime_error = NULL;
+
+ optind = 0;
/* init last_up */
last_up = time(NULL)-10;
/* init rrd clean */
--- src/rrd_fetch.c.orig Thu Feb 22 06:02:47 2001
+++ src/rrd_fetch.c Thu Nov 29 12:41:07 2001
@@ -31,6 +31,8 @@
struct time_value start_tv, end_tv;
char *parsetime_error = NULL;
+ optind = 0;
+
/* init start and end time */
parsetime("end-24h", &start_tv);
parsetime("now", &end_tv);
@@ -254,8 +256,8 @@
- (rrd.live_head->last_up % *step));
rra_start_time = (rra_end_time
- ( *step * (rrd.rra_def[chosen_rra].row_cnt-1)));
- start_offset = (*start - rra_start_time) / (long)*step;
- end_offset = (rra_end_time - *end ) / (long)*step;
+ start_offset = (long)(*start - rra_start_time) / (long)*step;
+ end_offset = (long)(rra_end_time - *end ) / (long)*step;
#ifdef DEBUG
fprintf(stderr,"rra_start %lu, rra_end %lu, start_off %li, end_off
%li\n",
rra_start_time,rra_end_time,start_offset,end_offset);
--- src/rrd_graph.c.orig Thu Feb 22 06:02:47 2001
+++ src/rrd_graph.c Thu Nov 29 12:41:07 2001
@@ -2799,6 +2799,8 @@
char *parsetime_error = NULL;
int stroff;
+ optind = 0;
+
(*prdata)=NULL;
parsetime("end-24h", &start_tv);
--- src/rrd_restore.c.orig Thu Feb 22 06:02:48 2001
+++ src/rrd_restore.c Thu Nov 29 12:41:27 2001
@@ -330,6 +330,8 @@
char *buf;
char rc = 0;
+ optind = 0;
+
/* init rrd clean */
rrd_init(&rrd);
if (argc<3) {
--- src/rrd_tune.c.orig Thu Feb 22 06:02:48 2001
+++ src/rrd_tune.c Thu Nov 29 12:41:27 2001
@@ -24,6 +24,8 @@
double max;
char dst[DST_SIZE];
+ optind = 0;
+
if(rrd_open(argv[1],&rrd_file,&rrd, RRD_READWRITE)==-1){
return -1;
--- src/rrd_update.c.orig Thu Feb 22 06:02:48 2001
+++ src/rrd_update.c Thu Nov 29 12:43:13 2001
@@ -94,6 +94,8 @@
char *template = NULL;
+ optind = 0;
+
while (1) {
static struct option long_options[] =
{
---
Tom Bertelson "Any sufficient advanced technlogy
GE Card Services is indistinguishable from magic."
Tom.Bertelson at gecapital.com -- Arthur C. Clarke
--
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