[vtk-developers] [VTK 0011515]: Pipeline crashes with multiple update extent requests, if different extents are requested

Mantis Bug Tracker mantis at public.kitware.com
Wed Nov 24 18:07:52 EST 2010


The following issue has been SUBMITTED. 
====================================================================== 
http://www.vtk.org/Bug/view.php?id=11515 
====================================================================== 
Reported By:                David Gobbi
Assigned To:                
====================================================================== 
Project:                    VTK
Issue ID:                   11515
Category:                   Development
Reproducibility:            always
Severity:                   crash
Priority:                   low
Status:                     new
====================================================================== 
Date Submitted:             2010-11-24 18:07 EST
Last Modified:              2010-11-24 18:07 EST
====================================================================== 
Summary:                    Pipeline crashes with multiple update extent
requests, if different extents are requested
Description: 
When the vtkStreamingDemandDrivenPipeline receives update extent requests from
more than one downstream algorithm, the extent from the final request is used,
even though it may be smaller than the extent from other requests.  This can
lead to a segfault when the final extent is smaller than the extent required by
some of the downstream algorithms.

Steps to Reproduce: 
Run the following tcl example:

package require vtk

# Simple examle that crashes when an UpdateExtent request
# from one algorithm is overwritten by a smaller UpdateExtent
# request from another algorithm

# read an image that has an extent of 0 255 0 255 0 0
vtkPNGReader reader
reader SetDataSpacing 0.8 0.8 1.5
reader SetFileName "$VTK_DATA_ROOT/Data/fullhead15.png"

# Uncomment this to make the crash disappear
#reader Update

# clip the image down to 0 127 0 127 0 0
vtkImageClip clip
clip SetInputConnection [reader GetOutputPort]
clip SetOutputWholeExtent 0 127 0 127 0 0

# do an operation on the clipped and unclipped data
vtkImageBlend blend
blend SetInputConnection [reader GetOutputPort]
blend AddInputConnection [clip GetOutputPort]

vtkImageViewer viewer
viewer SetInputConnection [blend GetOutputPort]
viewer SetColorWindow 2000
viewer SetColorLevel 1000
viewer Render


Additional Information: 
One possible solution is to add another information key, called
COMBINED_UPDATE_EXTENT, that is the union of all update extent requests from all
downstream algorithms.  It would be the responsibility of
vtkStreamingDemandDrivenPipeline to set and clear this info attribute as
necessary.  I think that this solution would work for both structured extents
and for piece extents.
====================================================================== 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2010-11-24 18:07 David Gobbi    New Issue                                    
======================================================================




More information about the vtk-developers mailing list