View Issue Details

IDProjectCategoryView StatusLast Update
0002966Slicer4Core: Base Codepublic2014-03-06 05:19
Reportercrmullin Assigned Tofinetjul  
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionfixed 
Product VersionSlicer 4.2.0 
Target VersionSlicer 4.3.0Fixed in VersionSlicer 4.3.0 
Summary0002966: Overwriting an output volume triggers VTK error
Description

To reproduce:

1) Download MRHead from Sample Data module.
2) Navigate to Cast Scalar Volume module.
3) Set Input Volume: MRHead, Output Volume: Create New Volume
At this point, Output Volume should read "Output Volume"
4) Cast MRHead to UnsignedChar by selecting "UnsignedChar" and clicking "Apply."
Maybe this was an accident, and I actually wanted to click "Float."
5) To overwrite "Output Volume," select Output Type "Float."
6) Apply

The following error shows up on my machine, regardless of which module tries to overwrite an output volume (this works in every module I've tried):
ERROR: In /home/crmullin/Projects/Slicer4-SuperBuild-Debug/VTK/Filtering/vtkDemandDrivenPipeline.cxx, line 727
vtkStreamingDemandDrivenPipeline (0x60e3760): Input port 0 of algorithm vtkImageResliceMask(0x4c707e0) has 0 connections but is not optional.

Additional Information

The Cast Scalar Volume module actually works as expected, aside from the error.

TagsNo tags attached.

Relationships

related to 0002915 closedfinetjul crash while running command line module 
related to 0002756 closedmillerjv Hidden parameters referencing optional parameters cause an error. 

Activities

pieper

pieper

2013-07-18 06:23

administrator   ~0009126

I set a breakpoint at the error message and I see now what is happening.

The MRMLIDImageIO class turns off Modified events on the scalar volume node it will update, but it does not turn them off for the display node. When the image data is changed (set to null) for the volume node this internally also sets the display node value, which triggers a modified event and some processing.

I"m attaching an image of the stack trace (can't get it easily as text from Xcode).

The solution should be to have itk::MRMLImageIO::Write wrapped in StartModify and EndModify on the display node (if it is non-NULL).

2013-07-18 06:23

 

pieper

pieper

2013-07-18 06:27

administrator   ~0009127

Another fix might be to extend what Julien did for 0002915 so that it handles display nodes too.

finetjul

finetjul

2013-07-18 14:01

administrator   ~0009136

Fixed in r22213

jcfr

jcfr

2014-03-06 05:18

administrator   ~0011125

Closing resolved issues that have not been updated in more than 3 months

Issue History

Date Modified Username Field Change
2013-02-20 11:24 crmullin New Issue
2013-02-20 11:24 crmullin Status new => assigned
2013-02-20 11:24 crmullin Assigned To => pieper
2013-02-20 11:27 jcfr Target Version => Slicer 4.3.0
2013-02-20 11:28 jcfr Assigned To pieper => jcfr
2013-07-18 06:18 pieper Relationship added related to 0002915
2013-07-18 06:19 pieper Relationship added related to 0002756
2013-07-18 06:23 pieper Note Added: 0009126
2013-07-18 06:23 pieper File Added: Screen Shot 2013-07-18 at 10.21.43 AM.png
2013-07-18 06:27 pieper Note Added: 0009127
2013-07-18 14:01 finetjul Assigned To jcfr => finetjul
2013-07-18 14:01 finetjul Note Added: 0009136
2013-07-18 14:01 finetjul Status assigned => resolved
2013-07-18 14:01 finetjul Fixed in Version => Slicer 4.3.0
2013-07-18 14:01 finetjul Resolution open => fixed
2014-03-06 05:18 jcfr Note Added: 0011125
2014-03-06 05:19 jcfr Status resolved => closed