← Back to team overview

hugin-devs team mailing list archive

[Bug 679164] Re: hugin invokation of make failure on MAKEFLAGS=-j2

 

Verified in 2010.4.0. Hugin nowadays invokes "make -f ... info test all
clean", but this does not make a difference, "clean" and "all" still run
in parallell.

-- 
You received this bug notification because you are a member of Hugin
Developers, which is subscribed to Hugin.
https://bugs.launchpad.net/bugs/679164

Title:
  hugin invokation of make failure on MAKEFLAGS=-j2

Status in Hugin - Panorama Tools GUI:
  Incomplete

Bug description:
  Hello,

this has originally been reported by Helmut Grohne in <http://bugs.debian.org/525494>.
----------------------------------
nona -z PACKBITS -r ldr -m TIFF_m -o blah -i 0 /tmp/huginpto_deFg2s
nona -z PACKBITS -r ldr -m TIFF_m -o blah -i 1 /tmp/huginpto_deFg2s
nona -z PACKBITS -r ldr -m TIFF_m -o blah -i 2 /tmp/huginpto_deFg2s
rm blah0000.tif blah0001.tif blah0002.tif 
enblend --compression LZW -m 1500 -f2277x4564 -o blah.tif blah0000.tif blah0001.tif blah0002.tif 

enblend: error opening input file "blah0000.tif":

Precondition violation!
Unable to open file 'blah0000.tif'.

make: *** [blah.tif] Fehler 1
----------------------------------

Hugin stitiching breaks if MAKEFLAGS=-j2 is set. The reason is a rather simple one, during stitching hugin invokes "make all clean". With parallelisation clean is run before all is finished and this happens with three images and -j2 (xa and xb are run in parallel):
1a nona for image 1
1b nona for image 2
------
2a nona for image 3
2b rm temporary files, including the output the first nona invocations
------
3a run enblend, which fails due to missing files.

The correct fix is to only run clean after all has finished (make all && make clean). Removing MAKEFLAGS from the environment might not hurt but should be configurable.
See also <https://sourceforge.net/tracker/?func=detail&aid=2781240&group_id=77506&atid=550441>.

This is verified for 0.7.0, but afaict this should also apply to SVN HEAD (0.8.0 prerelease r3801), which invokes "make test all clean".

thanks, cu andreas