|
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 |
|
|
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 |
|
|
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? |
|
|
Test that allows to reproduce the issue added in r21155 |
|
|
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<vtkMRMLApplicationLogic>::~vtkSmartPointer<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()
|
|
|
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;
} |
|
|
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 |
|
|
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. |
|
|
Fixed in topic "2588-fix-memory-leaks"
See https://github.com/jcfr/ChangeTrackerPy/tree/2588-fix-memory-leaks |
|
|
Test "py_slicerCloseCrashBug2590" now passes |
|
|
Closing resolved issues that have not been updated in more than 3 months |
|