Camitk-imp crash when "Application-Close" on a component.
About you
Developer of a CEP
Overview
Applying "Application-Close" on a camitk component results sometimes in a crash. It doesn't seem to be deterministic. It may crash on the load or close.
Steps to Reproduce
File- Open - "brain.mha". Right click on "brain" -Application - Close. If it doesn't crash direclty, reload brain.mha and close again. It will end up crashing on the loading or the closing.
Relevant logs and/or screenshots
Crash on the loading (after 2 load close)
*** Program received signal SIGSEGV (Segmentation fault) ***
#0 tcache_get (tc_idx=<optimized out>) at malloc.c:2937
#1 __GI___libc_malloc (bytes=24) at malloc.c:3051
#2 0x00007f63c3d21c29 in operator new(unsigned long) () at /lib/x86_64-linux-gnu/libstdc++.so.6
#3 0x00007f63c2c32604 in vtkTransformConcatenationStack::New() () at /tmp/dependencies/VTK-6.3.0/Common/Transforms/vtkAbstractTransform.h:402
#4 0x00007f63c2c3284f in vtkTransform::Push() (this=0x562eaca5c000) at /tmp/dependencies/VTK-6.3.0/Common/Transforms/vtkTransform.h:280
#5 0x00007f63c2d30923 in vtkAssemblyPath::AddNode(vtkAssemblyNode*) (this=0x562eacca10d0, n=0x562eadc89e90) at /tmp/dependencies/VTK-6.3.0/Rendering/Core/vtkAssemblyPath.cxx:55
#6 0x00007f63c2d308d5 in vtkAssemblyPath::AddNode(vtkProp*, vtkMatrix4x4*) (this=0x562eacca10d0, p=0x562eac88cc70, m=0x562eacca42f0) at /tmp/dependencies/VTK-6.3.0/Rendering/Core/vtkAssemblyPath.cxx:45
#7 0x00007f63c2ccb2d2 in vtkProp3D::InitPathTraversal() (this=0x562eac88cc70) at /tmp/dependencies/VTK-6.3.0/Rendering/Core/vtkProp3D.cxx:600
#8 0x00007f63c5d6e71d in camitk::RendererWidget::addProp(vtkSmartPointer<vtkProp>, bool) () at /home/guys/.config/CamiTK/lib/libcamitkcore.so.4
#9 0x00007f63c5d55202 in camitk::InteractiveViewer::addActor(camitk::Component*, vtkSmartPointer<vtkProp>) () at /home/guys/.config/CamiTK/lib/libcamitkcore.so.4
#10 0x00007f63c5d54913 in camitk::InteractiveViewer::refresh(camitk::Viewer*) () at /home/guys/.config/CamiTK/lib/libcamitkcore.so.4
#11 0x00007f63c5d685a8 in camitk::InteractiveViewerFrame::showEvent(QShowEvent*) () at /home/guys/.config/CamiTK/lib/libcamitkcore.so.4
#12 0x00007f63c56552b6 in QWidget::event(QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#13 0x00007f63c5702d52 in QFrame::event(QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#14 0x00007f63c5612a66 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#15 0x00007f63c561c0f0 in QApplication::notify(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#16 0x00007f63c5cd9428 in camitk::Application::notify(QObject*, QEvent*) () at /home/guys/.config/CamiTK/lib/libcamitkcore.so.4
#17 0x00007f63c4bfa93a in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#18 0x00007f63c5651c17 in QWidgetPrivate::show_helper() () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#19 0x00007f63c5654d6b in QWidgetPrivate::setVisible(bool) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#20 0x00007f63c5d73ba9 in camitk::Viewer::setVisible(bool) () at /home/guys/.config/CamiTK/lib/libcamitkcore.so.4
#21 0x00007f63c5bb7793 in MedicalImageViewer::updateLayout() () at /home/guys/.config/CamiTK/lib/camitk-4.2/viewers/libmedicalimageviewer.so.4
#22 0x00007f63c5bb6043 in MedicalImageViewer::refresh(camitk::Viewer*) () at /home/guys/.config/CamiTK/lib/camitk-4.2/viewers/libmedicalimageviewer.so.4
#23 0x00007f63c5ceda2f in camitk::MainWindow::refresh() () at /home/guys/.config/CamiTK/lib/libcamitkcore.so.4
#24 0x0000562ea8d62f40 in ImpMainWindow::refresh() ()
#25 0x00007f63c5cd9c0b in camitk::Application::refresh() () at /home/guys/.config/CamiTK/lib/libcamitkcore.so.4
#26 0x00007f63c5cda83b in camitk::Application::open(QString const&) () at /home/guys/.config/CamiTK/lib/libcamitkcore.so.4
#27 0x00007f6373d0047f in OpenFile::apply() () at /home/guys/.config/CamiTK/lib/camitk-4.2/actions/libapplication.so.4.2.dev
#28 0x00007f63c5cd22b2 in camitk::Action::applyAndRegister() () at /home/guys/.config/CamiTK/lib/libcamitkcore.so.4
#29 0x0000562ea8d6700f in ImpMainWindow::openRecentDocuments() ()
#30 0x0000562ea8d61e98 in ImpMainWindow::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) ()
#31 0x00007f63c4c26300 in QMetaObject::activate(QObject*, int, int, void**) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#32 0x00007f63c560c3e6 in QAction::triggered(bool) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#33 0x00007f63c560eaa2 in QAction::activate(QAction::ActionEvent) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#34 0x00007f63c5794d12 in () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#35 0x00007f63c579c4ae in () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#36 0x00007f63c579d4d2 in QMenu::mouseReleaseEvent(QMouseEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#37 0x00007f63c56552b6 in QWidget::event(QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#38 0x00007f63c579fadb in QMenu::event(QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#39 0x00007f63c5612a66 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#40 0x00007f63c561c343 in QApplication::notify(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#41 0x00007f63c5cd9428 in camitk::Application::notify(QObject*, QEvent*) () at /home/guys/.config/CamiTK/lib/libcamitkcore.so.4
#42 0x00007f63c4bfa93a in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#43 0x00007f63c561b457 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#44 0x00007f63c5671ce4 in () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#45 0x00007f63c56741ec in () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#46 0x00007f63c5612a66 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#47 0x00007f63c561c0f0 in QApplication::notify(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#48 0x00007f63c5cd9428 in camitk::Application::notify(QObject*, QEvent*) () at /home/guys/.config/CamiTK/lib/libcamitkcore.so.4
#49 0x00007f63c4bfa93a in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#50 0x00007f63c4fe37d3 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () at /lib/x86_64-linux-gnu/libQt5Gui.so.5
#51 0x00007f63c4fe510b in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () at /lib/x86_64-linux-gnu/libQt5Gui.so.5
#52 0x00007f63c4fbf35b in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib/x86_64-linux-gnu/libQt5Gui.so.5
#53 0x00007f63bcca432e in () at /lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#54 0x00007f63c0d80fbd in g_main_context_dispatch () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#55 0x00007f63c0d81240 in () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#56 0x00007f63c0d812e3 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#57 0x00007f63c4c52565 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#58 0x00007f63c4bf94db in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#59 0x00007f63c4c01246 in QCoreApplication::exec() () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#60 0x00007f63c5cd9bbe in camitk::Application::exec() () at /home/guys/.config/CamiTK/lib/libcamitkcore.so.4
#61 0x0000562ea8d6c6d4 in main ()
Crash after closing (after 2 load close)
malloc_consolidate(): invalid chunk size
*** Program received signal SIGABRT (Aborted) ***
#0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1 0x00007f7908e07859 in __GI_abort () at abort.c:79
#2 0x00007f7908e723ee in __libc_message (action=action@entry=do_abort, fmt=fmt@entry=0x7f7908f9c285 "%s\n") at ../sysdeps/posix/libc_fatal.c:155
#3 0x00007f7908e7a47c in malloc_printerr (str=str@entry=0x7f7908f9e278 "malloc_consolidate(): invalid chunk size") at malloc.c:5347
#4 0x00007f7908e7ac58 in malloc_consolidate (av=av@entry=0x7f78fc000020) at malloc.c:4477
#5 0x00007f7908e7c160 in _int_free (av=0x7f78fc000020, p=0x7f78fc01a460, have_lock=<optimized out>) at malloc.c:4400
#6 0x00007f7909fa8637 in QObject::~QObject() () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#7 0x00007f7909f2ff3d in QItemSelectionModel::~QItemSelectionModel() () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#8 0x00007f7909f9e01e in QObjectPrivate::deleteChildren() () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#9 0x00007f790a9cac29 in QWidget::~QWidget() () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#10 0x00007f790ac4735d in QTableView::~QTableView() () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#11 0x00007f790b098f0e in camitk::ImageComponent::~ImageComponent() () at /home/guys/.config/CamiTK/lib/libcamitkcore.so.4
#12 0x00007f78bb094048 in VtkImageComponent::~VtkImageComponent() () at /home/guys/.config/CamiTK/lib/camitk-4.2/components/libvtkimage.so.4
#13 0x00007f78bb09409c in VtkImageComponent::~VtkImageComponent() () at /home/guys/.config/CamiTK/lib/camitk-4.2/components/libvtkimage.so.4
#14 0x00007f790b055eb7 in camitk::Application::close(camitk::Component*) () at /home/guys/.config/CamiTK/lib/libcamitkcore.so.4
#15 0x00007f78b90721f8 in CloseAction::apply() () at /home/guys/.config/CamiTK/lib/camitk-4.2/actions/libapplication.so.4.2.dev
#16 0x00007f790b04c2b2 in camitk::Action::applyAndRegister() () at /home/guys/.config/CamiTK/lib/libcamitkcore.so.4
#17 0x00007f790b04c068 in camitk::Action::trigger(QWidget*) () at /home/guys/.config/CamiTK/lib/libcamitkcore.so.4
#18 0x00007f790b02eac3 in camitk::Action::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) () at /home/guys/.config/CamiTK/lib/libcamitkcore.so.4
#19 0x00007f7909fa0300 in QMetaObject::activate(QObject*, int, int, void**) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#20 0x00007f790a9863e6 in QAction::triggered(bool) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#21 0x00007f790a988aa2 in QAction::activate(QAction::ActionEvent) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#22 0x00007f790ab0ed12 in () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#23 0x00007f790ab164ae in () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#24 0x00007f790ab174d2 in QMenu::mouseReleaseEvent(QMouseEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#25 0x00007f790a9cf2b6 in QWidget::event(QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#26 0x00007f790ab19adb in QMenu::event(QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#27 0x00007f790a98ca66 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#28 0x00007f790a996343 in QApplication::notify(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#29 0x00007f790b053428 in camitk::Application::notify(QObject*, QEvent*) () at /home/guys/.config/CamiTK/lib/libcamitkcore.so.4
#30 0x00007f7909f7493a in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#31 0x00007f790a995457 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#32 0x00007f790a9ebce4 in () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#33 0x00007f790a9ee1ec in () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#34 0x00007f790a98ca66 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#35 0x00007f790a9960f0 in QApplication::notify(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#36 0x00007f790b053428 in camitk::Application::notify(QObject*, QEvent*) () at /home/guys/.config/CamiTK/lib/libcamitkcore.so.4
#37 0x00007f7909f7493a in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#38 0x00007f790a35d7d3 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () at /lib/x86_64-linux-gnu/libQt5Gui.so.5
#39 0x00007f790a35f10b in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () at /lib/x86_64-linux-gnu/libQt5Gui.so.5
#40 0x00007f790a33935b in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib/x86_64-linux-gnu/libQt5Gui.so.5
#41 0x00007f790201e32e in () at /lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#42 0x00007f79060fafbd in g_main_context_dispatch () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#43 0x00007f79060fb240 in () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#44 0x00007f79060fb2e3 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#45 0x00007f7909fcc565 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#46 0x00007f7909f734db in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#47 0x00007f790ab140b1 in QMenu::exec(QPoint const&, QAction*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#48 0x00007f790af190bf in Explorer::rightButtonPressed(QPoint const&) () at /home/guys/.config/CamiTK/lib/camitk-4.2/viewers/libexplorer.so.4
#49 0x00007f790af169cc in Explorer::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) () at /home/guys/.config/CamiTK/lib/camitk-4.2/viewers/libexplorer.so.4
#50 0x00007f7909fa0300 in QMetaObject::activate(QObject*, int, int, void**) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#51 0x00007f790a9b52d9 in QWidget::customContextMenuRequested(QPoint const&) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#52 0x00007f790a9cff85 in QWidget::event(QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#53 0x00007f790aa7cd52 in QFrame::event(QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#54 0x00007f790ac01482 in QAbstractItemView::viewportEvent(QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#55 0x00007f790ac6f62f in QTreeView::viewportEvent(QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#56 0x00007f7909f7464b in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#57 0x00007f790a98ca55 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#58 0x00007f790a996b93 in QApplication::notify(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#59 0x00007f790b053428 in camitk::Application::notify(QObject*, QEvent*) () at /home/guys/.config/CamiTK/lib/libcamitkcore.so.4
#60 0x00007f7909f7493a in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#61 0x00007f790a9eb94a in () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#62 0x00007f790a9ee1ec in () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#63 0x00007f790a98ca66 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#64 0x00007f790a9960f0 in QApplication::notify(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#65 0x00007f790b053428 in camitk::Application::notify(QObject*, QEvent*) () at /home/guys/.config/CamiTK/lib/libcamitkcore.so.4
#66 0x00007f7909f7493a in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#67 0x00007f790a35d7d3 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () at /lib/x86_64-linux-gnu/libQt5Gui.so.5
#68 0x00007f790a35f10b in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () at /lib/x86_64-linux-gnu/libQt5Gui.so.5
#69 0x00007f790a33935b in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib/x86_64-linux-gnu/libQt5Gui.so.5
#70 0x00007f790201e32e in () at /lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#71 0x00007f79060fafbd in g_main_context_dispatch () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#72 0x00007f79060fb240 in () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#73 0x00007f79060fb2e3 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#74 0x00007f7909fcc565 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#75 0x00007f7909f734db in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#76 0x00007f7909f7b246 in QCoreApplication::exec() () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#77 0x00007f790b053bbe in camitk::Application::exec() () at /home/guys/.config/CamiTK/lib/libcamitkcore.so.4
#78 0x000055ad5179f6d4 in main ()
Interpretation & Possible fixes
At the beginning I thought it was the fault of the destructors of my component, but since the bug also appears with the basic component of CamiTK, I have no idea where the issue could come from.
CamiTK Version
CamiTK 4.2.dev.develop.32c2e525
please do not remove anything below this line