View Issue Details [ Jump to Notes ] | [ Print ] | ||||||||
ID | Project | Category | View Status | Date Submitted | Last Update | ||||
0011515 | VTK | (No Category) | public | 2010-11-24 18:07 | 2012-12-12 12:06 | ||||
Reporter | David Gobbi | ||||||||
Assigned To | David Gobbi | ||||||||
Priority | low | Severity | crash | Reproducibility | always | ||||
Status | closed | Resolution | fixed | ||||||
Platform | OS | OS Version | |||||||
Product Version | |||||||||
Target Version | Fixed in Version | 5.10.0 | |||||||
Summary | 0011515: 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. It will give the following error (assuming a 2-CPU machine) and then crash. I'm guessing that on a 1-CPU machine, it will crash without giving the error. ERROR: In /Volumes/Work/Kitware/vtk-git/Filtering/vtkImageData.cxx, line 1472 vtkImageData (0x10630fe10): GetScalarPointer: Pixel (0, 128, 0) not in memory. Current extent= (0, 127, 0, 127, 0, 0) =========== package require vtk # Simple example 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 | Assigned to myself, because it has been bugging me (hah!) so I've been thinking about it on and off. One fix would be to add another information key, called COMBINED_UPDATE_EXTENT, that is the union of all update extent requests from all downstream algorithms. Every time an algorithm received REQUEST_UPDATE_EXTENT, it would combine the requested update extent with COMBINED_UPDATE_EXTENT. Then, in REQUEST_DATA (i.e. at the end of the update cycle), the COMBINED_UPDATE_EXTENT would be cleared. This solution would be specific to 3D extents, i.e. structured data sets like vtkImageData. Here is a patch that implements the solution described above: http://review.source.kitware.com/446 [^] | ||||||||
Tags | No tags attached. | ||||||||
Project | |||||||||
Type | |||||||||
Attached Files | |||||||||
Relationships | |
Relationships |
Notes | |
(0029876) David Gobbi (developer) 2012-12-12 12:06 |
Patch was merged on Feb 25, 2011. |
Notes |
Issue History | |||
Date Modified | Username | Field | Change |
2010-11-24 18:07 | David Gobbi | New Issue | |
2010-11-24 18:10 | David Gobbi | Steps to Reproduce Updated | |
2010-11-24 18:11 | David Gobbi | Category | Development => (No Category) |
2010-11-24 18:13 | David Gobbi | Steps to Reproduce Updated | |
2010-11-26 11:46 | David Gobbi | Assigned To | => David Gobbi |
2010-11-26 11:46 | David Gobbi | Status | backlog => tabled |
2010-11-26 12:06 | David Gobbi | Additional Information Updated | |
2010-11-26 12:42 | David Gobbi | Additional Information Updated | |
2010-11-26 17:53 | David Gobbi | Note Added: 0023559 | |
2010-11-26 18:04 | David Gobbi | Additional Information Updated | |
2010-11-26 18:20 | David Gobbi | Note Deleted: 0023559 | |
2010-11-26 18:21 | David Gobbi | Additional Information Updated | |
2011-02-25 21:26 | David Gobbi | Status | tabled => @80@ |
2011-02-25 21:26 | David Gobbi | Resolution | open => fixed |
2012-12-12 12:06 | David Gobbi | Note Added: 0029876 | |
2012-12-12 12:06 | David Gobbi | Status | customer review => closed |
2012-12-12 12:06 | David Gobbi | Fixed in Version | => 5.10.0 |
Issue History |
Copyright © 2000 - 2018 MantisBT Team |