[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