Page MenuHomePhabricator

MITK crashes on close after some Bundles have been closed
Closed, ResolvedPublic

Description

To reproduce:
Open a SandboxApp with InteractiveSegmentation on.
Close InteractiveSegmentation.
Close MITK.
->Crashes in mitkMessageDelegate1 (in mitkMessage.cpp).

Call Stack: (first few)

	Qmitk.dll!mitk::MessageDelegate1<QmitkDataStorageComboBox,mitk::DataTreeNode const *,void>::Execute(const mitk::DataTreeNode * t=0x0c18ccc8)  Line 219 + 0x1a bytes	C++
	mitkCore.dll!mitk::Message1<mitk::DataTreeNode const *,void>::Send(const mitk::DataTreeNode * t=0x0c18ccc8)  Line 712 + 0x20 bytes	C++
	mitkCore.dll!mitk::DataStorage::EmitRemoveNodeEvent(const mitk::DataTreeNode * node=0x0c18ccc8)  Line 190	C++
	mitkCore.dll!mitk::StandaloneDataStorage::Remove(const mitk::DataTreeNode * node=0x0c18ccc8)  Line 113	C++
	Qmitk.dll!QmitkStdMultiWidget::RemovePlanesFromDataStorage()  Line 410 + 0x2f bytes	C++
	liborg_mitk_gui_qt_commond.dll!QmitkStdMultiWidgetEditor::PartHidden(cherry::SmartPointer<cherry::IWorkbenchPartReference> partRef={...})  Line 140 + 0xe bytes	C++
	liborg_opencherry_uid.dll!cherry::MessageDelegate1<cherry::IPartListener,cherry::SmartPointer<cherry::IWorkbenchPartReference>,void>::Execute(cherry::SmartPointer<cherry::IWorkbenchPartReference> t={...})  Line 193 + 0x3c bytes	C++

Event Timeline

Actually, MITK is crashing whenever a bundle is closed, then MITK is closed.

Reassigned to Sasch; Raised severity to critical.

This is not a bug in the application framework. It is a problem of the QmitkDataStorageComboBox. ExtApp does not crash on my computer when closing views, you must have a view activated which uses QmitkDataStorageComboBox.

let's see if I'm still able to fix a bug...

actually not a 3M bug, InteractiveSegmentation is not part of 3M, instead org.mitk.gui.qt.segmentation is relevant

bugfix2817.patch

ChangeRequest

Varying event/observer mechanisms lead to calls to objects that were already destroyed. QmitkSlicesInterpolator and QmitkDataStorageComboBox do not destroy those callbacks at their own destruction.

Attached a patch and a change request, that work's for me.

[SVN revision 19946]
FIX (#2817): MITK crashes on close after InteractiveSegmentation has been closed

Varying event/observer mechanisms lead to calls to objects that were already destroyed. QmitkSlicesInterpolator and QmitkDataStorageComboBox do not release those