A memory leak in getResults from AMT CLT? Nope.

I had a strange error popping up. Every time I tried to use the getResults.sh script outside of a project in the samples directory, an unidentified process would eat up all of the memory on my machine. Worse, when I used strace, the process seemed to be just hanging there.

I tried a bunch of things:

  1. Moving the directory back to samples. No dice.
  2. Switching from OpenJDK to Sun’s JDK. Since the CLT doesn’t support 1.6, I followed the directions here to install sun-java5-jdk and set JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun/jre/
  3. Taking another close look at the script.

Here an excerpt from the the getResults.sh script:

JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun/jre/
export JAVA_HOME
DIR=`pwd`
./getResults.sh $1 $2 $3 $4 $5 $6 $7 $8 $9 -successfile $DIR/rate-3-4-36.success -outputfile $DIR/rate-3-4-36.results
cd $DIR

Notice that I forgot to change to the bin directory of the CLT. (I don’t know why, but you seemingly have to be in the bin directory for the CLT to work properly. I haven’t messed with it much yet; I might have screwed up my path somehow when I first tried.)

If you add the line:

cd ~/workspace/aws-mturk-clt-*/bin

It works. My script was recursing on itself. That’s what was eating the memory. And it didn’t show up in top because each invocation of the script used up only a very little bit of the memory. Man I feel dumb.

I only post this in case someone else has these troubles.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s