View Issue Details

IDProjectCategoryView StatusLast Update
0002514Slicer4public2017-06-07 23:27
Reporterjcfr Assigned Tonicole  
PrioritynormalSeverityminorReproducibilityhave not tried
Status closedResolutionfixed 
Product Version 
Target VersionSlicer 4.2.0Fixed in VersionSlicer 4.2.0 
Summary0002514: Tutorial 13 - Abdominal Atlas
Description

See http://www.na-mic.org/Wiki/index.php/RSNA2012_Planning

TagsNo tags attached.

Relationships

related to 0002513 closedfinetjul Tutorial 11 - Brain Atlas 
parent of 0002710 closednicole Abdominal atlas color file is all black 

Activities

nicole

nicole

2012-09-19 12:46

administrator   ~0006138

Missing scene view thumbnails, Marianna redid them and gave me a new .mrb file to upload for nightly testing. Waiting on Midas registration.

nicole

nicole

2012-09-20 08:02

administrator   ~0006140

New mrb uploaded and test updated, svn 21020.

nicole

nicole

2012-09-28 15:09

administrator   ~0006271

Restoring scene views is crashing, parsing of the compare view layout.

nicole

nicole

2012-10-02 11:59

administrator   ~0006339

On scene view restore, the mrml layout manager gets in a state with an invalid relationship between view and viewNode and widgets. Trying to reset at that point just pushes the crash to the second view restore.

nicole

nicole

2012-10-02 13:02

administrator   ~0006343

When loading the scene, get two vtkMRMLViewNodes in the scene, both with singleton tags '1' and '2', and ids: vtkMRMLViewNode1, vtkMRMLViewNode2 (both have the attribute MappedInLayout set to 1)

Getting the first scene view's node collection, it has one view node, with singleton tag '2' and id vtkMRMLViewNode2.

nicole

nicole

2012-10-04 15:44

administrator   ~0006392

Turns out that the mrml file has some errors in it: the scene views referenced both view node 1 and 2 but view node 1 isn't defined in the scene views. On restore, view node 1 is removed and the restored camera node points to an invalid view. I wasn't able to make the layout manager gracefully recover from this error state, so I'm uploading a new .mrb file with a corrected .mrml file in it.

Got it to upload with the same id, so tests should run with the new .mrb file from now on.

pieper

pieper

2012-10-13 11:31

administrator   ~0006520

This test was crashing for the last few days in an assert due to missing views on scene restore.

I found a fix for this that avoids the crash and appears to be consistent with the logic of the layout manager as far as I can tell. I will go ahead and commit it and then email this note to Julien so he can have a look.

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

pieper

pieper

2012-10-13 12:39

administrator   ~0006521

The brain atlas test was also crashing, even after the fix to the abdominal atlas case. The fix in revision 21176 fixes the issue with the layout node becoming invalid.

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

finetjul

finetjul

2012-10-14 18:11

administrator   ~0006523

Comment 0006520:
Concerning, http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=21174, I don't understand why onSceneRestoredEvent was needed in the first place. Jim, do you remember what was your issue at that time?
From my understanding, qMRMLLayoutManager should only be answering to BatchProcess events: after a batch process (restoring should be a batch process) first the widgets are updated from the view nodes in the scene, and then the layout is refreshed from the layout node.
So onSceneRestoredEvent shouldn't be needed (why does it call Modified() on the layout node if the layout node hasn't been modified ?). Moreover, as it is mentioned in here, the order of calls is sensitive. Maybe onSceneRestoredEvent is calling things too early (before the EndBatchProcessEvent calls are made.) Maybe updateWidgetsFromViewNodes and updateLayoutFromMRMLScene should just be called from a single slot that ensures the order.

Comment 0006521:
Concerning http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=21176, I don't understand why the layout node should be cleared when a scene is restored. The layout being a singleton, and the fact that there is a layout node in all scene views, the layout node should stay valid even after the scene is being restored. Maybe the issue you experienced come from a) where onSceneRestoredEvent shouldn't even be called.
As a side note, I would agree that vtkMRMLLayoutLogic::LayoutNode could be a SmartPointer for more safety.

nicole

nicole

2012-10-17 10:15

administrator   ~0006596

I think there's also an issue with the test download mechanism - it just checks that there's already a file on disk with the given name, and it's not getting the updated mrb with the fixed MRML file (I just uploaded a new copy, the URL and name are the same, but file sizes are different: 34.2Mb for the second version, 36.4Mb for the first version).
When I had been digging into this crash these sound like the issues I was encountering, I'm rebuilding and testing the current code with both versions of the mrb now...

pieper

pieper

2012-10-17 12:58

administrator   ~0006601

Last edited: 2012-10-17 13:01

Yes, if the data changes right now you would need to give it a new name in midas. (actually a new name in the temp directory is enough).

I added a topic for the January meeting to discuss self-tests (we can make this a formal project and discuss our experiences).

http://www.na-mic.org/Wiki/index.php/AHM_2013

pieper

pieper

2012-10-17 13:01

administrator   ~0006602

Added a note to the documentation.

http://www.slicer.org/slicerWiki/index.php?title=Documentation%2FNightly%2FDevelopers%2FTutorials%2FSelfTestModule&diff=28528&oldid=28357

jcfr

jcfr

2012-10-17 14:21

administrator   ~0006604

Instead of giving a different name, I would suggest these two possible approaches:

1) Hardcode the md5 into the sampledata module. Before re-downloading a file, the module would compare the hard-coded MD5 with the MD5 of the file on disk. To avoid computing the MD5, the module could simply create a file named: <name-of-file>.md5 and compare the content of that file with the hard-coded one.

We could also download the file from midas using their md5 ... 

2) If we don;t want to hard-code the md5, we could also teach the module how to retrieve the md5 from midas.

I would suggest we implement approach (1).

nicole

nicole

2012-10-30 10:43

administrator   ~0006917

Last edited: 2012-10-30 11:00

Tested on Mac 64 bit using rc 1 2012-10-29 svn r21280 - segmentation volume color table is all black

Tested on Linux 64 bit using rc 1 2012-10-29 svn r21280 - segmentation volume color table is all black

jcfr

jcfr

2012-10-31 11:37

administrator   ~0006984

Since MRB and sceneview are not required to run the tutorial, these issues are considered resolved.

Nicole, make sure to provide archive with MRML file(s) and data in a archive file that could be used after being extracted.

Thanks

nicole

nicole

2012-11-23 10:14

administrator   ~0007356

Segmentation volume color table being all black was resolved, mrb is working well now:
http://slicer.kitware.com/midas3/download?items=8301

jcfr

jcfr

2012-11-24 08:06

administrator   ~0007361

Excellent.
Is there anything to update on the 4.2 branch ? Self test may be ?

nicole

nicole

2012-11-26 05:36

administrator   ~0007368

No update needed, new revision of the mrb uses the same url.
The tests for all atlases are already in place and running nightly or as self tests via the AtlasTests.py file.

jcfr

jcfr

2014-03-06 04:53

administrator   ~0010757

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

Related Changesets

Slicer: 1683-launcher-with-output 73f9a47e

2012-10-13 15:30:54

pieper

Details Diff
BUG: fix for issue 0002514

Make sure the widgets exist before updating the layout.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21174 3bd1e089-480b-0410-8dfb-8563597acbee
mod - Libs/MRML/Widgets/qMRMLLayoutManager.cxx Diff File

Issue History

Date Modified Username Field Change
2012-09-13 11:49 jcfr New Issue
2012-09-13 12:00 jcfr Target Version => Slicer 4.2.0 - coming release
2012-09-13 12:04 jcfr Status new => assigned
2012-09-13 12:04 jcfr Assigned To => nicole
2012-09-19 12:46 nicole Note Added: 0006138
2012-09-20 08:02 nicole Note Added: 0006140
2012-09-28 15:09 nicole Note Added: 0006271
2012-10-02 11:59 nicole Note Added: 0006339
2012-10-02 13:02 nicole Note Added: 0006343
2012-10-04 15:44 nicole Note Added: 0006392
2012-10-13 11:31 pieper Note Added: 0006520
2012-10-13 12:39 pieper Note Added: 0006521
2012-10-14 18:00 finetjul Relationship added related to 0002513
2012-10-14 18:11 finetjul Note Added: 0006523
2012-10-17 10:15 nicole Note Added: 0006596
2012-10-17 12:58 pieper Note Added: 0006601
2012-10-17 13:01 pieper Note Added: 0006602
2012-10-17 13:01 pieper Note Edited: 0006601
2012-10-17 14:21 jcfr Note Added: 0006604
2012-10-30 10:43 nicole Note Added: 0006917
2012-10-30 11:00 nicole Note Edited: 0006917
2012-10-30 11:03 nicole Relationship added parent of 0002710
2012-10-31 11:35 jcfr Status assigned => resolved
2012-10-31 11:35 jcfr Fixed in Version => Slicer 4.2.0 - coming release
2012-10-31 11:35 jcfr Resolution open => fixed
2012-10-31 11:37 jcfr Note Added: 0006984
2012-11-23 10:14 nicole Note Added: 0007356
2012-11-24 08:06 jcfr Note Added: 0007361
2012-11-26 05:36 nicole Note Added: 0007368
2014-03-06 04:53 jcfr Note Added: 0010757
2014-03-06 04:55 jcfr Status resolved => closed
2017-06-07 23:27 pieper Changeset attached => Slicer 1683-launcher-with-output 73f9a47e