View Issue Details

IDProjectCategoryView StatusLast Update
0003947Slicer4Module CropVolumepublic2018-03-02 11:07
Reporternmset Assigned Tonicole  
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionfixed 
Product VersionSlicer 4.4.0 
Target VersionFixed in VersionSlicer 4.5.0-1 
Summary0003947: Repeated crop volume freezes Slicer
Description

Hello,

Slicer 4.4.0-2014-12-24 r23844 freezes on repeated crop volume module usage.

Launch Slicer afresh
Load a DICOM volume
Draw a ROI
Go to CROP VOLUME module : the original volume and the ROI 'R' are
preselected. ROI visibility button is unchecked though the ROI is visible.
Check the ROI visibility button.
Generate a Volume Rendering 3D model on the cropped volume
Close the scene
Load a DICOM volume (same or another one)
Draw a ROI
Go to CROP VOLUME module : nothing is preselected, choose the original volume,
the ROI 'R', click on ROI visibility button or CROP button : -> Slicer hangs.

When it freezes, systemd-coredump starts working on SlicerApp.real, then stops
on 'waiting for disk...'.

Slicer has to be killed in some way.

Thanks for looking into this.

TagsNo tags attached.

Relationships

related to 0001764 closedfedorov crash after close scene and loading image 
related to 0003313 closedfedorov Crash on close scene after using the module 
related to 0003554 closedfedorov Slicer has caught an internal error - bad allocation 

Activities

nicole

nicole

2015-02-03 09:12

administrator   ~0012893

The crash is happening since the module has a parameter node that gets removed from the scene on close, but is not re-added to the scene before trying to set parameters on it. The widget has an outdated pointer to the removed node and the method that used to be called on scene close has been commented out (see related bugs).

fedorov

fedorov

2015-02-04 05:47

developer   ~0012894

Andras is doing something similar in his ClipVolume module - this may be a good example to follow!

nicole

nicole

2015-02-04 11:22

administrator   ~0012895

Side note: the parameters node is missing a lot of code for init, read/write xml, and copy. It looks like some variables were added but not fully integrated, so I'm updating that as I double check the GUI changes.

nicole

nicole

2015-02-05 14:11

administrator   ~0012896

Andrey: can you take a quick look at my changes? I tweaked the GUI a fair amount to accomondate and take advantage of the new way of holding the parameters node:
https://github.com/naucoin/Slicer/commit/72c93ccc079041b6645fc7646c8c08ec8424417f
or you can comment on the pull request:
https://github.com/Slicer/Slicer/pull/233

nicole

nicole

2015-02-05 14:12

administrator   ~0012897

(the Clip Volume module is python based so it wasn't a good example)

nicole

nicole

2015-02-17 06:41

administrator   ~0012916

Refactored parameter nodes and made some GUI improvements in svn 23973[1] and 23974[2]
[1] http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=23973
[2] http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=23974

Related Changesets

Import 2017-06-07 23:51:09: master 5d8e51a1

2015-02-17 11:17:24

naucoin

Details Diff
BUG: update management of crop volume parameters node

The module was holding a pointer to the parameter node that could get out of
date on scene changes and cause crashes. Switch to using a mrml node combo
box to manage the parameters node.
Adjusted the UI file to allow the generic module widget test to pass.
Update the widget more fully on enter and scene changes. Select a newly added
input volume or ROI if none already selected. When picking a new input volume,
or switching ot a new parameter set one, set it to be active in the slice viewers.
Update the parameters node constructor, destructor, read/write xml, copy and print
for missing calls. Make sure that the GUI updates the parameters node (was missing
the input volume and ROI node IDs).
Added a scene close to the self test, and add the CMake command to make it show
up as a self test in the GUI.
Added error checking, took out debugging print outs.

Tested against issues: 0003947 0001764 0003313

Issue 0003947

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23973 3bd1e089-480b-0410-8dfb-8563597acbee
mod - Modules/Loadable/CropVolume/MRML/vtkMRMLCropVolumeParametersNode.cxx Diff File
mod - Modules/Loadable/CropVolume/Resources/UI/qSlicerCropVolumeModuleWidget.ui Diff File
mod - Modules/Loadable/CropVolume/Testing/Python/CMakeLists.txt Diff File
mod - Modules/Loadable/CropVolume/Testing/Python/CropVolumeSelfTest.py Diff File
mod - Modules/Loadable/CropVolume/Testing/vtkMRMLCropVolumeParametersNodeTest1.cxx Diff File
mod - Modules/Loadable/CropVolume/qSlicerCropVolumeModuleWidget.cxx Diff File
mod - Modules/Loadable/CropVolume/qSlicerCropVolumeModuleWidget.h Diff File

Import 2017-06-07 23:51:09: master ee84fba5

2015-02-17 11:17:26

naucoin

Details Diff
BUG: fix restoring voxel based vs interpolation

When switching from a parameter node that had voxel based
turned on to one that didn't, the widget wasn't updating. This was
because of the way the radio buttons were set to toggle:
If a node had the voxel based flag on, the voxel based radio button had
checked set to true and the interpolation radio button had checked
set to false. Switching to the node with the voxel based flag set to false,
the previous commit was just setting the voxel based radio button to unchecked
but that was not forcing the interpolation radio button to be checked.
This change explicitly sets the checked flag to true for the mode, which
results in the other radio button in the group being set to unchecked.

Issue 0003947

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23974 3bd1e089-480b-0410-8dfb-8563597acbee
mod - Modules/Loadable/CropVolume/qSlicerCropVolumeModuleWidget.cxx Diff File

Issue History

Date Modified Username Field Change
2015-01-28 06:13 nmset New Issue
2015-01-28 06:13 nmset Status new => assigned
2015-01-28 06:13 nmset Assigned To => fedorov
2015-02-03 09:00 nicole Relationship added related to 0001764
2015-02-03 09:10 nicole Relationship added related to 0003313
2015-02-03 09:12 nicole Note Added: 0012893
2015-02-03 12:39 nicole Assigned To fedorov => nicole
2015-02-04 05:47 fedorov Note Added: 0012894
2015-02-04 11:22 nicole Note Added: 0012895
2015-02-05 14:11 nicole Note Added: 0012896
2015-02-05 14:12 nicole Note Added: 0012897
2015-02-17 06:41 nicole Note Added: 0012916
2015-02-17 06:41 nicole Status assigned => resolved
2015-02-17 06:41 nicole Fixed in Version => Slicer 4.4.1
2015-02-17 06:41 nicole Resolution open => fixed
2015-03-04 12:22 fedorov Relationship added related to 0003554
2015-09-09 08:29 jcfr Fixed in Version Slicer 4.4.1 => Slicer 4.5.0-1
2017-06-10 08:51 Changeset attached => Slicer master ee84fba5
2017-06-10 08:51 Changeset attached => Slicer master 5d8e51a1
2018-03-02 11:07 jcfr Status resolved => closed