View Issue Details

IDProjectCategoryView StatusLast Update
0003694Slicer4Module EMSegmentpublic2017-06-10 08:51
Reporterpohl Assigned Topieper  
PrioritynormalSeveritymajorReproducibilityalways
Status closedResolutionfixed 
PlatformLinuxOSUbuntu 64 bitOS Version12.04
Product VersionSlicer 4.3.1-2 
Target VersionSlicer 4.3.1-2Fixed in VersionSlicer 4.4.0 
Summary0003694: All tests based on EMSegmentCommandLine.cxx fail
Description

All Tests that use the EMSegmentCommandLine fail as the following line in tasks/GenericTask.tcl

$outputVolume DeepCopy [$thresh GetOutput]

causes the following Error message

ERROR: In /software/Slicer4/superbuild/VTKv5/Filtering/vtkImageData.cxx, line 1349
vtkImageData (0x2638b10): No Scalar Field has been specified - assuming 1 component!

Steps To Reproduce

run

ctest -VV -R EMSeg_SlicerCommonInterfaceTest1

The test calls the script

Testing/SlicerCommonInterFaceTest1.tcl

which reads in a volume

set inputNode [$emLogic AddArchetypeScalarVolume "$inputVolumeFileName" "input" $appLogic $mrmlScene 0]

creates a new volume

set outputNode [$em_manager CreateVolumeScalarNode $inputNode "blubber"]
set outputVolume [$outputNode GetImageData]

and then performs different DeepCopy calls on outputVolume.

so

$outputVolume DeepCopy [$inputNode GetImageData]

but

set thresh [vtkImageThreshold New]
$thresh SetInput [$inputNode GetImageData]
$thresh Update
$outputVolume DeepCopy [$thresh GetOutput]

works

Also

set ellips [vtkImageEllipsoidSource New]
$outputVolume DeepCopy [$ellips GetOutput]

works but if I now deepcopy the threshold again

$outputVolume DeepCopy [$thresh GetOutput]

I get the error message again

Note, if you want to play around with the tcl file in the source directory you do not have to recompile but can just execute the test.

TagsNo tags attached.

Activities

pieper

pieper

2014-05-19 14:12

administrator   ~0011905

When I run that test on a release build of slicer for linux the test passes. Is this a problem only on a debug build?

Start 579: EMSeg_SlicerCommonInterfaceTest1

579: Test command: /home/pieper/slicer4/latest/Slicer-superr/Slicer-build/Slicer "--launcher-no-splash" "--launch" "/home/pieper/slicer4/latest/Slicer-superr/Slicer-build/bin/vtkSlicerCommonInterfaceTest1"
579: Test timeout computed to be: 1800
579: emsegmentModulePythonPath:/home/pieper/slicer4/latest/lib/Slicer-build/qt-loadable-modules/Python
579: ===========================================
579: Tcl: VCmEnliC GetDebug
1/1 Test 0000579: EMSeg_SlicerCommonInterfaceTest1 ... Passed 4.61 sec

The following tests passed:
EMSeg_SlicerCommonInterfaceTest1

100% tests passed, 0 tests failed out of 1

pohl

pohl

2014-05-19 19:26

developer   ~0011906

This is not the newest version of the test . Can you make sure to make a svn update of the EMSegmenter module ?

pieper

pieper

2014-05-20 05:00

administrator   ~0011910

You either need to update the svn repository that this block points to [1] or change this entry in the superbuild.cmake file to point to a different repository.

[1] https://github.com/Slicer/Slicer/blob/master/SuperBuild.cmake#L262-L269

Running make at the top level of slicer should be pulling the latest from the svn repository (if not that would be a bug in the superbuild).

pohl

pohl

2014-05-20 07:14

developer   ~0011913

it is now updated

pieper

pieper

2014-05-21 07:54

administrator   ~0011936

This is fixed in r23222. Kilian can you confirm and close the bug?

https://github.com/Slicer/Slicer/commit/4c7b090262bb675a21762d539570cc24cc7af7b7

pohl

pohl

2014-05-21 10:12

developer   ~0011937

works now

Related Changesets

Import 2017-06-07 23:51:09: master 4c7b0902

2014-05-21 11:45:20

pieper

Details Diff
BUG: 0003694 check for valid image data before running pipeline

Since the display node is observing the image data directly it
may receive Modified events on image data that is not yet
completely constructed, in particular, during a DeepCopy, the scalar
fields may not yet have been copied when a ModifiedEvent is triggered
by one of the Set methods.

This change prevents a spurious vtkErrorMessage from being generated,
and so it allows the EMSegment test to pass.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23223 3bd1e089-480b-0410-8dfb-8563597acbee
mod - Libs/MRML/Core/vtkMRMLScalarVolumeDisplayNode.cxx Diff File

Issue History

Date Modified Username Field Change
2014-05-19 11:10 pohl New Issue
2014-05-19 11:10 pohl Status new => assigned
2014-05-19 11:10 pohl Assigned To => pieper
2014-05-19 14:12 pieper Note Added: 0011905
2014-05-19 19:26 pohl Note Added: 0011906
2014-05-20 05:00 pieper Note Added: 0011910
2014-05-20 07:14 pohl Note Added: 0011913
2014-05-21 07:54 pieper Note Added: 0011936
2014-05-21 10:12 pohl Note Added: 0011937
2014-05-21 10:12 pohl Status assigned => resolved
2014-05-21 10:12 pohl Resolution open => fixed
2014-05-22 03:21 pieper Status resolved => closed
2014-05-22 03:21 pieper Fixed in Version => Slicer 4.4.0
2017-06-10 08:51 pieper Changeset attached => Slicer master 4c7b0902