Mantis Bugtracker

Viewing Issue Simple Details Jump to Notes ] View Advanced ] Issue History ] Print ]
ID Category Severity Reproducibility Date Submitted Last Update
0001759 [Slicer4] Core: MRML crash always 2012-02-27 21:32 2012-08-22 12:08
Reporter finetjul View Status public  
Assigned To nicole
Priority normal Resolution fixed  
Status closed   Product Version Slicer 4.0.1
Summary 0001759: Crash when "Clipping" tissue model
Description See Steps to Reproduce.
Crash could have work with just any model (not necessarily a parent model), but with parent model, there is another problem: Clip muscles and Ligaments is automatically selected.
Additional Information Crash Backtrace:

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 ??? 000000000000000000 0 + 0
1 libvtkRendering.5.9.dylib 0x0000000112250380 vtkOpenGLRenderer::DeviceRender() + 210
2 libvtkRendering.5.9.dylib 0x00000001120b1dbf vtkRenderer::Render() + 3433
3 libvtkRendering.5.9.dylib 0x00000001120a7963 vtkRendererCollection::Render() + 225
4 libvtkRendering.5.9.dylib 0x00000001120c60b1 vtkRenderWindow::DoStereoRender() + 273
5 libvtkRendering.5.9.dylib 0x00000001120c67cd vtkRenderWindow::DoFDRender() + 1533
6 libvtkRendering.5.9.dylib 0x00000001120c6fc2 vtkRenderWindow::DoAARender() + 2028
7 libvtkRendering.5.9.dylib 0x00000001120c797a vtkRenderWindow::Render() + 2478
8 libCTKVisualizationVTKWidgets.0.1.dylib 0x0000000109459fc8 ctkVTKAbstractView::forceRender() + 314 (ctkVTKAbstractView.cpp:220)
9 libCTKVisualizationVTKWidgets.0.1.dylib 0x000000010948e136 ctkVTKAbstractView::qt_metacall(QMetaObject::Call, int, void**) + 190 (moc_ctkVTKAbstractView.cxx:107)
10 libCTKVisualizationVTKWidgets.0.1.dylib 0x0000000109490bef ctkVTKRenderView::qt_metacall(QMetaObject::Call, int, void**) + 71 (moc_ctkVTKRenderView.cxx:130)
11 libqMRMLWidgets.dylib 0x00000001084a3d3c qMRMLThreeDView::qt_metacall(QMetaObject::Call, int, void**) + 68 (moc_qMRMLThreeDView.cxx:78)
12 QtCore 0x00000001135c8a82 QMetaObject::activate(QObject*, QMetaObject const*, int, void**) + 978
13 QtCore 0x00000001135c7c83 QObject::event(QEvent*) + 49
14 QtGui 0x0000000112922368 QApplicationPrivate::notify_helper(QObject*, QEvent*) + 304
15 QtGui 0x00000001129225e9 QApplication::notify(QObject*, QEvent*) + 603
16 QtCore 0x00000001135b5466 QCoreApplication::notifyInternal(QObject*, QEvent*) + 104
17 QtGui 0x0000000112921afa qt_sendSpontaneousEvent(QObject*, QEvent*) + 42
18 QtGui 0x00000001128decf1 QEventDispatcherMacPrivate::activateTimer(__CFRunLoopTimer*, void*) + 193
19 com.apple.CoreFoundation 0x00007fff8ba51f84 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 20
20 com.apple.CoreFoundation 0x00007fff8ba51ad6 __CFRunLoopDoTimer + 534
21 com.apple.CoreFoundation 0x00007fff8ba32471 __CFRunLoopRun + 1617
22 com.apple.CoreFoundation 0x00007fff8ba31ae6 CFRunLoopRunSpecific + 230
23 com.apple.HIToolbox 0x00007fff81fb03d3 RunCurrentEventLoopInMode + 277
24 com.apple.HIToolbox 0x00007fff81fb758f ReceiveNextEventCommon + 181
25 com.apple.HIToolbox 0x00007fff81fb74ca BlockUntilNextEventMatchingListInMode + 62
26 com.apple.AppKit 0x00007fff848e73f1 _DPSNextEvent + 659
27 com.apple.AppKit 0x00007fff848e6cf5 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 135
28 com.apple.AppKit 0x00007fff848e362d -[NSApplication run] + 470
29 QtGui 0x00000001128e020b QEventDispatcherMac::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 799
30 QtCore 0x00000001135b2af5 QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 247
31 QtCore 0x00000001135b5a9f QCoreApplication::exec() + 175
32 0x0000000107d0a5e5 (anonymous namespace)::slicerQtMain(int, char**) + 5941 (Main.cxx:305)
33 0x0000000107d064ce main + 46 (Main.cxx:337)
34 0x0000000107d06494 start + 52
Tags No tags attached.
Attached Files

- Relationships
related to 0002163closedfinetjul models hierarchy is not workable 

-  Notes
(0003739)
nicole (administrator)
2012-02-29 12:53

I can see part of the volumes when I load the scene in linux64, but yes, the field of view seems off.

At the step:
Check Clip
the Muscle entry jumped up in the tree to above the Tendons. I reselected Muscle.
My back trace when I set the axial slice to be visible:

Program received signal SIGSEGV, Segmentation fault.
0x00007f41f27cc193 in vtkRenderer::UpdateGeometry (this=0xaca39d0) at /projects/birn/nicole/Slicer4/S4-SuperBuild/VTK/Rendering/vtkRenderer.cxx:630
630 this->PropArray[i]->RenderOpaqueGeometry(this);
(gdb) bt
#0 0x00007f41f27cc193 in vtkRenderer::UpdateGeometry (this=0xaca39d0) at /projects/birn/nicole/Slicer4/S4-SuperBuild/VTK/Rendering/vtkRenderer.cxx:630
0000001 0x00007f41f28d652f in vtkOpenGLRenderer::DeviceRender (this=0xaca39d0) at /projects/birn/nicole/Slicer4/S4-SuperBuild/VTK/Rendering/vtkOpenGLRenderer.cxx:247
0000002 0x00007f41f27cb3c2 in vtkRenderer::Render (this=0xaca39d0) at /projects/birn/nicole/Slicer4/S4-SuperBuild/VTK/Rendering/vtkRenderer.cxx:345
0000003 0x00007f41f27c9450 in vtkRendererCollection::Render (this=0xac9fa00) at /projects/birn/nicole/Slicer4/S4-SuperBuild/VTK/Rendering/vtkRendererCollection.cxx:51
0000004 0x00007f41f27dfce8 in vtkRenderWindow::DoStereoRender (this=0xaca15f0) at /projects/birn/nicole/Slicer4/S4-SuperBuild/VTK/Rendering/vtkRenderWindow.cxx:719
0000005 0x00007f41f27dfbf0 in vtkRenderWindow::DoFDRender (this=0xaca15f0) at /projects/birn/nicole/Slicer4/S4-SuperBuild/VTK/Rendering/vtkRenderWindow.cxx:688
0000006 0x00007f41f27df69b in vtkRenderWindow::DoAARender (this=0xaca15f0) at /projects/birn/nicole/Slicer4/S4-SuperBuild/VTK/Rendering/vtkRenderWindow.cxx:575
0000007 0x00007f41f27dec66 in vtkRenderWindow::Render (this=0xaca15f0) at /projects/birn/nicole/Slicer4/S4-SuperBuild/VTK/Rendering/vtkRenderWindow.cxx:388
0000008 0x00007f41f2932c35 in vtkXOpenGLRenderWindow::Render (this=0xaca15f0) at /projects/birn/nicole/Slicer4/S4-SuperBuild/VTK/Rendering/vtkXOpenGLRenderWindow.cxx:1857
0000009 0x00007f41fe51396f in ctkVTKAbstractView::forceRender (this=0xac9f900) at /projects/birn/nicole/Slicer4/S4-SuperBuild/CTK/Libs/Visualization/VTK/Widgets/ctkVTKAbstractView.cpp:220
0000010 0x00007f41fe532486 in ctkVTKAbstractView::qt_metacall (this=0xac9f900, _c=QMetaObject::InvokeMetaMethod, _id=1, _a=0x7fff246ea810)
    at /projects/birn/nicole/Slicer4/S4-SuperBuild/CTK-build/CTK-build/Libs/Visualization/VTK/Widgets/moc_ctkVTKAbstractView.cxx:107
0000011 0x00007f41fe53402e in ctkVTKRenderView::qt_metacall (this=0xac9f900, _c=QMetaObject::InvokeMetaMethod, _id=28, _a=0x7fff246ea810)
    at /projects/birn/nicole/Slicer4/S4-SuperBuild/CTK-build/CTK-build/Libs/Visualization/VTK/Widgets/moc_ctkVTKRenderView.cxx:130
0000012 0x00007f41ff428062 in qMRMLThreeDView::qt_metacall (this=0xac9f900, _c=QMetaObject::InvokeMetaMethod, _id=28, _a=0x7fff246ea810)
    at /projects/birn/nicole/Slicer4/S4-SuperBuild/Slicer-build/Libs/MRML/Widgets/moc_qMRMLThreeDView.cxx:78
0000013 0x00007f41f4ff70b8 in QMetaObject::activate (sender=0xacf3fb0, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0xba216a0)
    at /var/tmp/qt-src/src/corelib/kernel/qobject.cpp:3272
0000014 0x00007f41f4ff2e0b in QObject::event (this=0xacf3fb0, e=0xba216a0) at /var/tmp/qt-src/src/corelib/kernel/qobject.cpp:1175
0000015 0x00007f41f5ab65df in QApplicationPrivate::notify_helper (this=0x1156500, receiver=0xacf3fb0, e=0x7fff246eafd0) at /var/tmp/qt-src/src/gui/kernel/qapplication.cpp:4396
0000016 0x00007f41f5abd1cb in QApplication::notify (this=0x7fff246eb310, receiver=0xacf3fb0, e=0x7fff246eafd0) at /var/tmp/qt-src/src/gui/kernel/qapplication.cpp:4277
0000017 0x00007f41f4fe1064 in QCoreApplication::notifyInternal (this=0x7fff246eb310, receiver=0xacf3fb0, event=0x7fff246eafd0) at /var/tmp/qt-src/src/corelib/kernel/qcoreapplication.cpp:732
0000018 0x00007f41f5011910 in sendEvent (this=0x115d150) at /var/tmp/qt-src/src/corelib/kernel/qcoreapplication.h:215
0000019 QTimerInfoList::activateTimers (this=0x115d150) at /var/tmp/qt-src/src/corelib/kernel/qeventdispatcher_unix.cpp:602
0000020 0x00007f41f500e834 in timerSourceDispatch (source=<value optimized out>) at /var/tmp/qt-src/src/corelib/kernel/qeventdispatcher_glib.cpp:184
0000021 0x000000376e63bd02 in g_main_context_dispatch () from /lib64/libglib-2.0.so.0
0000022 0x000000376e63fae8 in ?? () from /lib64/libglib-2.0.so.0
0000023 0x000000376e63fc9c in g_main_context_iteration () from /lib64/libglib-2.0.so.0
---Type <return> to continue, or q <return> to quit---
0000024 0x00007f41f500eb8c in QEventDispatcherGlib::processEvents (this=0x1159600, flags=<value optimized out>) at /var/tmp/qt-src/src/corelib/kernel/qeventdispatcher_glib.cpp:415
0000025 0x00007f41f5b672ef in QGuiEventDispatcherGlib::processEvents (this=0xba21b90, flags=<value optimized out>) at /var/tmp/qt-src/src/gui/kernel/qguieventdispatcher_glib.cpp:204
0000026 0x00007f41f4fe03b5 in QEventLoop::processEvents (this=<value optimized out>, flags=...) at /var/tmp/qt-src/src/corelib/kernel/qeventloop.cpp:149
0000027 0x00007f41f4fe0606 in QEventLoop::exec (this=0x7fff246eb280, flags=...) at /var/tmp/qt-src/src/corelib/kernel/qeventloop.cpp:201
0000028 0x00007f41f4fe2444 in QCoreApplication::exec () at /var/tmp/qt-src/src/corelib/kernel/qcoreapplication.cpp:1009
0000029 0x00000000004083b3 in (anonymous namespace)::slicerQtMain (argc=2, argv=0x7fff246eb678) at /projects/birn/nicole/Slicer4/Slicer4/Applications/SlicerQT/Main.cxx:305
0000030 0x00000000004084ba in main (argc=2, argv=0x7fff246eb678) at /projects/birn/nicole/Slicer4/Slicer4/Applications/SlicerQT/Main.cxx:337


Seems to be forcing a render before the view is ready?
(0003741)
finetjul (administrator)
2012-02-29 13:33

The crash (at this->PropArray[i]->UpdateGeometry) seem to mean that there is a "prop" (typically a vtkActor) that is deleted in the vtkRenderer.
We might want to track it down using that technique:
http://www.slicer.org/slicerWiki/index.php/Documentation/4.0/Developers/Tutorials/Troubleshooting#Track_a_crash_while_accessing_already_deleted_object_pointer [^]
(0003823)
nicole (administrator)
2012-03-09 13:59

Adding the print outs to the vtkProp and vtkRenderer classes, the problem seems to stem from a call to Render that triggers an update on the slice actor that triggers an update geometry on the actor which triggers vtkImageData to prepare for new data, which triggers a modified event on a model display node (id = vtkMRMLModelDisplayNode1), which triggers a modified on the model which goes into the model displayable manager trying to update from mrml by clearing out all model props in frame 12:

#0 vtkProp::~vtkProp (this=0x46b3240, __in_chrg=<value optimized out>) at /projects/birn/nicole/Slicer4/S4-SuperBuild/VTK/Common/vtkProp.cxx:53
0000001 0x00007f3ad2907e5a in vtkProp3D::~vtkProp3D (this=0x46b3240, __in_chrg=<value optimized out>)
    at /projects/birn/nicole/Slicer4/S4-SuperBuild/VTK/Rendering/vtkProp3D.cxx:81
0000002 0x00007f3ad277de08 in vtkActor::~vtkActor (this=0x46b3240, __in_chrg=<value optimized out>) at /projects/birn/nicole/Slicer4/S4-SuperBuild/VTK/Rendering/vtkActor.cxx:79
0000003 0x00007f3ad29f6212 in vtkOpenGLActor::~vtkOpenGLActor (this=0x46b3240, __in_chrg=<value optimized out>)
    at /projects/birn/nicole/Slicer4/S4-SuperBuild/VTK/Rendering/vtkOpenGLActor.h:42
0000004 0x00007f3ad29f6242 in vtkOpenGLActor::~vtkOpenGLActor (this=0x46b3240, __in_chrg=<value optimized out>)
    at /projects/birn/nicole/Slicer4/S4-SuperBuild/VTK/Rendering/vtkOpenGLActor.h:42
0000005 0x00007f3ac8b7d767 in vtkObjectBase::UnRegisterInternal (this=0x46b3240, check=0) at /projects/birn/nicole/Slicer4/S4-SuperBuild/VTK/Common/vtkObjectBase.cxx:279
0000006 0x00007f3ac8b7bc89 in vtkObject::UnRegisterInternal (this=0x46b3240, o=0xc043110, check=0) at /projects/birn/nicole/Slicer4/S4-SuperBuild/VTK/Common/vtkObject.cxx:885
0000007 0x00007f3ac8b7d35a in vtkObjectBase::UnRegister (this=0x46b3240, o=0xc043110) at /projects/birn/nicole/Slicer4/S4-SuperBuild/VTK/Common/vtkObjectBase.cxx:182
0000008 0x00007f3ac8aa2cf6 in vtkCollection::DeleteElement (this=0xc043110, e=0xfdcf6f0) at /projects/birn/nicole/Slicer4/S4-SuperBuild/VTK/Common/vtkCollection.cxx:56
0000009 0x00007f3ac8aa33c7 in vtkCollection::RemoveItem (this=0xc043110, i=49) at /projects/birn/nicole/Slicer4/S4-SuperBuild/VTK/Common/vtkCollection.cxx:341
0000010 0x00007f3ac8aa2f6a in vtkCollection::RemoveItem (this=0xc043110, a=0x46b3240) at /projects/birn/nicole/Slicer4/S4-SuperBuild/VTK/Common/vtkCollection.cxx:155
---Type <return> to continue, or q <return> to quit---
0000011 0x00007f3ac948ca3f in vtkViewport::RemoveViewProp (this=0xc043290, p=0x46b3240) at /projects/birn/nicole/Slicer4/S4-SuperBuild/VTK/Filtering/vtkViewport.cxx:149
0000012 0x00007f3ada791caf in vtkMRMLModelDisplayableManager::RemoveModelProps (this=0x43d6bf0)
    at /projects/birn/nicole/Slicer4/Slicer4/Libs/MRML/DisplayableManager/vtkMRMLModelDisplayableManager.cxx:1167
0000013 0x00007f3ada78f40b in vtkMRMLModelDisplayableManager::UpdateFromMRML (this=0x43d6bf0)
    at /projects/birn/nicole/Slicer4/Slicer4/Libs/MRML/DisplayableManager/vtkMRMLModelDisplayableManager.cxx:707
0000014 0x00007f3ada7c614a in vtkMRMLAbstractDisplayableManager::RequestRender (this=0x43d6bf0)
    at /projects/birn/nicole/Slicer4/Slicer4/Libs/MRML/DisplayableManager/vtkMRMLAbstractDisplayableManager.cxx:697
0000015 0x00007f3ada78e837 in vtkMRMLModelDisplayableManager::ProcessMRMLNodesEvents (this=0x43d6bf0, caller=0x52b54e0, event=17000, callData=0xdee3100)
    at /projects/birn/nicole/Slicer4/Slicer4/Libs/MRML/DisplayableManager/vtkMRMLModelDisplayableManager.cxx:459



At frame 13, model display node id is vtkMRMLModelDisplayNode11
(0003824)
nicole (administrator)
2012-03-09 14:23

Suspect that there's a logic error in vtkMRMLModelDisplayableManager::ProcessMRMLNodesEvents
as request render is true by default
(0003825)
nicole (administrator)
2012-03-09 14:39

>>> slicer.mrmlScene.GetNthNodeByClass(0,"vtkMRMLDisplayableNode").GetName()
'Red Volume Slice'
>>> slicer.mrmlScene.GetNthNodeByClass(0,"vtkMRMLDisplayableNode").GetDisplayNodeID()
'vtkMRMLModelDisplayNode1'
(0003826)
finetjul (administrator)
2012-03-09 15:08

Indeed, why does it need to remove the model props every time the scene is updated ?
At least it shouldn't do it when the renderer is rendering.
Or if it removes it, then it should not delete the prop, so it should keep a reference in it.
That seems like a dangerous fix in all cases. We might want to wait for after 4.1 (and mention that clipping is not supported).
(0003828)
pieper (administrator)
2012-03-09 16:32

Here we put a breakpoint vtkMRMLModelDisplayableManager::UpdateFromMRML and can see that is it being called from within an event callback triggered during a render. This means that the vtkProps are being removed from the renderer while a render is in process and probably leads to crashes sometimes but not always (it may be that only when the prop that is currently being rendered is removed that the crash occurs).


> MRMLDisplayableManager.dll!vtkMRMLModelDisplayableManager::UpdateFromMRML() Line 705 C++
     MRMLDisplayableManager.dll!vtkMRMLAbstractDisplayableManager::RequestRender() Line 700 C++
     MRMLDisplayableManager.dll!vtkMRMLModelDisplayableManager::ProcessMRMLNodesEvents(vtkObject * caller=0x000000000dc27030, unsigned long event=17000, void * callData=0x000000000dc2d0a0) Line 461 C++
     MRMLLogic.dll!vtkMRMLAbstractLogic::MRMLNodesCallback(vtkObject * caller=0x000000000dc27030, unsigned long eid=17000, void * clientData=0x000000000d6b0b10, void * callData=0x000000000dc2d0a0) Line 185 C++
     vtkCommon.dll!vtkCallbackCommand::Execute(vtkObject * caller=0x000000000dc27030, unsigned long event=17000, void * callData=0x000000000dc2d0a0) Line 43 C++
     MRMLCore.dll!vtkEventBroker::InvokeObservation(vtkObservation * observation=0x000000000dc8d610, void * callData=0x000000000dc2d0a0) Line 857 C++
     MRMLCore.dll!vtkEventBroker::ProcessEvent(vtkObservation * observation=0x000000000dc8d610, vtkObject * caller=0x000000000dc27030, unsigned long eid=17000, void * callData=0x000000000dc2d0a0) Line 707 + 0x1d bytes C++
     MRMLCore.dll!vtkEventBroker::Callback(vtkObject * caller=0x000000000dc27030, unsigned long eid=17000, void * clientData=0x000000000dc8d610, void * callData=0x000000000dc2d0a0) Line 929 C++
     vtkCommon.dll!vtkCallbackCommand::Execute(vtkObject * caller=0x000000000dc27030, unsigned long event=17000, void * callData=0x000000000dc2d0a0) Line 43 C++
     vtkCommon.dll!vtkSubjectHelper::InvokeEvent(unsigned long event=17000, void * callData=0x000000000dc2d0a0, vtkObject * self=0x000000000dc27030) Line 605 C++
     vtkCommon.dll!vtkObject::InvokeEvent(unsigned long event=17000, void * callData=0x000000000dc2d0a0) Line 770 + 0x1c bytes C++
     MRMLCore.dll!vtkMRMLDisplayableNode::ProcessMRMLEvents(vtkObject * caller=0x000000000dc2d0a0, unsigned long event=33, void * callData=0x0000000000000000) Line 407 C++
     MRMLCore.dll!vtkMRMLModelNode::ProcessMRMLEvents(vtkObject * caller=0x000000000dc2d0a0, unsigned long event=33, void * callData=0x0000000000000000) Line 93 C++
     MRMLCore.dll!vtkMRMLNode::MRMLCallback(vtkObject * caller=0x000000000dc2d0a0, unsigned long eid=33, void * clientData=0x000000000dc27030, void * callData=0x0000000000000000) Line 419 C++
     vtkCommon.dll!vtkCallbackCommand::Execute(vtkObject * caller=0x000000000dc2d0a0, unsigned long event=33, void * callData=0x0000000000000000) Line 43 C++
     MRMLCore.dll!vtkEventBroker::InvokeObservation(vtkObservation * observation=0x000000000dc61d00, void * callData=0x0000000000000000) Line 857 C++
     MRMLCore.dll!vtkEventBroker::ProcessEvent(vtkObservation * observation=0x000000000dc61d00, vtkObject * caller=0x000000000dc2d0a0, unsigned long eid=33, void * callData=0x0000000000000000) Line 707 + 0x1d bytes C++
     MRMLCore.dll!vtkEventBroker::Callback(vtkObject * caller=0x000000000dc2d0a0, unsigned long eid=33, void * clientData=0x000000000dc61d00, void * callData=0x0000000000000000) Line 929 C++
     vtkCommon.dll!vtkCallbackCommand::Execute(vtkObject * caller=0x000000000dc2d0a0, unsigned long event=33, void * callData=0x0000000000000000) Line 43 C++
     vtkCommon.dll!vtkSubjectHelper::InvokeEvent(unsigned long event=33, void * callData=0x0000000000000000, vtkObject * self=0x000000000dc2d0a0) Line 605 C++
     vtkCommon.dll!vtkObject::InvokeEvent(unsigned long event=33, void * callData=0x0000000000000000) Line 770 + 0x1c bytes C++
     MRMLCore.dll!vtkMRMLDisplayNode::ProcessMRMLEvents(vtkObject * caller=0x000000000dc2e720, unsigned long event=33, void * callData=0x0000000000000000) Line 607 C++
     MRMLCore.dll!vtkMRMLNode::MRMLCallback(vtkObject * caller=0x000000000dc2e720, unsigned long eid=33, void * clientData=0x000000000dc2d0a0, void * callData=0x0000000000000000) Line 419 C++
     vtkCommon.dll!vtkCallbackCommand::Execute(vtkObject * caller=0x000000000dc2e720, unsigned long event=33, void * callData=0x0000000000000000) Line 43 C++
     MRMLCore.dll!vtkEventBroker::InvokeObservation(vtkObservation * observation=0x0000000017cb2160, void * callData=0x0000000000000000) Line 857 C++
     MRMLCore.dll!vtkEventBroker::ProcessEvent(vtkObservation * observation=0x0000000017cb2160, vtkObject * caller=0x000000000dc2e720, unsigned long eid=33, void * callData=0x0000000000000000) Line 707 + 0x1d bytes C++
     MRMLCore.dll!vtkEventBroker::Callback(vtkObject * caller=0x000000000dc2e720, unsigned long eid=33, void * clientData=0x0000000017cb2160, void * callData=0x0000000000000000) Line 929 C++
     vtkCommon.dll!vtkCallbackCommand::Execute(vtkObject * caller=0x000000000dc2e720, unsigned long event=33, void * callData=0x0000000000000000) Line 43 C++
     vtkCommon.dll!vtkSubjectHelper::InvokeEvent(unsigned long event=33, void * callData=0x0000000000000000, vtkObject * self=0x000000000dc2e720) Line 605 C++
     vtkCommon.dll!vtkObject::InvokeEvent(unsigned long event=33, void * callData=0x0000000000000000) Line 770 + 0x1c bytes C++
     vtkCommon.dll!vtkObject::Modified() Line 837 C++
     vtkFiltering.dll!vtkDataObject::Initialize() Line 400 C++
     vtkFiltering.dll!vtkDataSet::Initialize() Line 58 C++
     vtkFiltering.dll!vtkImageData::Initialize() Line 123 C++
     vtkFiltering.dll!vtkImageData::PrepareForNewData() Line 215 C++
     vtkFiltering.dll!vtkDemandDrivenPipeline::ExecuteDataStart(vtkInformation * request=0x0000000017f3a180, vtkInformationVector * * inInfo=0x000000000dc2dc90, vtkInformationVector * outputs=0x000000000db6d1e0) Line 543 C++
     vtkFiltering.dll!vtkStreamingDemandDrivenPipeline::ExecuteDataStart(vtkInformation * request=0x0000000017f3a180, vtkInformationVector * * inInfoVec=0x000000000dc2dc90, vtkInformationVector * outInfoVec=0x000000000db6d1e0) Line 1059 C++
     vtkFiltering.dll!vtkDemandDrivenPipeline::ExecuteData(vtkInformation * request=0x0000000017f3a180, vtkInformationVector * * inInfo=0x000000000dc2dc90, vtkInformationVector * outInfo=0x000000000db6d1e0) Line 507 C++
     vtkFiltering.dll!vtkDemandDrivenPipeline::ProcessRequest(vtkInformation * request=0x0000000017f3a180, vtkInformationVector * * inInfoVec=0x000000000dc2dc90, vtkInformationVector * outInfoVec=0x000000000db6d1e0) Line 279 + 0x22 bytes C++
     vtkFiltering.dll!vtkStreamingDemandDrivenPipeline::ProcessRequest(vtkInformation * request=0x0000000017f3a180, vtkInformationVector * * inInfoVec=0x000000000dc2dc90, vtkInformationVector * outInfoVec=0x000000000db6d1e0) Line 276 + 0x25 bytes C++
     vtkFiltering.dll!vtkDemandDrivenPipeline::UpdateData(int outputPort=0) Line 450 C++
     vtkFiltering.dll!vtkDataObject::UpdateData() Line 1064 C++
     vtkRendering.dll!vtkTexture::IsTranslucent() Line 288 C++
     vtkRendering.dll!vtkActor::GetIsOpaque() Line 128 + 0x21 bytes C++
     vtkRendering.dll!vtkActor::RenderOpaqueGeometry(vtkViewport * vp=0x000000000d556370) Line 164 + 0xa bytes C++
     vtkRendering.dll!vtkRenderer::UpdateGeometry() Line 630 + 0x41 bytes C++
     vtkRendering.dll!vtkOpenGLRenderer::DeviceRender() Line 250 C++
     vtkRendering.dll!vtkRenderer::Render() Line 352 C++
     vtkRendering.dll!vtkRendererCollection::Render() Line 53 C++
     vtkRendering.dll!vtkRenderWindow::DoStereoRender() Line 722 C++
     vtkRendering.dll!vtkRenderWindow::DoFDRender() Line 690 C++
     vtkRendering.dll!vtkRenderWindow::DoAARender() Line 577 C++
     vtkRendering.dll!vtkRenderWindow::Render() Line 390 C++
     CTKVisualizationVTKWidgets.dll!ctkVTKAbstractView::forceRender() Line 219 C++
     CTKVisualizationVTKWidgets.dll!ctkVTKAbstractView::qt_metacall(QMetaObject::Call _c=InvokeMetaMethod, int _id=1, void * * _a=0x0000000000a6a920) Line 107 + 0xd bytes C++
     CTKVisualizationVTKWidgets.dll!ctkVTKRenderView::qt_metacall(QMetaObject::Call _c=InvokeMetaMethod, int _id=28, void * * _a=0x0000000000a6a920) Line 130 + 0x18 bytes C++
     qMRMLWidgets.dll!qMRMLThreeDView::qt_metacall(QMetaObject::Call _c=InvokeMetaMethod, int _id=28, void * * _a=0x0000000000a6a920) Line 78 + 0x19 bytes C++
     QtCored4.dll!QMetaObject::metacall(QObject * object=0x000000000d54df60, QMetaObject::Call cl=InvokeMetaMethod, int idx=28, void * * argv=0x0000000000a6a920) Line 238 C++
     QtCored4.dll!QMetaObject::activate(QObject * sender=0x000000000d5f12b0, const QMetaObject * m=0x0000000067401248, int local_signal_index=0, void * * argv=0x0000000000000000) Line 3278 + 0x49 bytes C++
     QtCored4.dll!QTimer::timeout() Line 129 C++
     QtCored4.dll!QTimer::timerEvent(QTimerEvent * e=0x0000000000a6b5b8) Line 273 C++
     QtCored4.dll!QObject::event(QEvent * e=0x0000000000a6b5b8) Line 1182 C++
     QtGuid4.dll!QApplicationPrivate::notify_helper(QObject * receiver=0x000000000d5f12b0, QEvent * e=0x0000000000a6b5b8) Line 4462 + 0x15 bytes C++
     QtGuid4.dll!QApplication::notify(QObject * receiver=0x000000000d5f12b0, QEvent * e=0x0000000000a6b5b8) Line 3862 + 0x1d bytes C++
     QtCored4.dll!QCoreApplication::notifyInternal(QObject * receiver=0x000000000d5f12b0, QEvent * event=0x0000000000a6b5b8) Line 731 + 0x26 bytes C++
     QtCored4.dll!QCoreApplication::sendEvent(QObject * receiver=0x000000000d5f12b0, QEvent * event=0x0000000000a6b5b8) Line 215 + 0x50 bytes C++
     QtCored4.dll!QEventDispatcherWin32::event(QEvent * e=0x0000000017f38610) Line 1141 C++
     QtGuid4.dll!QApplicationPrivate::notify_helper(QObject * receiver=0x00000000031c4390, QEvent * e=0x0000000017f38610) Line 4462 + 0x15 bytes C++
     QtGuid4.dll!QApplication::notify(QObject * receiver=0x00000000031c4390, QEvent * e=0x0000000017f38610) Line 3862 + 0x1d bytes C++
     QtCored4.dll!QCoreApplication::notifyInternal(QObject * receiver=0x00000000031c4390, QEvent * event=0x0000000017f38610) Line 731 + 0x26 bytes C++
     QtCored4.dll!QCoreApplication::sendEvent(QObject * receiver=0x00000000031c4390, QEvent * event=0x0000000017f38610) Line 215 + 0x50 bytes C++
     QtCored4.dll!QCoreApplicationPrivate::sendPostedEvents(QObject * receiver=0x0000000000000000, int event_type=0, QThreadData * data=0x00000000031b32f0) Line 1372 + 0xf bytes C++
     QtCored4.dll!qt_internal_proc(HWND__ * hwnd=0x00000000000a08a8, unsigned int message=1025, unsigned __int64 wp=0, __int64 lp=0) Line 499 C++
     user32.dll!0000000076d19bd1()
     [Frames below may be incorrect and/or missing, no symbols loaded for user32.dll]
     user32.dll!0000000076d198da()
     QtCored4.dll!QEventDispatcherWin32::processEvents(QFlags<enum QEventLoop::ProcessEventsFlag> * flags=0x0000000000a6f670) Line 813 C++
     QtGuid4.dll!QGuiEventDispatcherWin32::processEvents(QFlags<enum QEventLoop::ProcessEventsFlag> * flags=0x0000000000a6f6bc) Line 1170 + 0x27 bytes C++
     QtCored4.dll!QEventLoop::processEvents(QFlags<enum QEventLoop::ProcessEventsFlag> * flags=0x0000000000a6f728) Line 150 C++
     QtCored4.dll!QEventLoop::exec(QFlags<enum QEventLoop::ProcessEventsFlag> * flags=0x0000000000a6f7b0) Line 201 + 0x53 bytes C++
     QtCored4.dll!QCoreApplication::exec() Line 1008 + 0x23 bytes C++
     QtGuid4.dll!QApplication::exec() Line 3737 C++
     SlicerQT-real.exe!`anonymous namespace'::slicerQtMain(int argc=1, char * * argv=0x00000000031c16d0) Line 307 + 0x6 bytes C++
     SlicerQT-real.exe!main(int argc=1, char * * argv=0x00000000031c16d0) Line 340 C++
     SlicerQT-real.exe!__tmainCRTStartup() Line 582 + 0x19 bytes C
     SlicerQT-real.exe!mainCRTStartup() Line 399 C
     kernel32.dll!000000007702652d()
     ntdll.dll!000000007715c521()
(0003829)
pieper (administrator)
2012-03-09 17:01

After further consideration we found that we could avoid the issue of updating the props during rendering can be bypassed by checking if the vtkRenderer has a render in-process. Nicole will do some more testing to confirm that this fixes the problem.

void vtkMRMLModelDisplayableManager::UpdateFromMRML()
{
  if ( this->GetInteractor() &&
       this->GetInteractor()->GetRenderWindow() &&
      this->GetInteractor()->GetRenderWindow()->CheckInRenderStatus())
  {
      vtkErrorMacro("skipping update during render");
      return;
  }

  this->UpdateClipSlicesFromMRML();

  this->RemoveModelProps();

  this->UpdateModelHierarchies();

  this->UpdateModelsFromMRML();

  this->SetUpdateFromMRMLRequested(0);
}
(0003830)
finetjul (administrator)
2012-03-09 17:06

Sounds good.
More long term solution would be to never throw away all the vtk actors and recreate them everytime 1 model is just modified.
(0003831)
nicole (administrator)
2012-03-09 17:21

Julien: Definitely! There was a huge slow down with that many models in the scene.
Svn 19554 should fix the crash for now at least.

The odd behaviour of the tree view when selecting hierarchy nodes and adjusting display properties needs to be looked into next. I'll look at it on Monday and see if I can track down what's happening.
(0005662)
nicole (administrator)
2012-08-21 17:20

The crash isn't happening any more, will resolve Models module tree selection issues in related bug.

- Issue History
Date Modified Username Field Change
2012-02-27 21:32 finetjul New Issue
2012-02-27 21:32 finetjul Status new => assigned
2012-02-27 21:32 finetjul Assigned To => nicole
2012-02-29 12:53 nicole Note Added: 0003739
2012-02-29 13:33 finetjul Note Added: 0003741
2012-03-08 17:30 nicole Relationship added has duplicate 0001789
2012-03-09 13:59 nicole Note Added: 0003823
2012-03-09 14:23 nicole Note Added: 0003824
2012-03-09 14:39 nicole Note Added: 0003825
2012-03-09 15:08 finetjul Note Added: 0003826
2012-03-09 16:32 pieper Note Added: 0003828
2012-03-09 17:01 pieper Note Added: 0003829
2012-03-09 17:06 finetjul Note Added: 0003830
2012-03-09 17:21 nicole Note Added: 0003831
2012-03-09 17:22 nicole Relationship deleted has duplicate 0001789
2012-05-09 13:30 jcfr Target Version => Slicer 4.2.0 AHM Summer 2012
2012-08-21 17:17 nicole Relationship added related to 0002163
2012-08-21 17:20 nicole Note Added: 0005662
2012-08-21 17:20 nicole Status assigned => resolved
2012-08-21 17:20 nicole Fixed in Version => Slicer 4.1.0
2012-08-21 17:20 nicole Resolution open => fixed
2012-08-22 12:08 finetjul Status resolved => closed
2012-08-22 12:08 finetjul Fixed in Version Slicer 4.1.0 => Slicer 4.2.0 - Feature freeze Sept 1st 2012


Mantis 1.1.4[^]
Copyright © 2000 - 2008 Mantis Group
Powered by Mantis Bugtracker