View Issue Details

IDProjectCategoryView StatusLast Update
0001495Slicer4Module SceneViewspublic2012-05-14 23:32
Reporterkikinis Assigned Tomillerjv  
PrioritynormalSeveritycrashReproducibilityalways
Status closedResolutionfixed 
PlatformMACOSOS XOS Version10.7.2
Product VersionSlicer 4.0.0 
Target VersionSlicer 4.1.0Fixed in VersionSlicer 4.1.0 
Summary0001495: restoring sceneview called compare view crashes slicer after producing a bad display
Description

http://www.na-mic.org/Wiki/images/7/79/RSNA2010_Prostate.zip

Loaded the data set above. restored the sceneview called compareview from the icon at the top of the main gui. The images look bad (see attached). After a while, Slicer crashed without me doing anything else. I was not able to reproduce this when running a second time.

Further: some compare viewers have a gray bar, others have a orange bar. The gray ones are not numbered.

TagsNo tags attached.

Relationships

parent of 0001523 closedmillerjv Crash while opening a Slicer3 legacy scene 
parent of 0001526 closedmillerjv Sceneviews do not restore slice contents correctly when slices are linked 

Activities

2011-10-21 11:16

 

2011-10-21 11:17

 

2011-10-21 11:30

 

kikinis

kikinis

2011-10-21 11:32

developer   ~0003195

The third image shows the same scenesnapshot in 3.6.3 from 2011-03-04

millerjv

millerjv

2011-10-25 11:42

developer   ~0003207

Added code to handle legacy scenes. http://svn.slicer.org/Slicer4/trunk@18458

Patch attempts to handle missing attributes in legacy scene files as well as changes in how nodes and viewers are numbered (now starting at 1 instead of 0).

There may be a remaining issue with qMRMLSceneModel...

kikinis

kikinis

2011-11-01 10:05

developer   ~0003225

Restoring scenes from the prostate data set does not lead to appropriate views.

millerjv

millerjv

2011-11-01 12:53

developer   ~0003226

Is the layout (collections of viewers) incorrect? Or is the content incorrect?

fedorov

fedorov

2011-11-03 15:30

developer   ~0003249

Last edited: 2011-11-03 15:44

Jim, I updated and recompiled slicer4 today. When I try to load Use4Demo.mrml scene from the package Ron linked, I have a crash.

Separate bug submitted: http://www.na-mic.org/Bug/view.php?id=1523

fedorov

fedorov

2011-11-03 15:46

developer   ~0003250

Regarding your question, it looks like there is a problem related to Compareview/scene snapshots restoring or saving the contents.

I created a scene snapshot with 3 compareviews, with the same different Bg and different Fg's. When I reopen the scene, all Fg's are reset, and the first compareviewer is not "fit to slice" viewer.

I will attach a zip with that simple scene that reproduces the problem (for me).

fedorov

fedorov

2011-11-03 15:48

developer   ~0003251

Ok, the scene is too big, here's the link in my public dropbox folder:

http://db.tt/9x8zOE5P

millerjv

millerjv

2011-11-04 05:15

developer   ~0003253

I had the Use4Demo.mrml working last week. I could load it and switch to the snapshots. But it crashes now for me as well. I'll look into that.

I cannot access the url http://db.tt/9x8zOE5P from inside GE.

millerjv

millerjv

2011-11-04 05:31

developer   ~0003254

Are you seeing an assert from qMRMLSceneModel? I had commented that out locally so I could get past that issue to get the scene view restore issue. I'll check with Julien about this class.

millerjv

millerjv

2011-11-04 13:13

developer   ~0003256

For the layout "contents" (foreground, background), this looks like the linked controls are being propagated during the scene view restore. So as one of the SliceCompositeNodes is restore from the snapshot, it is broadcasting its foreground and background to the rest of the SliceCompositeNodes.

In Slicer3, I think we had some hacks to keep this from happening. But with the SliceLinkLogic, we should be able to handle it properly.

fedorov

fedorov

2011-11-05 12:02

developer   ~0003263

Jim, yes, it appears that sceneviews do not handle restore of slice contents when linked. I observed this problem long time ago, and I thought it was fixed at some point.

millerjv

millerjv

2012-02-21 09:02

developer   ~0003659

Andrey, can you update this wrt r19319 (or really r19321) to see if that patch resolves your issues or not.

I may have had to switch between Scene Views back and forth a couple of times to get the display to be correct. But please verify for me.

fedorov

fedorov

2012-02-21 15:45

developer   ~0003665

I checked, restore sceneviews seem to work very well -- very quick, and correct. Thanks, Jim! This bug was very critical for my use cases.

In my initial test, I managed to crash Slicer while changing between sceneviews, but I was not able to reproduce that.

fedorov

fedorov

2012-02-21 15:46

developer   ~0003666

Ron, you opened this bug (but I cannot assign it to you) -- can you verify it is working for you, so that we can close it?

2012-02-22 05:36

 

kikinis

kikinis

2012-02-22 05:39

developer   ~0003674

I just uploaded a snapshot of what I get with the mac nightly 2-22. It does not look right in terms of how it populates foreground and background.

millerjv

millerjv

2012-02-22 05:56

developer   ~0003676

Actually, all the foreground and background volume selections are correct.

What seems to be incorrectly restored (or enabled) are the alpha blending values. I'll continue to look at it.

fedorov

fedorov

2012-02-22 06:01

developer   ~0003677

I actually have not tested it with this specific scene included in the original report. I created a new scene with snapshots. Sorry for missing this.

kikinis

kikinis

2012-02-22 07:25

developer   ~0003681

can I get the new scene/data? I am less concerned about legacy issues. If it works with a scene created on slicer 4, that is good enough.

fedorov

fedorov

2012-02-22 07:29

developer   ~0003682

Ron, here is the scene I used for testing: http://dl.dropbox.com/u/3770904/Slicer4-LinkedViews.zip

It is not a complete, fully configured scene as the original one, but it does have scene views. I don't have an analogous one ready yet. I guess I need to create one to fully check this bug fix. I will do that.

kikinis

kikinis

2012-02-22 07:38

developer   ~0003683

still problems. I tried to change the label map to outline, it was grayed out. I had to select none for label maps and then select the label map again, to be able to change to outline. Then I took an additional sceneview. Now jumping back and forth resulted in the snapshot, which I attach.

2012-02-22 07:38

 

fedorov

fedorov

2012-02-22 07:40

developer   ~0003684

I reported the problem with labelmap outline button to Jim yesterday. Same issue with Bg/Fg control and interpolation -- all disabled.

millerjv

millerjv

2012-02-22 08:13

developer   ~0003687

The issue with the buttons being disabled should now be resolved.

fedorov

fedorov

2012-02-23 06:17

developer   ~0003704

Jim, Ron:

I prepared a new scene using just Slicer4 (it is not identical to the other one, but very close): http://wiki.na-mic.org/Wiki/index.php/File:Slicer4-mpMRI_Prostate_scene.zip

Here's the report of my experiences:

1) before I saved the scene, I was able to test all scene views while I had Slicer open, no issues. Scene view restore seems to be faster than in Slicer3.

2) while creating this scene, I observed several issues. I didn't have time to reproduce/report all of them:

  • fiducials imported fro .fcsv are visible in 3d viewer, while I have all of them set to invisible in the annotations module
  • turning on slice visibility in compare viewers does not make them visible in 3d viewer (actually, I have no idea what should be the behavior of triggering visibility in comapreview linked mode? maybe the eye should be disabled)
  • I was not able to make model clipping work
  • fiducials labels and widgets render in compareviewers incorrectly (you will see)

3) after loading the scene, the first compare viewer is empty -- bug

4) was able to switch ok to first scene view. When I tried to switch to second scene view, Slicer crashed with assertion failure:

ASSERT: "view" in file /Users/fedorov/Slicer/Slicer4/Libs/MRML/Widgets/qMRMLLayoutManager.cxx, line 973

I hope the scene was saved correctly when I saved it -- it takes me quite a while to prepare this scene...

5)

kikinis

kikinis

2012-03-16 11:29

developer   ~0003887

mac nightly 3-16: I loaded the scene. The initial view had an empty compareviewer. When I tried to restore the second sceneview slicer crashed on me.

fedorov

fedorov

2012-03-16 16:47

developer   ~0003892

Build from source r19633 on mac: I was able to load the scene (first compareview not initialized), but trying to switch to the first scene led to a crash:

Thread 0 Crashed: Dispatch queue: com.apple.main-thread
0 libSystem.B.dylib 0x00007fff818dc0b6 kill + 10
1 libSystem.B.dylib 0x00007fff8197c9f6 abort + 83
2 libSystem.B.dylib 0x00007fff819699bc
pthread_markcancel + 0
3 libMRMLCore.dylib 0x000000010815434b vtkMRMLScene::GetNodeByID(char const) + 831 (vtkMRMLScene.cxx:1856)
4 libMRMLCore.dylib 0x0000000108156942 vtkMRMLScene::RemoveNode(vtkMRMLNode
) + 872 (vtkMRMLScene.cxx:1360)
5 libMRMLCore.dylib 0x000000010816e177 vtkMRMLSceneViewNode::RestoreScene() + 1301 (vtkMRMLSceneViewNode.cxx:438)
6 libqMRMLWidgets.dylib 0x0000000100615a53 qMRMLSceneViewMenuPrivate::restoreSceneView(QString const&) + 203 (qMRMLSceneViewMenu.cxx:180)
7 libqMRMLWidgets.dylib 0x000000010066ca2b qMRMLSceneViewMenuPrivate::qt_metacall(QMetaObject::Call, int, void) + 397 (moc_qMRMLSceneViewMenu_p.cxx:95)
8 QtCore 0x000000010a623176 QMetaObject::activate(QObject, QMetaObject const, int, void
) + 710
9 QtCore 0x000000010a708339 QSignalMapper::mapped(QString const&) + 41
10 QtCore 0x000000010a7087af QSignalMapper::map(QObject*) + 159
11 QtCore 0x000000010a708e56 QSignalMapper::qt_metacall(QMetaObject::Call, int, void) + 182
12 QtCore 0x000000010a623176 QMetaObject::activate(QObject, QMetaObject const, int, void
) + 710
13 QtGui 0x00000001099abfe1 QAction::triggered(bool) + 49
14 QtGui 0x00000001099ad3c4 QAction::activate(QAction::ActionEvent) + 180
15 QtGui 0x0000000109dac600 QMenuPrivate::activateCausedStack(QList<QPointer<QWidget> > const&, QAction, QAction::ActionEvent, bool) + 352
16 QtGui 0x0000000109db1cd4 QMenuPrivate::activateAction(QAction
, QAction::ActionEvent, bool) + 324
17 QtGui 0x0000000109a06a34 QWidget::event(QEvent) + 2388
18 QtGui 0x0000000109db171b QMenu::event(QEvent
) + 107
19 QtGui 0x00000001099b209d QApplicationPrivate::notify_helper(QObject, QEvent) + 189
20 QtGui 0x00000001099b9380 QApplication::notify(QObject, QEvent) + 2416
21 QtCore 0x000000010a61c9dc QCoreApplication::notifyInternal(QObject, QEvent) + 124
22 QtGui 0x00000001099b230c qt_sendSpontaneousEvent(QObject, QEvent) + 44
23 QtGui 0x0000000109969029 qt_mac_handleMouseEvent(void, void, QEvent::Type, Qt::MouseButton) + 2265
24 QtGui 0x0000000109957b66 -[QCocoaPanel sendEvent:] + 582
25 com.apple.AppKit 0x00007fff89da1afa -[NSApplication sendEvent:] + 4719
26 QtGui 0x000000010996421a -[QNSApplication sendEvent:] + 74
27 com.apple.AppKit 0x00007fff89d386de -[NSApplication run] + 474
28 QtGui 0x000000010996deb4 QEventDispatcherMac::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 1588
29 QtCore 0x000000010a6f5004 QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 68
30 QtCore 0x000000010a6f5324 QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 180
31 QtGui 0x0000000109daf3f4 QMenu::exec(QPoint const&, QAction*) + 116
32 QtGui 0x0000000109def651 QToolButtonPrivate::popupTimerDone() + 1025
33 QtGui 0x0000000109deffba QToolButton::qt_metacall(QMetaObject::Call, int, void) + 442
34 QtCore 0x000000010a623176 QMetaObject::activate(QObject, QMetaObject const, int, void
) + 710
35 QtGui 0x0000000109d26a73 QAbstractButtonPrivate::emitPressed() + 51
36 QtGui 0x0000000109d26c3b QAbstractButton::mousePressEvent(QMouseEvent) + 123
37 QtGui 0x0000000109df0458 QToolButton::mousePressEvent(QMouseEvent
) + 104
38 QtGui 0x0000000109a06cf4 QWidget::event(QEvent) + 3092
39 QtGui 0x0000000109d26e98 QAbstractButton::event(QEvent
) + 40
40 QtGui 0x0000000109df03df QToolButton::event(QEvent) + 63
41 QtGui 0x00000001099b209d QApplicationPrivate::notify_helper(QObject
, QEvent) + 189
42 QtGui 0x00000001099b9380 QApplication::notify(QObject
, QEvent) + 2416
43 QtCore 0x000000010a61c9dc QCoreApplication::notifyInternal(QObject
, QEvent) + 124
44 QtGui 0x00000001099b230c qt_sendSpontaneousEvent(QObject
, QEvent) + 44
45 QtGui 0x0000000109969029 qt_mac_handleMouseEvent(void
, void*, QEvent::Type, Qt::MouseButton) + 2265
46 com.apple.AppKit 0x00007fff89e6c3a7 -[NSWindow sendEvent:] + 5409
47 QtGui 0x0000000109960c5c -[QCocoaWindow sendEvent:] + 236
48 com.apple.AppKit 0x00007fff89da1afa -[NSApplication sendEvent:] + 4719
49 QtGui 0x000000010996421a -[QNSApplication sendEvent:] + 74
50 com.apple.AppKit 0x00007fff89d386de -[NSApplication run] + 474
51 QtGui 0x000000010996deb4 QEventDispatcherMac::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 1588
52 QtCore 0x000000010a6f5004 QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 68
53 QtCore 0x000000010a6f5324 QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 180
54 QtCore 0x000000010a6f66dc QCoreApplication::exec() + 188
55 0x00000001000250e5 (anonymous namespace)::slicerQtMain(int, char**) + 3478 (Main.cxx:314)
56 0x0000000100025201 main + 43 (Main.cxx:347)
57 0x0000000100022b3c start + 52

millerjv

millerjv

2012-03-19 08:25

developer   ~0003894

This crash should be fixed in r19659.

The first compare view should also not be empty upon restore anymore.

There is still an issue related to the field of view affecting scene load and scene view restore if the CompareViews did not exist prior load/restore. Any viewers that did exist may display the saved field of view. The others will have a default field of view. Still working on resolving this.

fedorov

fedorov

2012-03-23 07:59

developer   ~0003912

Jim, I tested the scene under question, and I was able to confirm that all compareviewers are initialized, and also that I can switch among the scene views without problem.

Switching between the scene views is a bit on the slower side, but I tested with Slicer compiled in debug mode, so maybe this is the reason.

It works very nicely now, thank you.

jcfr

jcfr

2012-05-09 09:20

administrator   ~0004236

Considering the last message of Andriy. Will consider that issue was solved.

Issue History

Date Modified Username Field Change
2011-10-21 11:16 kikinis New Issue
2011-10-21 11:16 kikinis Status new => assigned
2011-10-21 11:16 kikinis Assigned To => finetjul
2011-10-21 11:16 kikinis File Added: Screen Shot 2011-10-21 at 3.06.04 PM.png
2011-10-21 11:17 kikinis File Added: Screen Shot 2011-10-21 at 3.15.58 PM.png
2011-10-21 11:21 finetjul Assigned To finetjul => millerjv
2011-10-21 11:30 kikinis File Added: Screen Shot 2011-10-21 at 3.29.46 PM.png
2011-10-21 11:32 kikinis Note Added: 0003195
2011-10-25 11:42 millerjv Note Added: 0003207
2011-10-25 11:42 millerjv Status assigned => resolved
2011-10-25 11:42 millerjv Resolution open => fixed
2011-11-01 10:05 kikinis Note Added: 0003225
2011-11-01 10:05 kikinis Status resolved => feedback
2011-11-01 10:05 kikinis Resolution fixed => reopened
2011-11-01 12:53 millerjv Note Added: 0003226
2011-11-03 15:30 fedorov Note Added: 0003249
2011-11-03 15:43 fedorov Relationship added related to 0001523
2011-11-03 15:44 fedorov Note Edited: 0003249
2011-11-03 15:46 fedorov Note Added: 0003250
2011-11-03 15:48 fedorov Note Added: 0003251
2011-11-03 15:49 fedorov Relationship replaced parent of 0001523
2011-11-04 05:15 millerjv Note Added: 0003253
2011-11-04 05:31 millerjv Note Added: 0003254
2011-11-04 13:13 millerjv Note Added: 0003256
2011-11-05 12:02 fedorov Note Added: 0003263
2011-11-05 12:04 fedorov Relationship added parent of 0001526
2012-02-17 13:50 finetjul Target Version => Slicer 4.1.0
2012-02-21 09:02 millerjv Note Added: 0003659
2012-02-21 09:02 millerjv Status feedback => assigned
2012-02-21 15:45 fedorov Note Added: 0003665
2012-02-21 15:46 fedorov Note Added: 0003666
2012-02-21 15:46 fedorov Status assigned => feedback
2012-02-22 05:36 kikinis File Added: Screen Shot 2012-02-22 at 10.35.58 AM.png
2012-02-22 05:39 kikinis Note Added: 0003674
2012-02-22 05:56 millerjv Note Added: 0003676
2012-02-22 06:01 fedorov Note Added: 0003677
2012-02-22 07:25 kikinis Note Added: 0003681
2012-02-22 07:29 fedorov Note Added: 0003682
2012-02-22 07:38 kikinis Note Added: 0003683
2012-02-22 07:38 kikinis File Added: Screen Shot 2012-02-22 at 12.35.59 PM.png
2012-02-22 07:40 fedorov Note Added: 0003684
2012-02-22 08:13 millerjv Note Added: 0003687
2012-02-23 06:17 fedorov Note Added: 0003704
2012-03-16 11:29 kikinis Note Added: 0003887
2012-03-16 16:47 fedorov Note Added: 0003892
2012-03-19 08:25 millerjv Note Added: 0003894
2012-03-23 07:59 fedorov Note Added: 0003912
2012-04-06 07:03 finetjul Category GUI => Scene Views
2012-05-09 09:20 jcfr Note Added: 0004236
2012-05-09 09:20 jcfr Status feedback => resolved
2012-05-09 09:20 jcfr Fixed in Version => Slicer 4.2.0 AHM Summer 2012
2012-05-09 09:20 jcfr Resolution reopened => fixed
2012-05-09 09:22 jcfr Fixed in Version Slicer 4.2.0 AHM Summer 2012 => Slicer 4.1.0
2012-05-14 23:32 kikinis Status resolved => closed