View Issue Details

IDProjectCategoryView StatusLast Update
0003918Slicer4Module SubjectHierarchypublic2018-03-02 11:07
Reporteralexy Assigned Topinter  
PrioritynormalSeveritycrashReproducibilityalways
Status closedResolutionfixed 
Product Version 
Target VersionFixed in VersionSlicer 4.5.0-1 
Summary0003918: deleting a hierarchy in Models module crashes slicer
Description

I tracked it to SubjectHierarchy removing multiple nodes while only one node is removed in ModelsHierarchy widget in
qSlicerSubjectHierarchyModuleWidgets.dll!qSlicerSubjectHierarchyPluginLogic::onNodeAboutToBeRemoved(vtkObject sceneObject=0x00000000046648d0, vtkObject nodeObject=0x0000000018428890) Line 373 C++

The full crash stack:

vtkCommonCore-6.2.dll!vtkObjectBase::Delete()  Line 134 C++
MRMLCore.dll!vtkEventBroker::InvokeObservation(vtkObservation * observation=0x00000000124320e0, unsigned long eid=8194, void * callData=0x000000001bb93b60)  Line 849   C++
MRMLCore.dll!vtkEventBroker::ProcessEvent(vtkObservation * observation=0x00000000124320e0, vtkObject * caller=0x00000000046648d0, unsigned long eid=8194, void * callData=0x000000001bb93b60)  Line 687 + 0x25 bytes    C++
MRMLCore.dll!vtkEventBroker::Callback(vtkObject * caller=0x00000000046648d0, unsigned long eid=8194, void * clientData=0x00000000124320e0, void * callData=0x000000001bb93b60)  Line 914    C++
vtkCommonCore-6.2.dll!vtkCallbackCommand::Execute(vtkObject * caller=0x00000000046648d0, unsigned long event=8194, void * callData=0x000000001bb93b60)  Line 43 C++
vtkCommonCore-6.2.dll!vtkSubjectHelper::InvokeEvent(unsigned long event=8194, void * callData=0x000000001bb93b60, vtkObject * self=0x00000000046648d0)  Line 619    C++
vtkCommonCore-6.2.dll!vtkObject::InvokeEvent(unsigned long event=8194, void * callData=0x000000001bb93b60)  Line 785 + 0x1f bytes   C++
MRMLCore.dll!vtkMRMLScene::RemoveNode(vtkMRMLNode * n=0x000000001bb93b60)  Line 1207    C++

qSlicerSubjectHierarchyModuleWidgets.dll!qSlicerSubjectHierarchyPluginLogic::onNodeAboutToBeRemoved(vtkObject sceneObject=0x00000000046648d0, vtkObject nodeObject=0x0000000018428890) Line 373 C++
qSlicerSubjectHierarchyModuleWidgets.dll!qSlicerSubjectHierarchyPluginLogic::qt_metacall(QMetaObject::Call _c=InvokeMetaMethod, int _id=1, void _a=0x0000000000242d78) Line 98 + 0x2b bytes C++
QtCored4.dll!QMetaObject::metacall(QObject object=0x00000000124265c0, QMetaObject::Call cl=InvokeMetaMethod, int idx=5, void argv=0x0000000000242d78) Line 238 C++
QtCored4.dll!QMetaObject::activate(QObject
sender=0x0000000012431750, const QMetaObject m=0x000007fee17e8608, int local_signal_index=0, void argv=0x0000000000242d78) Line 3278 + 0x49 bytes C++
CTKVisualizationVTKCore.dll!ctkVTKConnection::emitExecute(vtkObject
_t1=0x00000000046648d0, vtkObject _t2=0x0000000018428890) Line 97 C++
CTKVisualizationVTKCore.dll!ctkVTKConnectionPrivate::execute(vtkObject
vtk_obj=0x00000000046648d0, unsigned long vtk_event=8194, void client_data=0x00000000124318d0, void call_data=0x0000000018428890) Line 420 C++
CTKVisualizationVTKCore.dll!ctkVTKConnectionPrivate::DoCallback(vtkObject vtk_obj=0x00000000046648d0, unsigned long event=8194, void client_data=0x00000000124318d0, void call_data=0x0000000018428890) Line 382 C++
vtkCommonCore-6.2.dll!vtkCallbackCommand::Execute(vtkObject
caller=0x00000000046648d0, unsigned long event=8194, void callData=0x0000000018428890) Line 43 C++
MRMLCore.dll!vtkEventBroker::InvokeObservation(vtkObservation
observation=0x00000000124320e0, unsigned long eid=8194, void callData=0x0000000018428890) Line 842 C++
MRMLCore.dll!vtkEventBroker::ProcessEvent(vtkObservation
observation=0x00000000124320e0, vtkObject caller=0x00000000046648d0, unsigned long eid=8194, void callData=0x0000000018428890) Line 687 + 0x25 bytes C++
MRMLCore.dll!vtkEventBroker::Callback(vtkObject caller=0x00000000046648d0, unsigned long eid=8194, void clientData=0x00000000124320e0, void callData=0x0000000018428890) Line 914 C++
vtkCommonCore-6.2.dll!vtkCallbackCommand::Execute(vtkObject
caller=0x00000000046648d0, unsigned long event=8194, void callData=0x0000000018428890) Line 43 C++
vtkCommonCore-6.2.dll!vtkSubjectHelper::InvokeEvent(unsigned long event=8194, void
callData=0x0000000018428890, vtkObject self=0x00000000046648d0) Line 619 C++
vtkCommonCore-6.2.dll!vtkObject::InvokeEvent(unsigned long event=8194, void
callData=0x0000000018428890) Line 785 + 0x1f bytes C++
MRMLCore.dll!vtkMRMLScene::RemoveNode(vtkMRMLNode n=0x0000000018428890) Line 1207 C++
MRMLLogic.dll!vtkMRMLDisplayableHierarchyLogic::DeleteHierarchyNodeAndChildren(vtkMRMLDisplayableHierarchyNode
hnode=0x000000001bb56a50) Line 218 C++
qSlicerModelsModule.dll!qSlicerModelsModuleWidget::deleteMultipleModels() Line 286 + 0x2a bytes C++
qSlicerModelsModule.dll!qSlicerModelsModuleWidget::qt_metacall(QMetaObject::Call _c=InvokeMetaMethod, int _id=2, void _a=0x0000000000243fa0) Line 92 + 0xa bytes C++
QtCored4.dll!QMetaObject::metacall(QObject object=0x00000000133bef60, QMetaObject::Call cl=InvokeMetaMethod, int idx=31, void argv=0x0000000000243fa0) Line 238 C++
QtCored4.dll!QMetaObject::activate(QObject
sender=0x0000000018fde360, const QMetaObject m=0x00000000661340a8, int local_signal_index=1, void argv=0x0000000000243fa0) Line 3278 + 0x49 bytes C++
QtGuid4.dll!QAction::triggered(bool _t1=false) Line 264 C++
QtGuid4.dll!QAction::activate(QAction::ActionEvent event=Trigger) Line 1259 C++
QtGuid4.dll!QMenuPrivate::activateCausedStack(const QList<QPointer<QWidget> > & causedStack={...}, QAction
action=0x0000000018fde360, QAction::ActionEvent action_e=Trigger, bool self=true) Line 1007 C++
QtGuid4.dll!QMenuPrivate::activateAction(QAction action=0x0000000018fde360, QAction::ActionEvent action_e=Trigger, bool self=true) Line 1100 C++
QtGuid4.dll!QMenu::mouseReleaseEvent(QMouseEvent
e=0x0000000000245248) Line 2297 C++
QtGuid4.dll!QWidget::event(QEvent event=0x0000000000245248) Line 8296 C++
QtGuid4.dll!QMenu::event(QEvent
e=0x0000000000245248) Line 2406 C++
QtGuid4.dll!QApplicationPrivate::notify_helper(QObject receiver=0x0000000018d65690, QEvent e=0x0000000000245248) Line 4481 + 0x15 bytes C++
QtGuid4.dll!QApplication::notify(QObject receiver=0x0000000018d65690, QEvent e=0x0000000000245248) Line 4042 + 0x51 bytes C++
qSlicerBaseQTGUI.dll!qSlicerApplication::notify(QObject receiver=0x0000000018d65690, QEvent event=0x0000000000245248) Line 330 + 0x1e bytes C++
QtCored4.dll!QCoreApplication::notifyInternal(QObject receiver=0x0000000018d65690, QEvent event=0x0000000000245248) Line 787 + 0x26 bytes C++
QtCored4.dll!QCoreApplication::sendSpontaneousEvent(QObject receiver=0x0000000018d65690, QEvent event=0x0000000000245248) Line 218 + 0x4c bytes C++
QtGuid4.dll!QApplicationPrivate::sendMouseEvent(QWidget receiver=0x0000000018d65690, QMouseEvent event=0x0000000000245248, QWidget alienWidget=0x0000000000000000, QWidget nativeWidget=0x0000000018d65690, QWidget buttonDown=0x0000000066135df0, QPointer<QWidget> & lastMouseReceiver={...}, bool spontaneous=true) Line 3139 + 0x16 bytes C++
QtGuid4.dll!QETWidget::translateMouseEvent(const tagMSG & msg={...}) Line 3234 + 0x3f bytes C++
QtGuid4.dll!QtWndProc(HWND * hwnd=0x0000000000220faa, unsigned int message=514, unsigned int64 wParam=0, __int64 lParam=2228252) Line 1659 + 0x15 bytes C++
user32.dll!0000000077319bd1()
[Frames below may be incorrect and/or missing, no symbols loaded for user32.dll]
user32.dll!00000000773198da()
QtCored4.dll!QEventDispatcherWin32::processEvents(QFlags<enum QEventLoop::ProcessEventsFlag> flags=0x00000000002495b0) Line 810 C++
QtGuid4.dll!QGuiEventDispatcherWin32::processEvents(QFlags<enum QEventLoop::ProcessEventsFlag>
flags=0x00000000002495fc) Line 1170 + 0x27 bytes C++
QtCored4.dll!QEventLoop::processEvents(QFlags<enum QEventLoop::ProcessEventsFlag> flags=0x0000000000249668) Line 150 C++
QtCored4.dll!QEventLoop::exec(QFlags<enum QEventLoop::ProcessEventsFlag>
flags=0x00000000002496f0) Line 201 + 0x53 bytes C++
QtGuid4.dll!QMenu::exec(const QPoint & p={...}, QAction action=0x0000000000000000) Line 2050 C++
qMRMLWidgets.dll!qMRMLTreeView::mousePressEvent(QMouseEvent
e=0x000000000024af18) Line 780 + 0x23 bytes C++
QtGuid4.dll!QWidget::event(QEvent event=0x000000000024af18) Line 8292 C++
QtGuid4.dll!QFrame::event(QEvent
e=0x000000000024af18) Line 557 + 0xf bytes C++
QtGuid4.dll!QAbstractScrollArea::viewportEvent(QEvent e=0x000000000024af18) Line 1043 + 0xf bytes C++
QtGuid4.dll!QAbstractItemView::viewportEvent(QEvent
event=0x000000000024af18) Line 1629 C++
QtGuid4.dll!QTreeView::viewportEvent(QEvent event=0x000000000024af18) Line 1257 C++
QtGuid4.dll!QAbstractScrollAreaPrivate::viewportEvent(QEvent
event=0x000000000024af18) Line 100 + 0x35 bytes C++
QtGuid4.dll!QAbstractScrollAreaFilter::eventFilter(QObject o=0x0000000018704850, QEvent e=0x000000000024af18) Line 116 + 0x3d bytes C++
QtCored4.dll!QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject receiver=0x0000000018704850, QEvent event=0x000000000024af18) Line 902 + 0x1a bytes C++
QtGuid4.dll!QApplicationPrivate::notify_helper(QObject receiver=0x0000000018704850, QEvent e=0x000000000024af18) Line 4477 + 0x15 bytes C++
QtGuid4.dll!QApplication::notify(QObject receiver=0x0000000018704850, QEvent e=0x000000000024af18) Line 4042 + 0x51 bytes C++
qSlicerBaseQTGUI.dll!qSlicerApplication::notify(QObject receiver=0x0000000018704850, QEvent event=0x000000000024af18) Line 330 + 0x1e bytes C++
QtCored4.dll!QCoreApplication::notifyInternal(QObject receiver=0x0000000018704850, QEvent event=0x000000000024af18) Line 787 + 0x26 bytes C++
QtCored4.dll!QCoreApplication::sendSpontaneousEvent(QObject receiver=0x0000000018704850, QEvent event=0x000000000024af18) Line 218 + 0x4c bytes C++
QtGuid4.dll!QApplicationPrivate::sendMouseEvent(QWidget receiver=0x0000000018704850, QMouseEvent event=0x000000000024af18, QWidget alienWidget=0x0000000018704850, QWidget nativeWidget=0x000000000ed5ddc0, QWidget buttonDown=0x0000000066135df0, QPointer<QWidget> & lastMouseReceiver={...}, bool spontaneous=true) Line 3139 + 0x16 bytes C++
QtGuid4.dll!QETWidget::translateMouseEvent(const tagMSG & msg={...}) Line 3321 + 0x3f bytes C++
QtGuid4.dll!QtWndProc(HWND * hwnd=0x0000000000170cb0, unsigned int message=516, unsigned int64 wParam=2, int64 lParam=13566102) Line 1659 + 0x15 bytes C++
user32.dll!0000000077319bd1()
user32.dll!00000000773198da()
QtCored4.dll!QEventDispatcherWin32::processEvents(QFlags<enum QEventLoop::ProcessEventsFlag> flags=0x000000000024f1c0) Line 810 C++
QtGuid4.dll!QGuiEventDispatcherWin32::processEvents(QFlags<enum QEventLoop::ProcessEventsFlag>
flags=0x000000000024f20c) Line 1170 + 0x27 bytes C++
QtCored4.dll!QEventLoop::processEvents(QFlags<enum QEventLoop::ProcessEventsFlag> flags=0x000000000024f278) Line 150 C++
QtCored4.dll!QEventLoop::exec(QFlags<enum QEventLoop::ProcessEventsFlag>
flags=0x000000000024f300) Line 201 + 0x53 bytes C++
QtCored4.dll!QCoreApplication::exec() Line 1064 + 0x23 bytes C++
QtGuid4.dll!QApplication::exec() Line 3756 C++
SlicerApp-real.exe!`anonymous namespace'::SlicerAppMain(int argc=1, char argv=0x0000000004622040) Line 209 + 0x6 bytes C++
SlicerApp-real.exe!WinMain(HINSTANCE
hInstance=0x000000013f8a0000, HINSTANCE__ hPrevInstance=0x0000000000000000, char * lpCmdLine=0x0000000000446d6a, int nShowCmd=1) Line 228 + 0xe bytes C++
SlicerApp-real.exe!__tmainCRTStartup() Line 578 + 0x42 bytes C
SlicerApp-real.exe!WinMainCRTStartup() Line 403 C
kernel32.dll!00000000774159ed()
ntdll.dll!000000007754c541()

TagsNo tags attached.

Activities

pinter

pinter

2014-12-12 08:40

developer   ~0012786

Fixed and explained in
http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&amp;revision=23829
Please test and close

Related Changesets

Import 2017-06-07 23:51:09: master 594fe765

2014-12-12 13:20:51

pinter

Details Diff
BUG: Subject hierarchy does not try to remove non-SH hierarchy nodes when data node is deleted

When a (non-SH) node is removed, the related subject hierarchy node is removed with it, so that it's not left dangling and become invalid. Previously the occasional other type hierarchy nodes were removed as well. This has caused problems when deleting the nodes in other modules handling hierarchies due to different handling of node deletion, so this feature has been removed.

Fixes 0003918

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

Issue History

Date Modified Username Field Change
2014-12-12 08:21 alexy New Issue
2014-12-12 08:21 alexy Status new => assigned
2014-12-12 08:21 alexy Assigned To => pinter
2014-12-12 08:21 alexy Severity major => crash
2014-12-12 08:21 alexy Description Updated
2014-12-12 08:40 pinter Note Added: 0012786
2014-12-12 08:40 pinter Status assigned => resolved
2014-12-12 08:40 pinter Fixed in Version => Slicer 4.4.1
2014-12-12 08:40 pinter Resolution open => fixed
2015-09-09 08:29 jcfr Fixed in Version Slicer 4.4.1 => Slicer 4.5.0-1
2017-06-10 08:51 pinter Changeset attached => Slicer master 594fe765
2018-03-02 11:07 jcfr Status resolved => closed