View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0003071 | Slicer4 | Module BRAINS | public | 2013-04-16 17:04 | 2015-11-30 17:41 |
Reporter | pohl | Assigned To | pieper | ||
Priority | normal | Severity | major | Reproducibility | always |
Status | closed | Resolution | fixed | ||
Platform | Linux | OS | Ubuntu 64 bit | OS Version | 12.04 |
Product Version | |||||
Target Version | Slicer 4.3.0 | Fixed in Version | Slicer 4.4.0 | ||
Summary | 0003071: Brainsfit crashes | ||||
Description | From: Steve Pieper <pieper@ibility.net> Hi Hans - It's easy to replicate:
These volumes overlap (see attached image) but I still get the crash on mac. -Steve | ||||
Additional Information | /software/Slicer4/superbuild/Slicer-build/lib/Slicer-4.2/cli-modules//BRAINSFit" --backgroundFillValue 0.0 --interpolationMode Linear --outputVolumePixelType float --fixedVolume "/tmp/EMS384217548mMX5QS_vtkMRMLScalarVolumeNode23.nrrd" --movingVolume "/tmp/EMS1585913069YlN6ym_vtkMRMLScalarVolumeNode20.nrrd" --outputVolume "/tmp/EMS254363168ecUniQ_vtkMRMLScalarVolumeNode29.nrrd" --bsplineTransform "/tmp/EMS69163220202VW1j_vtkMRMLBSplineTransformNode1.mat" --numberOfIterations 3 --numberOfSamples 100 --useRigid --useScaleSkewVersor3D --useAffine --useBSpline --splineGridSize 6,6,6 --maxBSplineDisplacement 0 --useCachingOfBSplineWeightsMode ON --initializeTransformMode useCenterOfHeadAlign --minimumStepLength 0.005 --translationScale 1000 --reproportionScale 1 --skewScale 1 --maskProcessingMode NOMASK --numberOfHistogramBins 40 --numberOfMatchPoints 10 --costMetric MMI --fixedVolumeTimeIndex 0 --movingVolumeTimeIndex 0 --debugNumberOfThreads -1 --debugLevel 0 --failureExitCode -1 TranformTypes: ScaleSkewVersor3D(2 of 4). TranformTypes: Affine(3 of 4). TranformTypes: BSpline(4 of 4). Initializing transform with useCenterOfHeadAlign =============================================== =============================== Starting Transform Estimations for Rigid(1 of 4).=============================== WARNING USING MAX MMI NUMBER OF THREADS: -1 | ||||
Tags | No tags attached. | ||||
Hans: This is really disturbing. I spent many hours this weekend tracking down the problem, and it is really weird. It seems to be failing differently on different computers/compilers, so I am looking into a valgrind build to see if some memory corruption is occurring. When debugging I have the equivalent of: std::cout << "PRE: " << LBFSGBoptimizer->GetUpperBound().size() << " " << localUpperBound.size() << std::endl; std::cout << "POST: " << LBFSGBoptimizer->GetUpperBound().size() << " " << localUpperBound.size() << std::endl; ========= ========== This is passing on all stand-alone static builds of BRAINSTools, but the internal slicer build is failing. ========== I'll continue to work on it this week, but it seems like a bigger nastier problem than a bug in BRAINSFit alone. Hans From: Steve Pieper <pieper@ibility.net> I just tried the current nightly build and got the same crash as yesterday when running registration. It's clearly something still screwed up with the IO factories and linking - the stack below should never happen: Thread 4 Crashed: On Sat, Apr 6, 2013 at 9:12 AM, Johnson, Hans J <hans-johnson@uiowa.edu> wrote: |
|
Okay - we'll, I did a little experimenting and found out what is up. Do I win a prize? ;D It turns out that the BRAINSTools build turns on ITK_FUTURE_LEGACY_REMOVE [1] but slicer's ITK build turns it off. The impact of this flag [3] is to disable certain methods, so now it makes some sense why code compiled with the legacy methods removed would have incorrect virtual function pointers when linked against libraries where the legacy methods existed. If BRAINSFit requires this flag to be set, then it should probably refuse to compile against a version of ITK where the flag was not set. As a side complication, turning off the legacy code also means you cannot turn on ITKV3_COMPATIBILITY, which slicer currently needs in order to build. The best way forward is probably for us to move slicer's code entirely to ITKv4 and turn off the legacy and v3 compatibility features from the build. I suggest we look at this next at the slicer hangout. [1] https://github.com/BRAINSia/BRAINSTools/blob/master/Common.cmake#L176 [2] https://github.com/Slicer/Slicer/blob/master/SuperBuild/External_ITKv4.cmake#L97 [3] https://github.com/Kitware/ITK/blob/master/Modules/Core/Common/include/itkMacro.h#L401 |
|
Here's a fix that works for me after a rebuild: |
|
commit ea67a47cc5a2f043c4d24e167335a6ccd5bab963
===== In addition, a patch set is being reviewed for ITKv4 that will make using the ITK_FUTURE_LEGACY_REMOVE feature easier to use. |
|
Closing resolved issues that have not been updated in more than 3 months |
|
Date Modified | Username | Field | Change |
---|---|---|---|
2013-04-16 17:04 | pohl | New Issue | |
2013-04-16 17:04 | pohl | Status | new => assigned |
2013-04-16 17:04 | pohl | Assigned To | => hjmjohnson |
2013-04-16 17:05 | pohl | Note Added: 0008419 | |
2013-04-16 17:11 | pohl | Assigned To | hjmjohnson => jcfr |
2013-04-21 15:26 | pieper | Note Added: 0008456 | |
2013-04-22 05:26 | pieper | Note Added: 0008457 | |
2013-04-22 06:38 | jcfr | Assigned To | jcfr => pieper |
2013-04-22 13:00 | hjmjohnson | Note Added: 0008458 | |
2013-04-22 13:00 | hjmjohnson | Status | assigned => resolved |
2013-04-22 13:00 | hjmjohnson | Resolution | open => fixed |
2013-04-23 03:46 | pieper | Relationship added | has duplicate 0003050 |
2014-03-06 05:15 | jcfr | Note Added: 0011067 | |
2014-03-06 05:17 | jcfr | Status | resolved => closed |
2014-03-06 05:54 | jcfr | Fixed in Version | => Slicer 4.4.0 |
2015-11-30 17:41 | jcfr | Category | Module BRAINSFit => Module BRAINS |