ITK icon indicating copy to clipboard operation
ITK copied to clipboard

`DeformableRegistration8Test3` seems broken (requires `ITK_USE_BRAINWEB_DATA`)

Open seanm opened this issue 9 months ago • 5 comments

I suspect ITK_USE_BRAINWEB_DATA does not get a lot of testing...

If I enable that option, build, then do ctest -V -R DeformableRegistration8Test3, I get a failure like:

Starting Registration
ExceptionObject caught !

itk::ImageFileReaderException (0x60f000002280)
Location: "virtual void itk::ImageFileReader<itk::Image<float, 3>>::GenerateOutputInformation() [TOutputImage = itk::Image<float, 3>, ConvertPixelTraits = itk::DefaultConvertPixelTraits<float>]"
File: /Users/sean/external/ITK/Modules/IO/ImageBase/include/itkImageFileReader.hxx
Line: 135
Description:  Could not create IO object for reading file /Users/sean/external/ITK-ASan-bin/Testing/Temporary/BSplineWarping2Test.mhd
The file doesn't exist.
Filename = /Users/sean/external/ITK-ASan-bin/Testing/Temporary/BSplineWarping2Test.mhd

Indeed that file is not there. If I then do ctest -j22 -R ., that seems to tickle something else to get/create the file. Now if I run just DeformableRegistration8Test3 it finds that file, and I get farther.

It runs for minutes and consumes tonnes of RAM. I have 192 GiB of physical RAM and it uses it all and starts swapping.

If I then enable UBSan I find a use of a null pointer. I chased it a bit and if you take this virtualImage:

https://github.com/InsightSoftwareConsortium/ITK/blob/1090d31e0360022b4414d0c3cbf27927a7d55901/Modules/Registration/Metricsv4/include/itkImageToImageMetricv4GetValueAndDerivativeThreader.hxx#L32

and add the line after assert(virtualImage->GetBufferPointer()); that's the null, which I believe is unexpected.

seanm avatar Jan 24 '25 17:01 seanm