traj.gs
Takashi Kagimoto
kagimoto at JAMSTEC.GO.JP
Wed Aug 8 22:05:06 EDT 2007
Dear Ted,
From: Ted Pollock <edwardp at UALBERTA.CA>
Subject: traj.gs
Date: Wed, 8 Aug 2007 23:36:33 +0200
> I am running the script traj.gs on some high temporal resolution MM5 data.
> The script has to be run 49 times per output image file. The trouble is that
> after around 5 to 6 trajectory calculations grads crashes with the following
> error: Segmentation fault (core dumped). Each trajectory calculation runs
> slower then the last so it is some kind of memory problem but the coredump
> file size is only 5.2 Mb.
>
> I have tried setting the memory limits and core dump size very high with
> little success.
I think this is a potential bug in GrADS. Looking at src/gauser.c,
you will see a counter that express how many times d(isplay)
command is spawn, pcm->pass. This counter will increase forever
unless you run c(lear) command or you draw a sort of animation.
In fact, there are thousands of d(isplay) commands in traj.gs.
So what is the problem in this counter? The counter is used to
determine a color of an object, if you do not specify it, in the
way of dcolor[pcm->pass+1], which is defined in the function of
gadspl() as to be in the following,
static int dcolor[10] = {-1, 1, 3, 7, 2, 6, 9, 10, 11, 12 };
What will happen when the counter value becomes larger than or
equal to 10. If the memory address corresponding to dcolor[n],
although it's grammatically an illegal access, is a sort of data
area that is assigned to your program (in this case, GrADS), you
may luckily draw an object with some color, where n is any negative
value or any value larger than or equal to 10. If not, you will
encounter the segmentation fault.
I attached a patch file to modify this problem for GrADS 1.9b4.
Namely you need to build executables of grads from source codes.
Hope you will successfully do it.
Best regard
----
Takashi Kagimoto
Frontier Research Center for Global Change/JAMSTEC
3173-25 Showamachi, Kanazawa-ku, Yokohama, Kanagawa 236-0001, JAPAN
(tel) +81-45-778-5516 (fax) +81-45-778-5707
More information about the gradsusr
mailing list