← Back to team overview

hugin-devs team mailing list archive

[Bug 695009] [NEW] segfault in enblend/vigra

 

Public bug reported:

Recently I discovered a segfault in enblend. It is a fairly big project,
so i can not *simply* provide input images (7.4 GB) or the whole core
dump (4.8 GB), but here's a stacktrace:

#0  0x00000000004dc928 in void vigra::read_bands<vigra::Diff2D, vigra::MultiImageVectorMaskAccessor4<vigra::BasicImageIterator<vigra::RGBValue<unsigned char, 0u, 1u, 2u>, vigra::RGBValue<unsigned char, 0u, 1u, 2u>**>, vigra::RGBAccessor<vigra::RGBValue<unsigned char, 0u, 1u, 2u> >, vigra::BasicImageIterator<unsigned char, unsigned char**>, vigra_ext::WriteFunctorAccessor<vigra::Threshold<unsigned char, unsigned char>, vigra::StandardValueAccessor<unsigned char> > >, unsigned char>(vigra::Decoder*, vigra::Diff2D, vigra::MultiImageVectorMaskAccessor4<vigra::BasicImageIterator<vigra::RGBValue<unsigned char, 0u, 1u, 2u>, vigra::RGBValue<unsigned char, 0u, 1u, 2u>**>, vigra::RGBAccessor<vigra::RGBValue<unsigned char, 0u, 1u, 2u> >, vigra::BasicImageIterator<unsigned char, unsigned char**>, vigra_ext::WriteFunctorAccessor<vigra::Threshold<unsigned char, unsigned char>, vigra::StandardValueAccessor<unsigned char> > >, unsigned char) ()
#1  0x0000000000522de8 in void vigra::importVectorImage<vigra::Diff2D, vigra::MultiImageVectorMaskAccessor4<vigra::BasicImageIterator<vigra::RGBValue<unsigned char, 0u, 1u, 2u>, vigra::RGBValue<unsigned char, 0u, 1u, 2u>**>, vigra::RGBAccessor<vigra::RGBValue<unsigned char, 0u, 1u, 2u> >, vigra::BasicImageIterator<unsigned char, unsigned char**>, vigra_ext::WriteFunctorAccessor<vigra::Threshold<unsigned char, unsigned char>, vigra::StandardValueAccessor<unsigned char> > > >(vigra::ImageImportInfo const&, vigra::Diff2D, vigra::MultiImageVectorMaskAccessor4<vigra::BasicImageIterator<vigra::RGBValue<unsigned char, 0u, 1u, 2u>, vigra::RGBValue<unsigned char, 0u, 1u, 2u>**>, vigra::RGBAccessor<vigra::RGBValue<unsigned char, 0u, 1u, 2u> >, vigra::BasicImageIterator<unsigned char, unsigned char**>, vigra_ext::WriteFunctorAccessor<vigra::Threshold<unsigned char, unsigned char>, vigra::StandardValueAccessor<unsigned char> > >) ()
#2  0x0000000000523663 in void vigra::importImageAlpha<vigra::BasicImageIterator<vigra::RGBValue<unsigned char, 0u, 1u, 2u>, vigra::RGBValue<unsigned char, 0u, 1u, 2u>**>, vigra::RGBAccessor<vigra::RGBValue<unsigned char, 0u, 1u, 2u> >, vigra::BasicImageIterator<unsigned char, unsigned char**>, vigra_ext::WriteFunctorAccessor<vigra::Threshold<unsigned char, unsigned char>, vigra::StandardValueAccessor<unsigned char> > >(vigra::ImageImportInfo const&, std::pair<vigra::BasicImageIterator<vigra::RGBValue<unsigned char, 0u, 1u, 2u>, vigra::RGBValue<unsigned char, 0u, 1u, 2u>**>, vigra::RGBAccessor<vigra::RGBValue<unsigned char, 0u, 1u, 2u> > >, std::pair<vigra::BasicImageIterator<unsigned char, unsigned char**>, vigra_ext::WriteFunctorAccessor<vigra::Threshold<unsigned char, unsigned char>, vigra::StandardValueAccessor<unsigned char> > >) ()
#3  0x0000000000523815 in void enblend::import<vigra::BasicImageIterator<vigra::RGBValue<unsigned char, 0u, 1u, 2u>, vigra::RGBValue<unsigned char, 0u, 1u, 2u>**>, vigra::RGBAccessor<vigra::RGBValue<unsigned char, 0u, 1u, 2u> >, vigra::BasicImageIterator<unsigned char, unsigned char**>, vigra::StandardValueAccessor<unsigned char> >(vigra::ImageImportInfo const&, std::pair<vigra::BasicImageIterator<vigra::RGBValue<unsigned char, 0u, 1u, 2u>, vigra::RGBValue<unsigned char, 0u, 1u, 2u>**>, vigra::RGBAccessor<vigra::RGBValue<unsigned char, 0u, 1u, 2u> > > const&, std::pair<vigra::BasicImageIterator<unsigned char, unsigned char**>, vigra::StandardValueAccessor<unsigned char> > const&) ()
#4  0x000000000055da47 in std::pair<vigra::BasicImage<vigra::RGBValue<unsigned char, 0u, 1u, 2u>, std::allocator<vigra::RGBValue<unsigned char, 0u, 1u, 2u> > >*, vigra::BasicImage<unsigned char, std::allocator<unsigned char> >*> enblend::assemble<vigra::BasicImage<vigra::RGBValue<unsigned char, 0u, 1u, 2u>, std::allocator<vigra::RGBValue<unsigned char, 0u, 1u, 2u> > >, vigra::BasicImage<unsigned char, std::allocator<unsigned char> > >(std::list<vigra::ImageImportInfo*, std::allocator<vigra::ImageImportInfo*> >&, vigra::Rect2D&, vigra::Rect2D&) ()
#5  0x00000000005c1119 in void enblend::enblendMain<vigra::RGBValue<unsigned char, 0u, 1u, 2u> >(std::list<std::string, std::allocator<std::string> > const&, std::list<vigra::ImageImportInfo*, std::allocator<vigra::ImageImportInfo*> > const&, vigra::ImageExportInfo&, vigra::Rect2D&) ()
#6  0x0000000000476396 in main ()

enblend version is
enblend 4.1-cd12da20db1a

The crash occurs in the very beginning of the stitching process:
enblend --compression=DEFLATE -l 29 -f181172x30821+8973+7238 -o gigapixeltest.tif gigapixeltest0000.tif  [...] gigapixeltest0066.tif
enblend: info: loading next image: gigapixeltest0000.tif 1/1
make: *** [gigapixeltest.tif] Segmentation fault

If necessary, I can also upload the files somewhere. Let me know what I
can do.

** Affects: enblend
     Importance: Undecided
         Status: New

** Description changed:

  Recently I discovered a segfault in enblend. It is a fairly big project,
  so i can not *simply* provide input images (7.4 GB) or the whole core
  dump (4.8 GB), but here's a stacktrace:
  
  #0  0x00000000004dc928 in void vigra::read_bands<vigra::Diff2D, vigra::MultiImageVectorMaskAccessor4<vigra::BasicImageIterator<vigra::RGBValue<unsigned char, 0u, 1u, 2u>, vigra::RGBValue<unsigned char, 0u, 1u, 2u>**>, vigra::RGBAccessor<vigra::RGBValue<unsigned char, 0u, 1u, 2u> >, vigra::BasicImageIterator<unsigned char, unsigned char**>, vigra_ext::WriteFunctorAccessor<vigra::Threshold<unsigned char, unsigned char>, vigra::StandardValueAccessor<unsigned char> > >, unsigned char>(vigra::Decoder*, vigra::Diff2D, vigra::MultiImageVectorMaskAccessor4<vigra::BasicImageIterator<vigra::RGBValue<unsigned char, 0u, 1u, 2u>, vigra::RGBValue<unsigned char, 0u, 1u, 2u>**>, vigra::RGBAccessor<vigra::RGBValue<unsigned char, 0u, 1u, 2u> >, vigra::BasicImageIterator<unsigned char, unsigned char**>, vigra_ext::WriteFunctorAccessor<vigra::Threshold<unsigned char, unsigned char>, vigra::StandardValueAccessor<unsigned char> > >, unsigned char) ()
  #1  0x0000000000522de8 in void vigra::importVectorImage<vigra::Diff2D, vigra::MultiImageVectorMaskAccessor4<vigra::BasicImageIterator<vigra::RGBValue<unsigned char, 0u, 1u, 2u>, vigra::RGBValue<unsigned char, 0u, 1u, 2u>**>, vigra::RGBAccessor<vigra::RGBValue<unsigned char, 0u, 1u, 2u> >, vigra::BasicImageIterator<unsigned char, unsigned char**>, vigra_ext::WriteFunctorAccessor<vigra::Threshold<unsigned char, unsigned char>, vigra::StandardValueAccessor<unsigned char> > > >(vigra::ImageImportInfo const&, vigra::Diff2D, vigra::MultiImageVectorMaskAccessor4<vigra::BasicImageIterator<vigra::RGBValue<unsigned char, 0u, 1u, 2u>, vigra::RGBValue<unsigned char, 0u, 1u, 2u>**>, vigra::RGBAccessor<vigra::RGBValue<unsigned char, 0u, 1u, 2u> >, vigra::BasicImageIterator<unsigned char, unsigned char**>, vigra_ext::WriteFunctorAccessor<vigra::Threshold<unsigned char, unsigned char>, vigra::StandardValueAccessor<unsigned char> > >) ()
  #2  0x0000000000523663 in void vigra::importImageAlpha<vigra::BasicImageIterator<vigra::RGBValue<unsigned char, 0u, 1u, 2u>, vigra::RGBValue<unsigned char, 0u, 1u, 2u>**>, vigra::RGBAccessor<vigra::RGBValue<unsigned char, 0u, 1u, 2u> >, vigra::BasicImageIterator<unsigned char, unsigned char**>, vigra_ext::WriteFunctorAccessor<vigra::Threshold<unsigned char, unsigned char>, vigra::StandardValueAccessor<unsigned char> > >(vigra::ImageImportInfo const&, std::pair<vigra::BasicImageIterator<vigra::RGBValue<unsigned char, 0u, 1u, 2u>, vigra::RGBValue<unsigned char, 0u, 1u, 2u>**>, vigra::RGBAccessor<vigra::RGBValue<unsigned char, 0u, 1u, 2u> > >, std::pair<vigra::BasicImageIterator<unsigned char, unsigned char**>, vigra_ext::WriteFunctorAccessor<vigra::Threshold<unsigned char, unsigned char>, vigra::StandardValueAccessor<unsigned char> > >) ()
  #3  0x0000000000523815 in void enblend::import<vigra::BasicImageIterator<vigra::RGBValue<unsigned char, 0u, 1u, 2u>, vigra::RGBValue<unsigned char, 0u, 1u, 2u>**>, vigra::RGBAccessor<vigra::RGBValue<unsigned char, 0u, 1u, 2u> >, vigra::BasicImageIterator<unsigned char, unsigned char**>, vigra::StandardValueAccessor<unsigned char> >(vigra::ImageImportInfo const&, std::pair<vigra::BasicImageIterator<vigra::RGBValue<unsigned char, 0u, 1u, 2u>, vigra::RGBValue<unsigned char, 0u, 1u, 2u>**>, vigra::RGBAccessor<vigra::RGBValue<unsigned char, 0u, 1u, 2u> > > const&, std::pair<vigra::BasicImageIterator<unsigned char, unsigned char**>, vigra::StandardValueAccessor<unsigned char> > const&) ()
  #4  0x000000000055da47 in std::pair<vigra::BasicImage<vigra::RGBValue<unsigned char, 0u, 1u, 2u>, std::allocator<vigra::RGBValue<unsigned char, 0u, 1u, 2u> > >*, vigra::BasicImage<unsigned char, std::allocator<unsigned char> >*> enblend::assemble<vigra::BasicImage<vigra::RGBValue<unsigned char, 0u, 1u, 2u>, std::allocator<vigra::RGBValue<unsigned char, 0u, 1u, 2u> > >, vigra::BasicImage<unsigned char, std::allocator<unsigned char> > >(std::list<vigra::ImageImportInfo*, std::allocator<vigra::ImageImportInfo*> >&, vigra::Rect2D&, vigra::Rect2D&) ()
  #5  0x00000000005c1119 in void enblend::enblendMain<vigra::RGBValue<unsigned char, 0u, 1u, 2u> >(std::list<std::string, std::allocator<std::string> > const&, std::list<vigra::ImageImportInfo*, std::allocator<vigra::ImageImportInfo*> > const&, vigra::ImageExportInfo&, vigra::Rect2D&) ()
- #6  0x0000000000476396 in main () 
+ #6  0x0000000000476396 in main ()
  
  enblend version is
  enblend 4.1-cd12da20db1a
  
+ The crash occurs in the very beginning of the stitching process:
+ enblend --compression=DEFLATE -l 29 -f181172x30821+8973+7238 -o gigapixeltest.tif gigapixeltest0000.tif  [...] gigapixeltest0066.tif
+ enblend: info: loading next image: gigapixeltest0000.tif 1/1
+ make: *** [gigapixeltest.tif] Segmentation fault
  
- If necessary, I can also upload the files somewhere. Let me know what I can do.
+ If necessary, I can also upload the files somewhere. Let me know what I
+ can do.

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

Title:
  segfault in enblend/vigra

Status in Enblend:
  New

Bug description:
  Recently I discovered a segfault in enblend. It is a fairly big project, so i can not *simply* provide input images (7.4 GB) or the whole core dump (4.8 GB), but here's a stacktrace:

#0  0x00000000004dc928 in void vigra::read_bands<vigra::Diff2D, vigra::MultiImageVectorMaskAccessor4<vigra::BasicImageIterator<vigra::RGBValue<unsigned char, 0u, 1u, 2u>, vigra::RGBValue<unsigned char, 0u, 1u, 2u>**>, vigra::RGBAccessor<vigra::RGBValue<unsigned char, 0u, 1u, 2u> >, vigra::BasicImageIterator<unsigned char, unsigned char**>, vigra_ext::WriteFunctorAccessor<vigra::Threshold<unsigned char, unsigned char>, vigra::StandardValueAccessor<unsigned char> > >, unsigned char>(vigra::Decoder*, vigra::Diff2D, vigra::MultiImageVectorMaskAccessor4<vigra::BasicImageIterator<vigra::RGBValue<unsigned char, 0u, 1u, 2u>, vigra::RGBValue<unsigned char, 0u, 1u, 2u>**>, vigra::RGBAccessor<vigra::RGBValue<unsigned char, 0u, 1u, 2u> >, vigra::BasicImageIterator<unsigned char, unsigned char**>, vigra_ext::WriteFunctorAccessor<vigra::Threshold<unsigned char, unsigned char>, vigra::StandardValueAccessor<unsigned char> > >, unsigned char) ()
#1  0x0000000000522de8 in void vigra::importVectorImage<vigra::Diff2D, vigra::MultiImageVectorMaskAccessor4<vigra::BasicImageIterator<vigra::RGBValue<unsigned char, 0u, 1u, 2u>, vigra::RGBValue<unsigned char, 0u, 1u, 2u>**>, vigra::RGBAccessor<vigra::RGBValue<unsigned char, 0u, 1u, 2u> >, vigra::BasicImageIterator<unsigned char, unsigned char**>, vigra_ext::WriteFunctorAccessor<vigra::Threshold<unsigned char, unsigned char>, vigra::StandardValueAccessor<unsigned char> > > >(vigra::ImageImportInfo const&, vigra::Diff2D, vigra::MultiImageVectorMaskAccessor4<vigra::BasicImageIterator<vigra::RGBValue<unsigned char, 0u, 1u, 2u>, vigra::RGBValue<unsigned char, 0u, 1u, 2u>**>, vigra::RGBAccessor<vigra::RGBValue<unsigned char, 0u, 1u, 2u> >, vigra::BasicImageIterator<unsigned char, unsigned char**>, vigra_ext::WriteFunctorAccessor<vigra::Threshold<unsigned char, unsigned char>, vigra::StandardValueAccessor<unsigned char> > >) ()
#2  0x0000000000523663 in void vigra::importImageAlpha<vigra::BasicImageIterator<vigra::RGBValue<unsigned char, 0u, 1u, 2u>, vigra::RGBValue<unsigned char, 0u, 1u, 2u>**>, vigra::RGBAccessor<vigra::RGBValue<unsigned char, 0u, 1u, 2u> >, vigra::BasicImageIterator<unsigned char, unsigned char**>, vigra_ext::WriteFunctorAccessor<vigra::Threshold<unsigned char, unsigned char>, vigra::StandardValueAccessor<unsigned char> > >(vigra::ImageImportInfo const&, std::pair<vigra::BasicImageIterator<vigra::RGBValue<unsigned char, 0u, 1u, 2u>, vigra::RGBValue<unsigned char, 0u, 1u, 2u>**>, vigra::RGBAccessor<vigra::RGBValue<unsigned char, 0u, 1u, 2u> > >, std::pair<vigra::BasicImageIterator<unsigned char, unsigned char**>, vigra_ext::WriteFunctorAccessor<vigra::Threshold<unsigned char, unsigned char>, vigra::StandardValueAccessor<unsigned char> > >) ()
#3  0x0000000000523815 in void enblend::import<vigra::BasicImageIterator<vigra::RGBValue<unsigned char, 0u, 1u, 2u>, vigra::RGBValue<unsigned char, 0u, 1u, 2u>**>, vigra::RGBAccessor<vigra::RGBValue<unsigned char, 0u, 1u, 2u> >, vigra::BasicImageIterator<unsigned char, unsigned char**>, vigra::StandardValueAccessor<unsigned char> >(vigra::ImageImportInfo const&, std::pair<vigra::BasicImageIterator<vigra::RGBValue<unsigned char, 0u, 1u, 2u>, vigra::RGBValue<unsigned char, 0u, 1u, 2u>**>, vigra::RGBAccessor<vigra::RGBValue<unsigned char, 0u, 1u, 2u> > > const&, std::pair<vigra::BasicImageIterator<unsigned char, unsigned char**>, vigra::StandardValueAccessor<unsigned char> > const&) ()
#4  0x000000000055da47 in std::pair<vigra::BasicImage<vigra::RGBValue<unsigned char, 0u, 1u, 2u>, std::allocator<vigra::RGBValue<unsigned char, 0u, 1u, 2u> > >*, vigra::BasicImage<unsigned char, std::allocator<unsigned char> >*> enblend::assemble<vigra::BasicImage<vigra::RGBValue<unsigned char, 0u, 1u, 2u>, std::allocator<vigra::RGBValue<unsigned char, 0u, 1u, 2u> > >, vigra::BasicImage<unsigned char, std::allocator<unsigned char> > >(std::list<vigra::ImageImportInfo*, std::allocator<vigra::ImageImportInfo*> >&, vigra::Rect2D&, vigra::Rect2D&) ()
#5  0x00000000005c1119 in void enblend::enblendMain<vigra::RGBValue<unsigned char, 0u, 1u, 2u> >(std::list<std::string, std::allocator<std::string> > const&, std::list<vigra::ImageImportInfo*, std::allocator<vigra::ImageImportInfo*> > const&, vigra::ImageExportInfo&, vigra::Rect2D&) ()
#6  0x0000000000476396 in main ()

enblend version is
enblend 4.1-cd12da20db1a

The crash occurs in the very beginning of the stitching process:
enblend --compression=DEFLATE -l 29 -f181172x30821+8973+7238 -o gigapixeltest.tif gigapixeltest0000.tif  [...] gigapixeltest0066.tif
enblend: info: loading next image: gigapixeltest0000.tif 1/1
make: *** [gigapixeltest.tif] Segmentation fault

If necessary, I can also upload the files somewhere. Let me know what I can do.







Follow ups

References