View Issue Details

IDProjectCategoryView StatusLast Update
0001411Slicer4Core: MRMLpublic2012-08-21 09:43
Reporterinorton Assigned Toalexy  
PrioritynormalSeveritycrashReproducibilityalways
Status closedResolutionfixed 
Product VersionSlicer 4.0.0 
Target VersionSlicer 4.0.0Fixed in VersionSlicer 4.0.0 
Summary0001411: Deleting FBNode causes ASSERT crash
Description

Add dti volume
create fiberbundleNode using fiducialseeding
delete fiberbundleNode in data module

Additional Information

"Volume" Reader has successfully read the file "/cmn/data/nsg-tut-data/DTI.nhdr"
Show module (name): "Data"
ASSERT failure in qMRMLSceneModel::onMRMLSceneNodeAboutToBeRemoved(): "A node has been removed from the scene but the scene model has never been notified it has been added in the first place. Maybe vtkMRMLScene::AddNodeNoNotify() has been used instead of vtkMRMLScene::AddNode", file /cmn/git/Slicer4/Libs/qMRMLWidgets/qMRMLSceneModel.cxx, line 1046
error: [/cmn/git/Slicer4-sb/Slicer-build/bin/./SlicerQT-real] exit abnormally - Report the problem.
isaiah@io:/cmn/git/Slicer4-sb/Slicer-build$

TagsNo tags attached.

Activities

inorton

inorton

2011-09-12 21:44

developer   ~0002992

Doesn't happen for FBNode loaded from file.

alexy

alexy

2011-09-13 06:43

developer   ~0002999

Here is the call stack of the crash originating in the qMRMLSceneModel, reassigning to Julien:

QtCored4.dll!qt_message_output(QtMsgType msgType=QtFatalMsg, const char * buf=0x31f4d838)  Line 2247    C++
QtCored4.dll!qt_message(QtMsgType msgType=QtFatalMsg, const char * msg=0x672a40fc, char * ap=0x00b08b4c)  Line 2305 + 0x12 bytes    C++
QtCored4.dll!qFatal(const char * msg=0x672a40fc, ...)  Line 2488 + 0xf bytes    C++
QtCored4.dll!qt_assert_x(const char * where=0x62526da0, const char * what=0x62526cd0, const char * file=0x62526c90, int line=1046)  Line 2012 + 0x1a bytes  C++

qMRMLWidgets.dll!qMRMLSceneModel::onMRMLSceneNodeAboutToBeRemoved(vtkMRMLScene scene=0x0685ffb0, vtkMRMLNode node=0x31e7ea28) Line 1046 + 0x3e bytes C++
qMRMLWidgets.dll!qMRMLSceneModel::onMRMLSceneEvent(vtkObject vtk_obj=0x0685ffb0, unsigned long event=66013, void client_data=0x067d2708, void call_data=0x31e7ea28) Line 980 + 0x1a bytes C++
vtkCommon.dll!vtkCallbackCommand::Execute(vtkObject
caller=0x0685ffb0, unsigned long event=66013, void callData=0x31e7ea28) Line 42 + 0x1d bytes C++
vtkCommon.dll!vtkSubjectHelper::InvokeEvent(unsigned long event=66013, void
callData=0x31e7ea28, vtkObject self=0x0685ffb0) Line 602 + 0x1f bytes C++
vtkCommon.dll!vtkObject::InvokeEvent(unsigned long event=66013, void
callData=0x31e7ea28) Line 770 + 0x17 bytes C++
MRML.dll!vtkMRMLScene::RemoveNode(vtkMRMLNode n=0x31e7ea28) Line 1420 + 0x14 bytes C++
SlicerBaseLogic.dll!vtkSlicerModelsLogic::OnMRMLSceneNodeRemovedEvent(vtkMRMLNode
node=0x31d77fb8) Line 95 + 0x2b bytes C++
MRMLLogic.dll!vtkMRMLAbstractLogic::ProcessMRMLEvents(vtkObject caller=0x0685ffb0, unsigned long event=66001, void callData=0x31d77fb8) Line 355 + 0x13 bytes C++
SlicerBaseLogic.dll!vtkSlicerModelsLogic::ProcessMRMLEvents(vtkObject caller=0x0685ffb0, unsigned long event=66001, void callData=0x31d77fb8) Line 60 + 0x17 bytes C++
MRMLLogic.dll!vtkMRMLAbstractLogic::MRMLCallback(vtkObject caller=0x0685ffb0, unsigned long eid=66001, void clientData=0x20c592d8, void callData=0x31d77fb8) Line 131 + 0x1b bytes C++
vtkCommon.dll!vtkCallbackCommand::Execute(vtkObject
caller=0x0685ffb0, unsigned long event=66001, void callData=0x31d77fb8) Line 42 + 0x1d bytes C++
MRML.dll!vtkEventBroker::InvokeObservation(vtkObservation
observation=0x20cb5db8, void callData=0x31d77fb8) Line 861 + 0x5a bytes C++
MRML.dll!vtkEventBroker::ProcessEvent(vtkObservation
observation=0x20cb5db8, vtkObject caller=0x0685ffb0, unsigned long eid=66001, void callData=0x31d77fb8) Line 715 + 0x10 bytes C++
MRML.dll!vtkEventBroker::Callback(vtkObject caller=0x0685ffb0, unsigned long eid=66001, void clientData=0x20cb5db8, void callData=0x31d77fb8) Line 937 C++
vtkCommon.dll!vtkCallbackCommand::Execute(vtkObject
caller=0x0685ffb0, unsigned long event=66001, void callData=0x31d77fb8) Line 42 + 0x1d bytes C++
vtkCommon.dll!vtkSubjectHelper::InvokeEvent(unsigned long event=66001, void
callData=0x31d77fb8, vtkObject self=0x0685ffb0) Line 602 + 0x1f bytes C++
vtkCommon.dll!vtkObject::InvokeEvent(unsigned long event=66001, void
callData=0x31d77fb8) Line 770 + 0x17 bytes C++
MRML.dll!vtkMRMLScene::RemoveNode(vtkMRMLNode n=0x31d77fb8) Line 1433 + 0x14 bytes C++
qMRMLWidgets.dll!qMRMLTreeView::deleteCurrentNode() Line 578 + 0x1b bytes C++
qMRMLWidgets.dll!qMRMLTreeView::qt_metacall(QMetaObject::Call _c=InvokeMetaMethod, int _id=6, void
_a=0x00b096f4) Line 107 + 0x8 bytes C++
QtCored4.dll!QMetaObject::metacall(QObject
object=0x3135e0d0, QMetaObject::Call cl=InvokeMetaMethod, int idx=94, void argv=0x00b096f4) Line 238 C++
QtCored4.dll!QMetaObject::activate(QObject sender=0x31bfa780, const QMetaObject m=0x65d1f798, int local_signal_index=1, void argv=0x00b096f4) Line 3272 + 0x27 bytes C++
QtGuid4.dll!QAction::triggered(bool _t1=false) Line 263 + 0x15 bytes C++
QtGuid4.dll!QAction::activate(QAction::ActionEvent event=Trigger) Line 1258 C++
QtGuid4.dll!QMenuPrivate::activateCausedStack(const QList<QPointer<QWidget> > & causedStack={...}, QAction action=0x31bfa780, QAction::ActionEvent action_e=Trigger, bool self=true) Line 995 C++
QtGuid4.dll!QMenuPrivate::activateAction(QAction
action=0x31bfa780, QAction::ActionEvent action_e=Trigger, bool self=true) Line 1088 C++
QtGuid4.dll!QMenu::mouseReleaseEvent(QMouseEvent e=0x00b0a144) Line 2302 C++
QtGuid4.dll!QWidget::event(QEvent
event=0x00b0a144) Line 8188 C++
QtGuid4.dll!QMenu::event(QEvent e=0x00b0a144) Line 2411 C++
QtGuid4.dll!QApplicationPrivate::notify_helper(QObject
receiver=0x32052b80, QEvent e=0x00b0a144) Line 4396 + 0x11 bytes C++
QtGuid4.dll!QApplication::notify(QObject
receiver=0x32052b80, QEvent e=0x00b0a144) Line 3959 + 0x2f bytes C++
QtCored4.dll!QCoreApplication::notifyInternal(QObject
receiver=0x32052b80, QEvent event=0x00b0a144) Line 732 + 0x15 bytes C++
QtCored4.dll!QCoreApplication::sendSpontaneousEvent(QObject
receiver=0x32052b80, QEvent event=0x00b0a144) Line 218 + 0x38 bytes C++
QtGuid4.dll!QApplicationPrivate::sendMouseEvent(QWidget
receiver=0x32052b80, QMouseEvent event=0x00b0a144, QWidget alienWidget=0x00000000, QWidget nativeWidget=0x32052b80, QWidget buttonDown=0x65d2106c, QPointer<QWidget> & lastMouseReceiver={...}, bool spontaneous=true) Line 3056 + 0xe bytes C++
QtGuid4.dll!QETWidget::translateMouseEvent(const tagMSG & msg={...}) Line 3230 + 0x2a bytes C++
QtGuid4.dll!QtWndProc(HWND__
hwnd=0x00080426, unsigned int message=514, unsigned int wParam=0, long lParam=5242933) Line 1657 + 0xc bytes C++
user32.dll!772c6238()
[Frames below may be incorrect and/or missing, no symbols loaded for user32.dll]
user32.dll!772c68ea()
user32.dll!772c6899()
user32.dll!772c7d31()
user32.dll!772c7dfa()
QtCored4.dll!QEventDispatcherWin32::processEvents(QFlags<enum QEventLoop::ProcessEventsFlag> flags={...}) Line 806 C++
QtGuid4.dll!QGuiEventDispatcherWin32::processEvents(QFlags<enum QEventLoop::ProcessEventsFlag> flags={...}) Line 1170 + 0x15 bytes C++
QtCored4.dll!QEventLoop::processEvents(QFlags<enum QEventLoop::ProcessEventsFlag> flags={...}) Line 150 C++
QtCored4.dll!QEventLoop::exec(QFlags<enum QEventLoop::ProcessEventsFlag> flags={...}) Line 201 + 0x2d bytes C++
QtGuid4.dll!QMenu::exec(const QPoint & p={...}, QAction action=0x00000000) Line 2055 C++
qMRMLWidgets.dll!qMRMLTreeView::mousePressEvent(QMouseEvent
e=0x00b0d3e0) Line 480 + 0x23 bytes C++
QtGuid4.dll!QWidget::event(QEvent event=0x00b0d3e0) Line 8184 C++
QtGuid4.dll!QFrame::event(QEvent
e=0x00b0d3e0) Line 557 + 0xc bytes C++
QtGuid4.dll!QAbstractScrollArea::viewportEvent(QEvent e=0x00b0d3e0) Line 1043 + 0xc bytes C++
QtGuid4.dll!QAbstractItemView::viewportEvent(QEvent
event=0x00b0d3e0) Line 1620 C++
QtGuid4.dll!QTreeView::viewportEvent(QEvent event=0x00b0d3e0) Line 1257 C++
QtGuid4.dll!QAbstractScrollAreaPrivate::viewportEvent(QEvent
event=0x00b0d3e0) Line 100 + 0x28 bytes C++
QtGuid4.dll!QAbstractScrollAreaFilter::eventFilter(QObject o=0x3135e238, QEvent e=0x00b0d3e0) Line 116 + 0x29 bytes C++
QtCored4.dll!QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject receiver=0x3135e238, QEvent event=0x00b0d3e0) Line 847 + 0x15 bytes C++
QtGuid4.dll!QApplicationPrivate::notify_helper(QObject receiver=0x3135e238, QEvent e=0x00b0d3e0) Line 4392 + 0x11 bytes C++
QtGuid4.dll!QApplication::notify(QObject receiver=0x3135e238, QEvent e=0x00b0d3e0) Line 3959 + 0x2f bytes C++
QtCored4.dll!QCoreApplication::notifyInternal(QObject receiver=0x3135e238, QEvent event=0x00b0d3e0) Line 732 + 0x15 bytes C++
QtCored4.dll!QCoreApplication::sendSpontaneousEvent(QObject receiver=0x3135e238, QEvent event=0x00b0d3e0) Line 218 + 0x38 bytes C++
QtGuid4.dll!QApplicationPrivate::sendMouseEvent(QWidget receiver=0x3135e238, QMouseEvent event=0x00b0d3e0, QWidget alienWidget=0x3135e238, QWidget nativeWidget=0x121ab1c0, QWidget buttonDown=0x65d2106c, QPointer<QWidget> & lastMouseReceiver={...}, bool spontaneous=true) Line 3056 + 0xe bytes C++
QtGuid4.dll!QETWidget::translateMouseEvent(const tagMSG & msg={...}) Line 3317 + 0x2a bytes C++
QtGuid4.dll!QtWndProc(HWND hwnd=0x00070d00, unsigned int message=516, unsigned int wParam=2, long lParam=21627000) Line 1657 + 0xc bytes C++
user32.dll!772c6238()
user32.dll!772c68ea()
user32.dll!772c6899()
user32.dll!772c7d31()
user32.dll!772c7dfa()
QtCored4.dll!QEventDispatcherWin32::processEvents(QFlags<enum QEventLoop::ProcessEventsFlag> flags={...}) Line 806 C++
QtGuid4.dll!QGuiEventDispatcherWin32::processEvents(QFlags<enum QEventLoop::ProcessEventsFlag> flags={...}) Line 1170 + 0x15 bytes C++
QtCored4.dll!QEventLoop::processEvents(QFlags<enum QEventLoop::ProcessEventsFlag> flags={...}) Line 150 C++
QtCored4.dll!QEventLoop::exec(QFlags<enum QEventLoop::ProcessEventsFlag> flags={...}) Line 201 + 0x2d bytes C++
QtCored4.dll!QCoreApplication::exec() Line 1009 + 0x15 bytes C++
QtGuid4.dll!QApplication::exec() Line 3673 C++
SlicerQT-real.exe!main(int argc=1, char
* argv=0x067cb2e8) Line 378 + 0x8 bytes C++
SlicerQT-real.exe!
tmainCRTStartup() Line 582 + 0x19 bytes C
SlicerQT-real.exe!mainCRTStartup() Line 399 C
kernel32.dll!76683677()
ntdll.dll!778d9f02()
ntdll.dll!778d9ed5()

finetjul

finetjul

2011-09-13 07:09

administrator   ~0003000

Alex, are you sure there is no node added in the scene with no notification ? Or a node removed twice ?

alexy

alexy

2011-09-13 09:39

developer   ~0003002

The problem was in using AddNodeNoNotify instead of AddNode in FiducialSeeding module.

Fixed, At revision: 18039

inorton

inorton

2011-09-13 19:02

developer   ~0003012

Confirmed. Thank you!

Issue History

Date Modified Username Field Change
2011-09-12 21:44 inorton New Issue
2011-09-12 21:44 inorton Status new => assigned
2011-09-12 21:44 inorton Assigned To => alexy
2011-09-12 21:44 inorton Note Added: 0002992
2011-09-13 06:40 inorton Tag Attached: Diffusion
2011-09-13 06:43 alexy Note Added: 0002999
2011-09-13 06:43 alexy Assigned To alexy => finetjul
2011-09-13 06:43 alexy Product Version => Slicer 4.0 RSNA
2011-09-13 07:09 finetjul Note Added: 0003000
2011-09-13 09:39 alexy Note Added: 0003002
2011-09-13 09:39 alexy Assigned To finetjul => alexy
2011-09-13 09:39 alexy Status assigned => resolved
2011-09-13 09:39 alexy Resolution open => fixed
2011-09-13 19:02 inorton Note Added: 0003012
2011-09-13 19:02 inorton Status resolved => closed
2011-09-13 19:02 inorton Fixed in Version => Slicer 4.0 RSNA
2012-08-21 09:43 jcfr Target Version => Slicer 4.0.0
2013-01-27 12:27 jcfr Tag Detached: Diffusion