[rrd-users] rrd_fetch Segmentation Fault - getopts

Francois Mikus francois.mikus at transcontinental.ca
Mon Jul 8 18:03:23 MEST 2002


Hello all,

A few messages have passed by in relation to problems with the
getopts counters that are used in parsing input to different rrd-tool
functions.

I believe fixes have been made for rrd_graph.c / RRDs::graph .
Unfortunatly, I am
running into problems within the fetch function.

Just to recap, the problem is a segmentation fault on repetitive calls
from a
perl program to an rrd_* function such as graph, update or fetch. It
seems to
be caused by opt_ind and opt_err not being reset and causing the
segfault in rdd_fetch.c. This would happen at semi-random numbers of
iterations. After, approx: 150 to 400 calls.

Within rrd_tool.c which is what calls graph, fetch and update. I was
running into problems with the calls to fetch at line 512 of rrd_tool.c.


I added:

optind = 0;
opterr = 0;

Just before the call to fetch and, voila, my program would no longer
segfault when calling fetch. The same "fix" seems to have been added in
rrd_tool.c just before the call to the graph function at line 372. The
usage of optind=0 seems to be a bit controversial in the sense some
people say it should be reset to 1, other say it should be reset to 0
before calling a function that will parse arguments using getopts
library.

Anyways, if someone has run into the same problems, I hope this helps.
In any case, should the change make sense, feel free to submit the
change in cvs. I do not have access to it, nor do I intend to. ;-)

The diff was run against rrd_tool.c from the CVS snapshot of RRDtool
1.1.x dated 2002-07-04.

[root at cricket1 src]# diff ../../rrdtool-2002-07-04/src/rrd_tool.c
rrd_tool.c
511a512,513
>       optind=0;
>       opterr=0;



Francois Mikus

--
Unsubscribe mailto:rrd-users-request at list.ee.ethz.ch?subject=unsubscribe
Help        mailto:rrd-users-request at list.ee.ethz.ch?subject=help
Archive     http://www.ee.ethz.ch/~slist/rrd-users
WebAdmin    http://www.ee.ethz.ch/~slist/lsg2.cgi



More information about the rrd-users mailing list