[Isocops] Build problem

DeMajistre, Bob Bob.DeMajistre at jhuapl.edu
Wed Jun 2 16:56:37 EDT 2010


This answers the question that I posted to the list earlier.
I'm going to summarize my understanding to make sure I have it right here:

>From this (and more poking around) I understand that Jacob was running
make_me_bin_overlay
And it died before it was able to delete the temporary file (used as an
argument buffer for a call to ibex_rotate from IDL). When the process
running the check tried to execute make_me_bin_overlay, it found that the
temporary file already existed in such a way that it couldn't be modified,
so it barfed all over the floor. Similarly, any other process using this
code would also barf.

A quick check of infra/idl and pipe/sci/idl shows that make_me_bin_overlay
is the only code that uses a temporary file in /tmp (or at least it's the
only one found by grep /tmp/ *.pro). So this is the only place that this is
a problem. 

It would seem to me that the way it is coded now, zombie files might not be
the only problem (e.g., if two people or processes use make_me_bin_overlay
at the same time, it can't end well). This is pretty easy to fix quickly,
but I would hesitate to do so without coordinating with others. What is the
right way to get this fixed? Is this a Ken question?

Bob


On 6/2/10 9:44 AM, "Geoff Crew" <gbc at space.mit.edu> wrote:

> This is a good example (Roland) of why putting temporary files in /tmp
> is a bad idea.
> 
> svn wasn't informed about createDFluxvsLatNorm.pro, but that actually
> isn't a problem (yet).
> 
> If you look at the log file, you'll find:
> 
>   FAIL: try_skymap.sh
>   ...
>   Leaving directory `/usr/local/ibex/sw/build-3.3/isoc/infra/idl/test'
> 
> for the devel environment, and similarly for the gbc environment.
> 
> I'll comment as an aside that the nightly I have running on my home
> machine had no trouble at all.  That is a useful, but not essential hint.
> 
> It's reproducible:
> 
>   $ cd /home/gbc/IBEX/sw/build-3.3/isoc/infra/idl/test
>   $ make check TESTS=try_skymap.sh
>   ...
>   FAIL: try_skymap.sh
>   ==================================
>   1 of 1 tests failed
>   Please report to gbc at space.mit.edu
>   ==================================
> 
>   $ ls -ltr
>   ... (lots of 3am files) ...
>   -rw-rw---- 1 gbc isoc   6323 Jun  2 09:31 sky-sample-flat.png
>   -rw-rw-r-- 1 gbc isoc    530 Jun  2 09:31 sky-sample-flat.geom.errs
>   -rw-rw---- 1 gbc isoc  15395 Jun  2 09:31 sky-sample-orig.png
>   -rw-rw---- 1 gbc isoc   1207 Jun  2 09:31 sky-sample.errs
> 
> Looking at the last one:
> 
>   ...
>   % OPENW: Error opening file. Unit: 101, File: /tmp/IDLsuxReallyBadly
>     Permission denied
>   $ l /tmp/IDLsuxReallyBadly
>   -rw-rw---- 1 jacob707 jacob707 1295 Jun  1 18:20 /tmp/IDLsuxReallyBadly
> 
> So removing the file will solve this problem.
> 
> A grep in the source directory (the parent of the test directory) suggests
> that Jacob must have done a ^C (or IDL died of its own accord) between:
> 
>   openw,lun,'/tmp/IDLsuxReallyBadly',/get
>   ...
>   file_delete,'/tmp/IDLsuxReallyBadly'
> 
> Someone IDL knowledgeable could fix this code so the temp file has the
> PID in the name.  (I.e. time to fix this sloppy code.)




More information about the Isocops mailing list