View Issue Details

IDProjectCategoryView StatusLast Update
0003349Slicer4Core: Base Codepublic2018-03-02 11:06
Reporterjcfr Assigned Tojcfr  
PriorityhighSeveritymajorReproducibilityalways
Status closedResolutionfixed 
Product VersionSlicer 4.2.2-1 
Target VersionSlicer 4.4.0Fixed in VersionSlicer 4.4.0 
Summary0003349: Fix pipeline for glyphing
Description

See http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=22363

Slice view pipeline: http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Developers/MRML#Slice_view_pipeline

TagsNo tags attached.

Relationships

related to 0003239 closedalexy Color Fiber by Mean Orientation crashes Slicer4 
related to 0003323 closedpieper Slicer crash when I follow the Diffusion Tensor Imaging Tutorial 
related to 0002808 closedjcfr Fix failing py_NeurosurgicalPlanningTutorial and py_DiffusionTensorImagingTutorial 
related to 0002392 closedalexy ScalarVisibility in new ModelNode -- colors appear late 
related to 0003380 closedjcfr Slicer crashes when a DTI volume is reloaded 
related to 0003789 closedjcfr crash on deleting hierarchy node in Models module 
related to 0003845 closedalexy label map tractography is broken (probably a vtk6 issue) 

Activities

jcfr

jcfr

2013-09-03 14:27

administrator   ~0009874

Probably relevant, when running the test "py_NeurosurgicalPlanningTutorial", the following errors are reported:

// ---------------------------
Errors:

[...]
565: ERROR: In /home/jchris/Projects/Slicer-AHM-Superbuild-Release/VTK/Filtering/vtkDemandDrivenPipeline.cxx, line 727
565: vtkStreamingDemandDrivenPipeline (0x957b600): Input port 0 of algorithm vtkExtractSelectedPolyDataIds(0x957b370) has 0 connections but is not optional.
565:
565:
565: ERROR: In /home/jchris/Projects/Slicer-AHM/Libs/vtkTeem/vtkDiffusionTensorGlyph.cxx, line 222
565: vtkDiffusionTensorGlyph (0xcd1db10): No data to glyph!
[...]
// ---------------------------

yuzheng

yuzheng

2013-09-19 09:02

developer   ~0010026

Last edited: 2013-09-19 09:30

Besides running "py_NeurosurigicalPlanningTutorial", the error messages in notes 0009874 can also be reproduced as below:
1) Start a Slicer Debug build.
2) Download Sample Data -> Download DTIVolume.
3) Go to 'Volumes' module and set DTIVolume as Active Volume.
4) Go to 'Diffusion Tensor Scalar Measurements' module, in IO panel, set DTIVolume as "Input DTI Volume".
5) 'Output Scalar Volume' -> Select 'Create a new volume'-> Click 'Apply'
6) 'Output Scalar Volume' -> Select 'Create a new volume'
The error messages will be shown in the console output.

The 'create a new volume' action triggers a vtkMRMLScene::NodeAddedEvent event. During processing this event, vtkMRMLModelDisplayableManager::GetActiveScalarName is called. In the fix of bug 0002392, to assign the field data, the GetActiveScalarName triggers an Update on the pipeline (modelDisplayNode->GetOutputPolyData()). But at this point, some required field data for algorithm vtkDiffusionTensorGlyph, such Tensors, hasn't been filled. So the glyph pipeline complains and throw the error messages described in notes 0009874.

It is fixed here: https://github.com/yuzhengZ/Slicer/commit/0bff039803d512313562ae1eda3cde40537052d4

In the fix of 0002392 (r21000 http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=21000 ), the Update() on the polydata in vtkMRMLModelDisplayableManager::::GetActiveScalarName() is redundant. The Update() on the polydata in vtkMRMLModelNode::SetActivePointScalars has fixed 0002392. And the ideal fix for 0002392 is the solution 4 mentions in 0002392: vtkMRMLModelNode::SetActivePointScalars should use vtkAssignAttribute to be able to set the active scalar in the "VTK pipeline" rather than on the intermediate vtkPolyData pointdata.

yuzheng

yuzheng

2013-09-19 09:08

developer   ~0010027

Last edited: 2013-09-19 09:32

A DTI volume related Slicer crash was reported and fixed in bug 0003380. The crash mentioned in bug 0003323 cannot be reproduced (Linux 64-bit build or Mac 64-bit build) after reverts r22363 ( http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=22363 ). I am wondering if the fix of bug 0003380 also fixes this one. If not, please input more information on how to reproduce the crash.

jcfr

jcfr

2014-05-20 09:13

administrator   ~0011918

@Julien: Could let me know what you think of that issue ?

jcfr

jcfr

2014-09-25 12:57

administrator   ~0012590

Commit r23690 re-organize the pipeline to fix the glyphing. There is now only a warning displayed and no more crash.

See http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=23690

Related Changesets

Slicer: 2145-support-for-installing-extension-from-file 8113bdc9

2013-09-03 18:24:08

jcfr

Details Diff
BUG: Fixes py_NeurosurgicalPlanningTutorial test

Beside of memory leak and error related to the glyphing pipeline (captured
by issue 0003349).
The script can be successfully replayed within Slicer or if executed
using CTest with a Slicer build without leak detection.

// ---------------------------
Errors:

565: ERROR: In /home/jchris/Projects/Slicer-AHM-Superbuild-Release/VTK/Filtering/vtkDemandDrivenPipeline.cxx, line 727
565: vtkStreamingDemandDrivenPipeline (0x957b600): Input port 0 of algorithm vtkExtractSelectedPolyDataIds(0x957b370) has 0 connections but is not optional.
565:
565:
565: ERROR: In /home/jchris/Projects/Slicer-AHM/Libs/vtkTeem/vtkDiffusionTensorGlyph.cxx, line 222
565: vtkDiffusionTensorGlyph (0xcd1db10): No data to glyph!
// ---------------------------

// ---------------------------
Leaks:

565: vtkDebugLeaks has detected LEAKS!
565: Class "vtkSynchronizedTemplatesCutter3D" has 21 instances still around.
565: Class "vtkTransformPolyDataFilter" has 21 instances still around.
565: Class "vtkInformationVector" has 441 instances still around.
565: Class "vtkMatrix4x4" has 42 instances still around.
565: Class "vtkCoordinate" has 42 instances still around.
565: Class "vtkPlane" has 21 instances still around.
565: Class "vtkInformation" has 525 instances still around.
565: Class "vtkSynchronizedTemplates3D" has 21 instances still around.
565: Class "vtkActor2D" has 21 instances still around.
565: Class "vtkRectilinearSynchronizedTemplates" has 21 instances still around.
565: Class "vtkDoubleArray" has 105 instances still around.
565: Class "vtkAlgorithmOutput" has 21 instances still around.
565: Class "vtkInformationIntegerValue" has 378 instances still around.
565: Class "vtkOpenGLPolyDataMapper2D" has 21 instances still around.
565: Class "vtkGridSynchronizedTemplates3D" has 21 instances still around.
565: Class "vtkCutter" has 21 instances still around.
565: Class "vtkInformationExecutivePortVectorValue" has 21 instances still around.
565: Class "vtkContourValues" has 105 instances still around.
565: Class "vtkTransform" has 21 instances still around.
565: Class "vtkStreamingDemandDrivenPipeline" has 42 instances still around.
565: Class "vtkTimerLog" has 21 instances still around.
565: Class "vtkInformationExecutivePortValue" has 21 instances still around.

// ---------------------------

Fixes 0002808

Co-authored-by: Jean-Christophe Fillion-Robin <JChris.FillionR@kitware.com>

From: Chrystel Juan <chrystel.juan@kitware.com>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22397 3bd1e089-480b-0410-8dfb-8563597acbee
mod - Applications/SlicerApp/Data/Input/NeurosurgicalPlanningTutorial.xml Diff File

Issue History

Date Modified Username Field Change
2013-08-30 12:19 jcfr New Issue
2013-08-30 12:19 jcfr Status new => assigned
2013-08-30 12:19 jcfr Assigned To => jcfr
2013-08-30 12:19 jcfr Relationship added related to 0003239
2013-08-30 12:20 jcfr Relationship added related to 0003323
2013-08-30 12:20 jcfr Target Version => Slicer 4.4.0
2013-08-30 12:20 jcfr Assigned To jcfr => alexy
2013-08-30 12:20 jcfr Priority normal => high
2013-08-30 12:20 jcfr Severity minor => major
2013-08-30 12:20 jcfr Reproducibility have not tried => always
2013-09-03 07:40 jcfr Relationship added related to 0003301
2013-09-03 07:41 jcfr Assigned To alexy => yuzheng
2013-09-03 07:41 jcfr Target Version Slicer 4.4.0 => Slicer 4.3.1
2013-09-03 07:43 jcfr Description Updated
2013-09-03 14:25 jcfr Relationship added related to 0002808
2013-09-03 14:27 jcfr Note Added: 0009874
2013-09-09 06:47 yuzheng Relationship added related to 0003380
2013-09-17 11:33 yuzheng Relationship added related to 0002392
2013-09-19 09:02 yuzheng Note Added: 0010026
2013-09-19 09:03 yuzheng Note Edited: 0010026
2013-09-19 09:04 yuzheng Note Edited: 0010026
2013-09-19 09:06 yuzheng Note Edited: 0010026
2013-09-19 09:08 yuzheng Note Added: 0010027
2013-09-19 09:09 yuzheng Relationship deleted related to 0003301
2013-09-19 09:29 yuzheng Assigned To yuzheng => jcfr
2013-09-19 09:29 yuzheng Status assigned => feedback
2013-09-19 09:30 yuzheng Note Edited: 0010027
2013-09-19 09:30 yuzheng Note Edited: 0010026
2013-09-19 09:32 yuzheng Note Edited: 0010027
2013-10-04 01:06 jcfr Target Version Slicer 4.3.1 => Slicer 4.3.2
2014-03-06 10:15 nicole Target Version Slicer 4.3.2 => Slicer 4.4.0
2014-05-20 09:12 jcfr Status feedback => assigned
2014-05-20 09:12 jcfr Assigned To jcfr => finetjul
2014-05-20 09:13 jcfr Note Added: 0011918
2014-08-01 16:21 jcfr Relationship added related to 0003789
2014-09-15 19:26 jcfr Relationship added related to 0003845
2014-09-25 12:56 jcfr Priority high => low
2014-09-25 12:56 jcfr Target Version Slicer 4.4.0 => Slicer 4.4.1
2014-09-25 12:57 jcfr Note Added: 0012590
2014-09-25 12:57 jcfr Status assigned => resolved
2014-09-25 12:57 jcfr Fixed in Version => Slicer 4.4.0
2014-09-25 12:57 jcfr Resolution open => fixed
2014-09-25 12:57 jcfr Assigned To finetjul => jcfr
2014-09-25 12:57 jcfr Priority low => high
2014-09-25 12:57 jcfr Target Version Slicer 4.4.1 => Slicer 4.4.0
2017-06-07 23:27 jcfr Changeset attached => Slicer 2145-support-for-installing-extension-from-file 8113bdc9
2018-03-02 11:06 jcfr Status resolved => closed