[Insight-developers] BillsBasement Nightly Failing Test

Bradley Lowekamp blowekamp at mail.nih.gov
Mon Feb 23 23:19:46 EST 2009


I think that indexMin and indexMax still need to be nDims size.?

I agree that it make since to make this type of comparison part of the  
ImageIORegion API. As that is the only reason for this  issue it to  
remove padded 1's at the end.


On Feb 23, 2009, at 11:10 PM, Luis Ibanez wrote:

> Hi Brad,
>
> The changes have been committed.
>
> Here is the log & diff
>
> http://public.kitware.com/cgi-bin/viewcvs.cgi/Code/IO/itkMetaImageIO.cxx?root=Insight&r1=1.93&r2=1.94&sortby=date
>
> --------------------------------------------------------------------------------------------
> BUG: When comparing the largestRegion against the m_ImageIORegion,  
> the minimum
>      of the dimensions of the two should be used. The reason is that  
> it should
>      possible to read a 2D image into a 3D image, (as a 1-slice 3D  
> image) and
>      it should be possible to read a 3D image into a 2D image by  
> taking only
>      the first slice. If we don't use the min dimension between the  
> largestRegion
>      and the m_ImageIORegion, one of the two is going to try to  
> access elements
>      out of bound during their comparison of index components and  
> sizes.
> --------------------------------------------------------------------------------------------
>
> It almost look like this comparison & assignment
> should be part of the API of the ImageIORegion...
>
>
>       Luis
>
>
> -------------------------------------------------------------------------------------------------------
> On Mon, Feb 23, 2009 at 10:53 PM, Luis Ibanez  
> <luis.ibanez at kitware.com> wrote:
> Hi Brad,
>
> Thanks for looking at this.
>
> I think the problem is that this expression should be using the  
> minimum of both dimensions
> between the largestRegion and the m_ImageIORegion.
>
>
> I have the following local diff, that seems to fix the problem.
> I'm running some more test before committing it.
>
>
>
> Index: itkMetaImageIO.cxx
> ===================================================================
> RCS file: /cvsroot/Insight/Insight/Code/IO/itkMetaImageIO.cxx,v
> retrieving revision 1.93
> diff -r1.93 itkMetaImageIO.cxx
> 832,833c832,836
> <   // Pass the IO region to the MetaImage library
> <   unsigned int nDims = this->GetNumberOfDimensions();
> ---
> >   const unsigned int nDims = this->GetNumberOfDimensions();
> >   const unsigned int ioDims = this->m_IORegion.GetImageDimension();
> >
> >   const unsigned int minDimension = ( nDims > ioDims ) ? ioDims :  
> nDims;
> >
> 837,838c840,841
> <   ImageIORegion largestRegion(m_IORegion);
> <   for(unsigned int i=0; i<nDims; i++)
> ---
> >   ImageIORegion largestRegion(minDimension);
> >   for(unsigned int i=0; i<minDimension; i++)
> 846,848c849,851
> <     int* indexMin = new int[nDims];
> <     int* indexMax = new int[nDims];
> <     for(unsigned int i=0;i<nDims;i++)
> ---
> >     int* indexMin = new int[minDimension];
> >     int* indexMax = new int[minDimension];
> >     for(unsigned int i=0;i<minDimension;i++)
> -------------------------------------------------------------
>
> Similar minDimension code has been used in
> itkImageIORegion.h in lines 299-308
>
>
>
>     Luis
>
>
> --------------------------------------------------------
>
> On Mon, Feb 23, 2009 at 10:42 PM, Bradley Lowekamp <blowekamp at mail.nih.gov 
> > wrote:
> Hello,
>
> I am glad this was tracked down! Sorry it was my fault :(
>
> Giving it a quick look I see a small problem with this change:
>
> http://public.kitware.com/cgi-bin/viewcvs.cgi/Code/IO/itkMetaImageIO.cxx?root=Insight&r1=1.92&r2=1.93
>
> nDim and the dimensionality of m_RegionIO may not match. Not sure  
> why it'd be failing since the 30th if this was the case. I'll  have  
> to give this some more thought tomorrow. When those dimensions don't  
> match is a tricky case....
>
> Brad
>
> On Feb 23, 2009, at 10:04 PM, Luis Ibanez wrote:
>
>> Hi Brad,
>>
>> This error seems to be related to the changes in MetaImage.
>>
>> Here is the backtrace that I get from GDB:
>>
>>
>> -----------------------------------------------------------------------
>>
>> (gdb) run itkImageToCooccurrenceListAdaptorTest /home/ibanez/src/ 
>> Insight/Testing/Data/Input/HeadMRVolume.mhd
>> Starting program: /home/ibanez/bin/InsightGcc4.3/Debug/bin/ 
>> itkStatisticsTests itkImageToCooccurrenceListAdaptorTest /home/ 
>> ibanez/src/Insight/Testing/Data/Input/HeadMRVolume.mhd
>> [Thread debugging using libthread_db enabled]
>> /usr/include/c++/4.3/debug/vector:237:error: attempt to subscript  
>> container
>>     with out-of-bounds index 2, but container only holds 2 elements.
>>
>> Objects involved in the operation:
>> sequence "this" @ 0x0xbf9e58fc {
>>   type = NSt7__debug6vectorIlSaIlEEE;
>> }
>> [New Thread 0xb7d0e6c0 (LWP 8686)]
>>
>> Program received signal SIGABRT, Aborted.
>> [Switching to Thread 0xb7d0e6c0 (LWP 8686)]
>> 0xb7fe4430 in __kernel_vsyscall ()
>> (gdb) bt
>> #0  0xb7fe4430 in __kernel_vsyscall ()
>> #1  0xb7d3b8a0 in raise () from /lib/tls/i686/cmov/libc.so.6
>> #2  0xb7d3d268 in abort () from /lib/tls/i686/cmov/libc.so.6
>> #3  0xb7ecd849 in __gnu_debug::_Error_formatter::_M_error () from / 
>> usr/lib/libstdc++.so.6
>> #4  0x083c9d14 in std::__debug::vector<long, std::allocator<long>  
>> >::operator[] (this=0xbf9e58fc, __n=2) at /usr/include/c++/4.3/ 
>> debug/vector:237
>> #5  0x083c9d53 in itk::ImageIORegion::SetIndex (this=0xbf9e58f4,  
>> i=2, idx=0) at /home/ibanez/src/Insight/Code/IO/itkImageIORegion.h: 
>> 183
>> #6  0x085a60b8 in itk::MetaImageIO::Read (this=0x9335f40,  
>> buffer=0x93501a8) at /home/ibanez/src/Insight/Code/IO/ 
>> itkMetaImageIO.cxx:840
>> #7  0x084a2efb in itk::ImageFileReader<itk::Image<float, 2u>,  
>> itk::DefaultConvertPixelTraits<float> >::GenerateData  
>> (this=0x9331cf0) at /home/ibanez/src/Insight/Code/IO/ 
>> itkImageFileReader.txx:406
>> #8  0x0884cc49 in itk::ProcessObject::UpdateOutputData  
>> (this=0x9331cf0) at /home/ibanez/src/Insight/Code/Common/ 
>> itkProcessObject.cxx:991
>> #9  0x0883412b in itk::DataObject::UpdateOutputData  
>> (this=0x9334410) at /home/ibanez/src/Insight/Code/Common/ 
>> itkDataObject.cxx:420
>> #10 0x0883406a in itk::DataObject::Update (this=0x9334410) at /home/ 
>> ibanez/src/Insight/Code/Common/itkDataObject.cxx:344
>> #11 0x0884c00d in itk::ProcessObject::Update (this=0x9331cf0) at / 
>> home/ibanez/src/Insight/Code/Common/itkProcessObject.cxx:619
>> #12 0x084855f3 in itkImageToCooccurrenceListAdaptorTest (argc=2,  
>> argv=0xbf9e6008) at /home/ibanez/src/Insight/Testing/Code/Numerics/ 
>> Statistics/itkImageToCooccurrenceListAdaptorTest.cxx:53
>> #13 0x0838fe3d in main (ac=3, av=0xbf9e6004) at /home/ibanez/src/ 
>> Insight/Code/Common/itkTestMain.h:162
>> -----------------------------------------------------------------------
>>
>> For some reason the itkImageIORegion thinks it is a 2D one
>> while the MetaImage is asking for the component [2].
>>
>>
>> Bill:
>> I'm looking at the CVS diff of the day that you pointed out.
>>
>>
>>
>>       Luis
>>
>>
>> -----------------------------------------------------------------------
>>
>> On Mon, Feb 23, 2009 at 7:34 PM, Luis Ibanez  
>> <luis.ibanez at kitware.com> wrote:
>> Hi Bill,
>>
>> I'm looking at it...
>>
>> building with gcc 4.3 and STL debug on...
>>
>>   Luis
>>
>>
>> ---------------------------
>>
>> Bill Lorensen wrote:
>> Luis,
>>
>> This build has stl debugging turned on. The test:
>> http://www.cdash.org/CDash/viewTest.php?onlyfailed&buildid=277757
>> shows an issue. Typically the culprit can be found by running the  
>> test
>> from this build with gdb. However, I'm out of town and don't have
>> access to my basement machine.
>>
>> I notice that other platforms are crashing also. The failures started
>> on Jan 30. Since this test uses a meta file, I would look at the
>> changes to MetaImageIO that occurred that day:
>> http://public.kitware.com/cgi-bin/viewcvs.cgi/Code/IO/itkMetaImageIO.cxx?root=Insight&r1=1.89&r2=1.90
>>
>>
>> Bill
>>
>>
>
>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.itk.org/mailman/private/insight-developers/attachments/20090223/4db7506b/attachment-0001.htm>


More information about the Insight-developers mailing list