View Issue Details

IDProjectCategoryView StatusLast Update
0002590Slicer4public2017-06-07 23:27
Reporterjcfr Assigned Tojcfr  
PrioritynormalSeveritycrashReproducibilityalways
Status closedResolutionfixed 
Product Version 
Target VersionSlicer 4.2.0Fixed in VersionSlicer 4.2.0 
Summary0002590: Tutorial 9 - Part3 - Switch module -> Closing slicer leads to crash
Description

Ubuntu 10.04

1) Load "ChangeTrackerScene" - See http://www.slicer.org/slicerWiki/images/b/b2/ChangeTracker2011.zip [^]

2) Follow tutorial steps until the tumor is volume rendered.

3) Select "Volume rendering" module, volume rendered tumor is hidden

4) Go back into ChangeTracker, the volume rendered is not show either

5) Close Slicer -> Exit without saving

6) Crash

TagsNo tags attached.

Relationships

related to 0002621 closedfinetjul Switching to VR after manually creating display node causes crash 
related to 0002588 closedfedorov Tutorial 9 - Part3 - Memory leaks after closing scene and then slice 
child of 0002589 closedfedorov Tutorial 9 - Part3 - Exiting and re-entering module does NOT re-display volume rendered tumor 

Activities

fedorov

fedorov

2012-10-06 08:43

developer   ~0006423

As of Oct 6, trying to quit Slicer from Step 2 closes the window, but the process never finishes. If quit is forced, here's the stack trace:

Thread 2835cc DispatchQueue 1
User stack:
9 start + 52 (in Slicer) [0x10001ea68]
9 main + 3044 (in Slicer) [0x100021064]
9 qSlicerAppMainWindow::~qSlicerAppMainWindow() + 433 (in libqSlicerApp.dylib) [0x10004e031]
9 QWidget::~QWidget() + 681 (in QtGui) [0x106b0b319]
9 QObjectPrivate::deleteChildren() + 95 (in QtCore) [0x1077362ef]
9 QWidget::~QWidget() + 681 (in QtGui) [0x106b0ae59]
9 QObjectPrivate::deleteChildren() + 95 (in QtCore) [0x1077362ef]
9 QFrame::~QFrame() + 41 (in QtGui) [0x106e76cb9]
9 QWidget::~QWidget() + 681 (in QtGui) [0x106b0b319]
9 QObjectPrivate::deleteChildren() + 95 (in QtCore) [0x1077362ef]
9 qMRMLThreeDWidget::~qMRMLThreeDWidget() + 75 (in libqMRMLWidgets.dylib) [0x100523acb]
9 QWidget::~QWidget() + 681 (in QtGui) [0x106b0b319]
9 QObjectPrivate::deleteChildren() + 95 (in QtCore) [0x1077362ef]
9 qMRMLThreeDView::~qMRMLThreeDView() + 58 (in libqMRMLWidgets.dylib) [0x10051d8ea]
9 qMRMLThreeDViewPrivate::~qMRMLThreeDViewPrivate() + 48 (in libqMRMLWidgets.dylib) [0x10051d390]
9 vtkMRMLDisplayableManagerGroup::~vtkMRMLDisplayableManagerGroup() + 101 (in libMRMLDisplayableManager.dylib) [0x103132465]
9 vtkMRMLVolumeRenderingDisplayableManager::~vtkMRMLVolumeRenderingDisplayableManager() + 69 (in libvtkSlicerVolumeRenderingModuleMRMLDisplayableManager.dylib) [0x12b7efd25]
5 vtkMRMLVolumeRenderingDisplayableManager::RemoveDisplayNode(vtkMRMLVolumeRenderingDisplayNode) + 53 (in libvtkSlicerVolumeRenderingModuleMRMLDisplayableManager.dylib) [0x12b7ef8e5]
4 std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const
, std::allocator<char> const&) + 67 (in libstdc++.6.dylib) [0x7fff8415055f]
3 char std::string::_S_construct<char const>(char const, char const, std::allocator<char> const&, std::forward_iterator_tag) + 69 (in libstdc++.6.dylib) [0x7fff8415017d]
1 std::string::_Rep::_S_create(unsigned long, unsigned long, std::allocator<char> const&) + 131 (in libstdc++.6.dylib) [0x7fff8414e4db]
1 std::string::_Rep::_S_create(unsigned long, unsigned long, std::allocator<char> const&) + 142 (in libstdc++.6.dylib) [0x7fff8414e4e6]
1 std::string::_Rep::_S_create(unsigned long, unsigned long, std::allocator<char> const&) + 121 (in libstdc++.6.dylib) [0x7fff8414e4d1]
1 operator new(unsigned long) + 97 (in libstdc++.6.dylib) [0x7fff84168f05]
1 malloc + 39 (in libSystem.B.dylib) [0x7fff8788dc83]
1 std::string::_Rep::_S_create(unsigned long, unsigned long, std::allocator<char> const&) + 148 (in libstdc++.6.dylib) [0x7fff8414e4ec]
1 strlen + 29 (in libSystem.B.dylib) [0x7fff8788ec0d]
3 vtkMRMLVolumeRenderingDisplayableManager::RemoveDisplayNode(vtkMRMLVolumeRenderingDisplayNode) + 591 (in libvtkSlicerVolumeRenderingModuleMRMLDisplayableManager.dylib) [0x12b7efaff]
2 free + 56 (in libSystem.B.dylib) [0x7fff8789214d]
1 szone_size + 215 (in libSystem.B.dylib) [0x7fff878922fe]
1 szone_size + 388 (in libSystem.B.dylib) [0x7fff878923ab]
1 __spin_lock + 13 (in commpage [libSystem.B.dylib]) [0x7fffffe0026d]
1 vtkMRMLVolumeRenderingDisplayableManager::RemoveDisplayNode(vtkMRMLVolumeRenderingDisplayNode
) + 574 (in libvtkSlicerVolumeRenderingModuleMRMLDisplayableManager.dylib) [0x12b7efaee]

Note added to related issue 0002621

fedorov

fedorov

2012-10-09 07:22

developer   ~0006464

Crash stack as of 21144:

Thread 0 Crashed: Dispatch queue: com.apple.main-thread
0 QtGui 0x0000000106bb3774 QBrush::QBrush() + 20
1 QtGui 0x0000000106ae901c QPalette::init() + 108
2 QtGui 0x0000000106ae9d3f QPalette::QPalette(Qt::GlobalColor) + 31
3 QtGui 0x0000000106ab429a QApplication::palette() + 90
4 QtGui 0x0000000106ae76bf QPalette::QPalette() + 31
5 QtGui 0x0000000106d7cf73 QStyleOption::QStyleOption(int, int) + 115
6 QtGui 0x0000000106d7d692 QStyleOptionViewItem::QStyleOptionViewItem() + 34
7 QtGui 0x0000000106f84f27 QAbstractItemView::viewOptions() const + 39
8 QtGui 0x0000000106fa8193 QListView::viewOptions() const + 35
9 QtGui 0x0000000107100a7f QComboBoxListView::viewOptions() const + 31
10 QtGui 0x0000000106f8d34c QAbstractItemViewPrivate::viewOptionsV4() const + 60
11 QtGui 0x0000000106fb20ed QListModeViewBase::indexToListViewItem(QModelIndex const&) const + 237
12 QtGui 0x0000000106fab123 QListViewPrivate::indexToListViewItem(QModelIndex const&) const + 291
13 QtGui 0x0000000106fabce4 QListView::rectForIndex(QModelIndex const&) const + 436
14 QtGui 0x0000000106facfd2 QListView::visualRect(QModelIndex const&) const + 18
15 QtGui 0x0000000106f8b58f QAbstractItemView::setCurrentIndex(QModelIndex const&) + 303
16 QtGui 0x0000000106f8dee4 QAbstractItemView::rowsAboutToBeRemoved(QModelIndex const&, int, int) + 2100
17 QtGui 0x0000000106fa5a3e QListView::rowsAboutToBeRemoved(QModelIndex const&, int, int) + 46
18 QtGui 0x0000000106f8bb45 QAbstractItemView::qt_metacall(QMetaObject::Call, int, void) + 1333
19 QtGui 0x0000000107106ec5 QListView::qt_metacall(QMetaObject::Call, int, void
) + 37
20 QtCore 0x000000010773a9d6 QMetaObject::activate(QObject, QMetaObject const, int, void) + 710
21 QtCore 0x000000010786508f QAbstractItemModel::rowsAboutToBeRemoved(QModelIndex const&, int, int) + 63
22 QtCore 0x0000000107813582 QAbstractItemModel::beginRemoveRows(QModelIndex const&, int, int) + 130
23 QtGui 0x0000000107013bde QSortFilterProxyModelPrivate::remove_proxy_interval(QVector<int>&, QVector<int>&, int, int, QModelIndex const&, Qt::Orientation, bool) + 334
24 QtGui 0x0000000107013d02 QSortFilterProxyModelPrivate::remove_source_items(QVector<int>&, QVector<int>&, QVector<int> const&, QModelIndex const&, Qt::Orientation, bool) + 274
25 QtGui 0x00000001070159ba QSortFilterProxyModelPrivate::source_items_about_to_be_removed(QModelIndex const&, int, int, Qt::Orientation) + 266
26 QtGui 0x000000010701a876 QSortFilterProxyModel::qt_metacall(QMetaObject::Call, int, void
) + 646
27 libqMRMLWidgets.dylib 0x000000010054110c qMRMLSortFilterProxyModel::qt_metacall(QMetaObject::Call, int, void) + 44
28 QtCore 0x000000010773a9d6 QMetaObject::activate(QObject, QMetaObject const, int, void
) + 710
29 QtCore 0x000000010786508f QAbstractItemModel::rowsAboutToBeRemoved(QModelIndex const&, int, int) + 63
30 QtCore 0x0000000107813582 QAbstractItemModel::beginRemoveRows(QModelIndex const&, int, int) + 130
31 QtGui 0x0000000107021bb5 QStandardItemModelPrivate::rowsAboutToBeRemoved(QStandardItem, int, int) + 69
32 QtGui 0x000000010702462e QStandardItem::removeRows(int, int) + 110
33 QtGui 0x0000000107024805 QStandardItemModel::removeRows(int, int, QModelIndex const&) + 149
34 libqMRMLWidgets.dylib 0x00000001004f6621 qMRMLSceneModel::onMRMLSceneNodeAboutToBeRemoved(vtkMRMLScene
, vtkMRMLNode) + 721
35 libvtkCommon.5.10.dylib 0x000000010b0ec551 vtkCallbackCommand::Execute(vtkObject
, unsigned long, void) + 33
36 libvtkCommon.5.10.dylib 0x000000010b0d57f7 vtkSubjectHelper::InvokeEvent(unsigned long, void
, vtkObject) + 1303
37 libMRMLCore.dylib 0x00000001055faa88 vtkMRMLScene::RemoveNode(vtkMRMLNode
) + 56
38 libMRMLCore.dylib 0x00000001055faec2 vtkMRMLScene::Clear(int) + 98
39 libvtkCommon.5.10.dylib 0x000000010b0ec551 vtkCallbackCommand::Execute(vtkObject, unsigned long, void) + 33
40 libvtkCommon.5.10.dylib 0x000000010b0d57f7 vtkSubjectHelper::InvokeEvent(unsigned long, void, vtkObject) + 1303
41 libvtkCommon.5.10.dylib 0x000000010b18c7f8 vtkObject::UnRegisterInternal(vtkObjectBase, int) + 104
42 libMRMLLogic.dylib 0x0000000103193326 vtkMRMLAbstractLogic::SetMRMLScene(vtkMRMLScene
) + 54
43 libMRMLLogic.dylib 0x0000000103193cd4 vtkMRMLAbstractLogic::~vtkMRMLAbstractLogic() + 36
44 libSlicerBaseLogic.dylib 0x000000010306b440 vtkSlicerApplicationLogic::~vtkSlicerApplicationLogic() + 1280
45 ...RMLDisplayableManager.dylib 0x0000000103136feb vtkMRMLDisplayableManagerFactory::~vtkMRMLDisplayableManagerFactory() + 59
46 ...RMLDisplayableManager.dylib 0x0000000103137cab vtkMRMLThreeDViewDisplayableManagerFactory::~vtkMRMLThreeDViewDisplayableManagerFactory() + 27
47 ...RMLDisplayableManager.dylib 0x000000010313f66d __tcf_1 + 45
48 libSystem.B.dylib 0x00007fff8789e374 __cxa_finalize + 203
49 libSystem.B.dylib 0x00007fff8789e28c exit + 18
50 0x000000010001ea6f start + 59

fedorov

fedorov

2012-10-09 07:43

developer   ~0006467

Crash only happens when quitting.

If I close scene first, and then close Slicer -- no crash.

Any suggestions who could help figuring this out? The crash is from vtkMRMLThreeDViewDisplayableManagerFactory. Who owns that code?

fedorov

fedorov

2012-10-10 19:25

developer   ~0006494

Test that allows to reproduce the issue added in r21155

pieper

pieper

2012-10-11 03:53

administrator   ~0006495

I could replicate this on windows with the following stack trace on exit.

QtCored4.dll!qt_message_output(QtMsgType msgType=QtFatalMsg, const char buf=0x000000000773f248) Line 2270 C++
QtCored4.dll!qt_message(QtMsgType msgType=QtFatalMsg, const char
msg=0x0000000065cc4a70, char ap=0x0000000000b6ce08) Line 2328 + 0x19 bytes C++
QtCored4.dll!qFatal(const char
msg=0x0000000065cc4a70, ...) Line 2512 C++
QtGuid4.dll!qt_pixmap_thread_test() Line 99 C++
QtGuid4.dll!QPixmap::QPixmap() Line 149 C++
qMRMLWidgets.dll!qvariant_cast<QPixmap>(const QVariant & v={...}) Line 583 + 0xb bytes C++
qMRMLWidgets.dll!qMRMLNodeComboBoxMenuDelegate::getStyleOption(const QStyleOptionViewItem & option={...}, const QModelIndex & index={...}) Line 140 + 0x15 bytes C++
qMRMLWidgets.dll!qMRMLNodeComboBoxMenuDelegate::sizeHint(const QStyleOptionViewItem & option={...}, const QModelIndex & index={...}) Line 56 + 0x22 bytes C++
QtGuid4.dll!QListViewPrivate::itemSize(const QStyleOptionViewItem & option={...}, const QModelIndex & index={...}) Line 1788 + 0x2d bytes C++
QtGuid4.dll!QCommonListViewBase::itemSize(const QStyleOptionViewItemV2 & opt={...}, const QModelIndex & idx={...}) Line 473 + 0x35 bytes C++
QtGuid4.dll!QListModeViewBase::indexToListViewItem(const QModelIndex & index={...}) Line 2215 + 0x7a bytes C++
QtGuid4.dll!QListViewPrivate::indexToListViewItem(const QModelIndex & index={...}) Line 1733 + 0x28 bytes C++
QtGuid4.dll!QListViewPrivate::rectForIndex(const QModelIndex & index={...}) Line 345 + 0x1a bytes C++
QtGuid4.dll!QListView::rectForIndex(const QModelIndex & index={...}) Line 1226 + 0x1c bytes C++
QtGuid4.dll!QListView::visualRect(const QModelIndex & index={...}) Line 561 + 0x14 bytes C++
QtGuid4.dll!QAbstractItemView::setCurrentIndex(const QModelIndex & index={...}) Line 1019 + 0x62 bytes C++
QtGuid4.dll!QAbstractItemView::rowsAboutToBeRemoved(const QModelIndex & parent={...}, int start=0, int end=0) Line 3238 + 0x12 bytes C++
QtGuid4.dll!QListView::rowsAboutToBeRemoved(const QModelIndex & parent={...}, int start=0, int end=0) Line 758 C++
QtGuid4.dll!QAbstractItemView::qt_metacall(QMetaObject::Call _c=InvokeMetaMethod, int _id=18, void _a=0x0000000000b6dde0) Line 236 + 0x43 bytes C++
QtGuid4.dll!QListView::qt_metacall(QMetaObject::Call _c=InvokeMetaMethod, int _id=49, void _a=0x0000000000b6dde0) Line 111 + 0x18 bytes C++
QtGuid4.dll!QComboBoxListView::qt_metacall(QMetaObject::Call _c=InvokeMetaMethod, int _id=49, void _a=0x0000000000b6dde0) Line 64 + 0x18 bytes C++
QtCored4.dll!QMetaObject::metacall(QObject object=0x0000000015e3ac90, QMetaObject::Call cl=InvokeMetaMethod, int idx=49, void argv=0x0000000000b6dde0) Line 238 C++
QtCored4.dll!QMetaObject::activate(QObject
sender=0x0000000015e3b010, const QMetaObject m=0x00000000673ff8e8, int local_signal_index=6, void argv=0x0000000000b6dde0) Line 3278 + 0x49 bytes C++
QtCored4.dll!QAbstractItemModel::rowsAboutToBeRemoved(const QModelIndex & _t1={...}, int _t2=0, int _t3=0) Line 189 C++
QtCored4.dll!QAbstractItemModel::beginRemoveRows(const QModelIndex & parent={...}, int first=0, int last=0) Line 2450 C++
QtGuid4.dll!QSortFilterProxyModelPrivate::remove_proxy_interval(QVector<int> & source_to_proxy={...}, QVector<int> & proxy_to_source={...}, int proxy_start=0, int proxy_end=0, const QModelIndex & proxy_parent={...}, Qt::Orientation orient=Vertical, bool emit_signal=true) Line 556 C++
QtGuid4.dll!QSortFilterProxyModelPrivate::remove_source_items(QVector<int> & source_to_proxy={...}, QVector<int> & proxy_to_source={...}, const QVector<int> & source_items={...}, const QModelIndex & source_parent={...}, Qt::Orientation orient=Vertical, bool emit_signal=true) Line 538 C++
QtGuid4.dll!QSortFilterProxyModelPrivate::source_items_about_to_be_removed(const QModelIndex & source_parent={...}, int start=0, int end=0, Qt::Orientation orient=Vertical) Line 838 + 0x39 bytes C++
QtGuid4.dll!QSortFilterProxyModelPrivate::_q_sourceRowsAboutToBeRemoved(const QModelIndex & source_parent={...}, int start=0, int end=0) Line 1289 C++
QtGuid4.dll!QSortFilterProxyModel::qt_metacall(QMetaObject::Call _c=InvokeMetaMethod, int _id=13, void
_a=0x0000000000b6e480) Line 136 + 0x3f bytes C++
qMRMLWidgets.dll!qMRMLSortFilterProxyModel::qt_metacall(QMetaObject::Call _c=InvokeMetaMethod, int _id=38, void
_a=0x0000000000b6e480) Line 95 + 0x25 bytes C++
QtCored4.dll!QMetaObject::metacall(QObject
object=0x0000000015e3b010, QMetaObject::Call cl=InvokeMetaMethod, int idx=38, void argv=0x0000000000b6e480) Line 238 C++
QtCored4.dll!QMetaObject::activate(QObject sender=0x0000000015e3a4b0, const QMetaObject m=0x00000000673ff8e8, int local_signal_index=6, void argv=0x0000000000b6e480) Line 3278 + 0x49 bytes C++
QtCored4.dll!QAbstractItemModel::rowsAboutToBeRemoved(const QModelIndex & _t1={...}, int _t2=0, int _t3=0) Line 189 C++
QtCored4.dll!QAbstractItemModel::beginRemoveRows(const QModelIndex & parent={...}, int first=0, int last=0) Line 2450 C++
QtGuid4.dll!QStandardItemModelPrivate::rowsAboutToBeRemoved(QStandardItem parent=0x0000000015cbc6c0, int start=0, int end=0) Line 535 + 0x1a bytes C++
QtGuid4.dll!QStandardItem::removeRows(int row=0, int count=1) Line 1619 C++
QtGuid4.dll!QStandardItemModel::removeRows(int row=0, int count=1, const QModelIndex & parent={...}) Line 2801 C++
QtCored4.dll!QAbstractItemModel::removeRow(int arow=0, const QModelIndex & aparent={...}) Line 315 + 0x34 bytes C++
qMRMLWidgets.dll!qMRMLSceneModel::onMRMLSceneNodeAboutToBeRemoved(vtkMRMLScene
scene=0x00000000045f2540, vtkMRMLNode node=0x00000000159181a0) Line 1145 + 0x62 bytes C++
qMRMLWidgets.dll!qMRMLSceneModel::onMRMLSceneEvent(vtkObject
vtk_obj=0x00000000045f2540, unsigned long event=8194, void client_data=0x0000000015e3a4b0, void call_data=0x00000000159181a0) Line 1040 C++
vtkCommon.dll!vtkCallbackCommand::Execute(vtkObject caller=0x00000000045f2540, unsigned long event=8194, void callData=0x00000000159181a0) Line 43 C++
vtkCommon.dll!vtkSubjectHelper::InvokeEvent(unsigned long event=8194, void callData=0x00000000159181a0, vtkObject self=0x00000000045f2540) Line 605 C++
vtkCommon.dll!vtkObject::InvokeEvent(unsigned long event=8194, void callData=0x00000000159181a0) Line 770 + 0x1c bytes C++
MRMLCore.dll!vtkMRMLScene::RemoveNode(vtkMRMLNode
n=0x00000000159181a0) Line 1410 C++
MRMLCore.dll!vtkMRMLScene::Clear(int removeSingletons=1) Line 466 C++
MRMLCore.dll!vtkMRMLScene::SceneCallback(vtkObject __formal=0x00000000045f2540, vtkObject formal=0x00000000045f2540, void clientData=0x00000000045f2540, vtkObject formal=0x00000000045f2540) Line 439 C++
vtkCommon.dll!vtkCallbackCommand::Execute(vtkObject caller=0x00000000045f2540, unsigned long event=2, void callData=0x0000000000000000) Line 43 C++
vtkCommon.dll!vtkSubjectHelper::InvokeEvent(unsigned long event=2, void callData=0x0000000000000000, vtkObject self=0x00000000045f2540) Line 605 C++
vtkCommon.dll!vtkObject::InvokeEvent(unsigned long event=2, void callData=0x0000000000000000) Line 770 + 0x1c bytes C++
vtkCommon.dll!vtkObject::UnRegisterInternal(vtkObjectBase
o=0x00000000045b4320, int check=0) Line 881 C++
vtkCommon.dll!vtkObjectBase::UnRegister(vtkObjectBase o=0x00000000045b4320) Line 190 C++
MRMLCore.dll!vtkObserverManager::SetObject(vtkObject
nodePtr=0x00000000045c83d0, vtkObject node=0x0000000000000000) Line 107 C++
MRMLLogic.dll!vtkMRMLAbstractLogic::SetMRMLSceneInternal(vtkMRMLScene newScene=0x0000000000000000) Line 246 C++
MRMLLogic.dll!vtkMRMLAbstractLogic::SetMRMLScene(vtkMRMLScene
newScene=0x0000000000000000) Line 233 C++
MRMLLogic.dll!vtkMRMLAbstractLogic::~vtkMRMLAbstractLogic() Line 107 C++
MRMLLogic.dll!vtkMRMLApplicationLogic::~vtkMRMLApplicationLogic() Line 113 + 0xa bytes C++
SlicerBaseLogic.dll!vtkSlicerApplicationLogic::~vtkSlicerApplicationLogic() Line 282 + 0xc5 bytes C++
SlicerBaseLogic.dll!vtkSlicerApplicationLogic::vector deleting destructor'() + 0x7f bytes C++ vtkCommon.dll!vtkObjectBase::UnRegisterInternal(vtkObjectBase * __formal=0x0000000000000000, int check=0) Line 286 + 0x31 bytes C++ vtkCommon.dll!vtkObject::UnRegisterInternal(vtkObjectBase * o=0x0000000000000000, int check=0) Line 886 C++ vtkCommon.dll!vtkObjectBase::UnRegister(vtkObjectBase * o=0x0000000000000000) Line 190 C++ vtkCommon.dll!vtkSmartPointerBase::~vtkSmartPointerBase() Line 64 C++ MRMLDisplayableManager.dll!vtkSmartPointer&lt;vtkMRMLApplicationLogic>::~vtkSmartPointer&lt;vtkMRMLApplicationLogic>() + 0x2e bytes C++ MRMLDisplayableManager.dll!vtkMRMLDisplayableManagerFactory::vtkInternal::~vtkInternal() + 0x3a bytes C++ MRMLDisplayableManager.dll!vtkMRMLDisplayableManagerFactory::vtkInternal::scalar deleting destructor'() + 0x31 bytes C++
MRMLDisplayableManager.dll!vtkMRMLDisplayableManagerFactory::~vtkMRMLDisplayableManagerFactory() Line 79 + 0x2f bytes C++
MRMLDisplayableManager.dll!vtkMRMLThreeDViewDisplayableManagerFactory::~vtkMRMLThreeDViewDisplayableManagerFactory() Line 74 + 0xa bytes C++
MRMLDisplayableManager.dll!vtkMRMLThreeDViewDisplayableManagerFactory::vector deleting destructor'() + 0x7f bytes C++ vtkCommon.dll!vtkObjectBase::UnRegisterInternal(vtkObjectBase * __formal=0x0000000000000000, int check=0) Line 286 + 0x31 bytes C++ vtkCommon.dll!vtkObject::UnRegisterInternal(vtkObjectBase * o=0x0000000000000000, int check=0) Line 886 C++ vtkCommon.dll!vtkObjectBase::UnRegister(vtkObjectBase * o=0x0000000000000000) Line 190 C++ vtkCommon.dll!vtkObjectBase::Delete() Line 135 C++ MRMLDisplayableManager.dll!vtkMRMLThreeDViewDisplayableManagerFactory::classFinalize() Line 82 + 0x2e bytes C++ MRMLDisplayableManager.dll!vtkMRMLThreeDViewDisplayableManagerFactoryInitialize::~vtkMRMLThreeDViewDisplayableManagerFactoryInitialize() Line 82 + 0x40 bytes C++ MRMLDisplayableManager.dll!dynamic atexit destructor for 'vtkMRMLThreeDViewDisplayableManagerFactoryInitializer''() + 0x26 bytes C++
MRMLDisplayableManager.dll!_CRT_INIT(void hDllHandle=0x000007fee21f0000, unsigned long dwReason=0, void lpreserved=0x0000000000000001) Line 446 C
MRMLDisplayableManager.dll!__DllMainCRTStartup(void hDllHandle=0x000007fee21f0000, unsigned long dwReason=0, void lpreserved=0x0000000000000001) Line 557 + 0x13 bytes C
MRMLDisplayableManager.dll!_DllMainCRTStartup(void hDllHandle=0x000007fee21f0000, unsigned long dwReason=0, void lpreserved=0x0000000000000001) Line 508 C
ntdll.dll!0000000077464371()
[Frames below may be incorrect and/or missing, no symbols loaded for ntdll.dll]
ntdll.dll!0000000077464180()
msvcr90d.dll!crtExitProcess(int status=0) Line 732 C
msvcr90d.dll!doexit(int code=0, int quick=0, int retcaller=0) Line 645 C
msvcr90d.dll!exit(int code=0) Line 413 C
SlicerApp-real.exe!
tmainCRTStartup() Line 595 C
SlicerApp-real.exe!WinMainCRTStartup() Line 399 C
kernel32.dll!000000007712652d()
ntdll.dll!000000007746c521()

pieper

pieper

2012-10-11 04:05

administrator   ~0006496

Note that the qFatal message is never printed. By examining the stack, one can see the message below.

Is the issue that the widgets should all stop responding when the application is gone, or is it that the widgets should have been cleaned up before the application is gone?

Another issue is that qFatal should probably always trigger a dialog box with the message and a print to a console and/or log.

static bool qt_pixmap_thread_test()
{
if (!qApp) {
qFatal("QPixmap: Must construct a QApplication before a QPaintDevice");
return false;
}

pieper

pieper

2012-10-11 04:14

administrator   ~0006497

On mac I get the same stack trace that Andrey reported above. But I also get the message below, which may be related to the fact that the application has been deleted (it is printed right before the program exits)

623: QObject::startTimer: QTimer can only be used with threads started with QThread

fedorov

fedorov

2012-10-15 08:43

developer   ~0006538

I localized the issue a bit better: if I just select a volume in one of the selectors of the first step in ChangeTracker, and then quit Slicer, I have the crash. Do I need to reset the combo box myself when the scene is closed? I looked at other modules, and this is not done there. But also I cannot reproduce the crash from other modules.

jcfr

jcfr

2012-10-29 07:55

administrator   ~0006841

Fixed in topic "2588-fix-memory-leaks"
See https://github.com/jcfr/ChangeTrackerPy/tree/2588-fix-memory-leaks

jcfr

jcfr

2012-10-29 08:10

administrator   ~0006843

Test "py_slicerCloseCrashBug2590" now passes

jcfr

jcfr

2014-03-06 04:53

administrator   ~0010746

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

Related Changesets

Slicer: 1683-launcher-with-output 1585de50

2012-10-15 11:27:08

fedorov

Details Diff
ENH: the test is simplified: the crash happens trying to quit Slicer after initializing the node selectors in the first step of the wizard (see issue 0002590)


git-svn-id: http://svn.slicer.org/Slicer4/trunk@21185 3bd1e089-480b-0410-8dfb-8563597acbee
mod - Applications/SlicerApp/Testing/Python/slicerCloseCrashBug2590.py Diff File

Issue History

Date Modified Username Field Change
2012-10-01 10:50 jcfr New Issue
2012-10-01 10:50 jcfr Relationship added child of 0002589
2012-10-01 10:50 jcfr Assigned To => fedorov
2012-10-01 10:50 jcfr Status new => assigned
2012-10-01 10:50 jcfr Target Version => Slicer 4.2.0 - coming release
2012-10-06 08:43 fedorov Note Added: 0006423
2012-10-06 08:44 fedorov Relationship added related to 0002621
2012-10-09 07:22 fedorov Note Added: 0006464
2012-10-09 07:43 fedorov Note Added: 0006467
2012-10-10 19:25 fedorov Note Added: 0006494
2012-10-11 03:53 pieper Note Added: 0006495
2012-10-11 04:05 pieper Note Added: 0006496
2012-10-11 04:14 pieper Note Added: 0006497
2012-10-11 11:44 jcfr Assigned To fedorov => jcfr
2012-10-15 08:43 fedorov Note Added: 0006538
2012-10-29 07:55 jcfr Note Added: 0006841
2012-10-29 07:58 jcfr Relationship added related to 0002588
2012-10-29 08:10 jcfr Note Added: 0006843
2012-10-29 08:32 fedorov Status assigned => resolved
2012-10-29 08:32 fedorov Fixed in Version => Slicer 4.2.0 - coming release
2012-10-29 08:32 fedorov Resolution open => fixed
2014-03-06 04:53 jcfr Note Added: 0010746
2014-03-06 04:55 jcfr Status resolved => closed
2017-06-07 23:27 fedorov Changeset attached => Slicer 1683-launcher-with-output 1585de50