Bug 363939 - Digikam crashes when going to full screen
Summary: Digikam crashes when going to full screen
Status: RESOLVED FIXED
Alias: None
Product: digikam
Classification: Applications
Component: Usability-FullScreen (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR crash
Target Milestone: ---
Assignee: Digikam Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-06-04 12:54 UTC by Kristian Karl
Modified: 2017-08-04 12:14 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In: 5.0.0


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Kristian Karl 2016-06-04 12:54:57 UTC
After starting Digikam, selecting the app to go into full screen mode crashes it.

Reproducible: Always

Steps to Reproduce:
1. Start app
2. Click button "Full Screen" in main tool bar.

Actual Results:  
App crashes

Expected Results:  
App to go into full screen mode.

Compiled from sources, latest commit in core master: 7fb769c27cf48408cf45cad65ba4330940663c05

Stack trace:
==========
Thread 1 "digikam" received signal SIGSEGV, Segmentation fault.
0x00007ffff5496a45 in QAction::setEnabled(bool) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
(gdb) bt
#0  0x00007ffff5496a45 in QAction::setEnabled(bool) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#1  0x00007ffff752d37e in Digikam::DigikamApp::customizedFullScreenMode (this=0x9040c0, set=true)
    at /home/krikar/dev/kde/digikam/core/app/main/digikamapp.cpp:3174
#2  0x00007ffff68487ae in Digikam::DXmlGuiWindow::slotToggleFullScreen (this=0x9040c0, set=true)
    at /home/krikar/dev/kde/digikam/core/libs/widgets/mainview/dxmlguiwindow.cpp:388
#3  0x00007ffff6923793 in Digikam::DXmlGuiWindow::qt_static_metacall (_o=0x9040c0, _c=QMetaObject::InvokeMetaMethod, 
    _id=0, _a=0x7fffffffc750) at /home/krikar/dev/kde/digikam/build/core/libs/widgets/moc_dxmlguiwindow.cpp:144
#4  0x00007ffff4b96a00 in QMetaObject::activate(QObject*, int, int, void**) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007ffff5493f72 in QAction::toggled(bool) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#6  0x00007ffff54968ae in QAction::setChecked(bool) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#7  0x00007ffff54969ec in QAction::activate(QAction::ActionEvent) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#8  0x00007ffff55983f0 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#9  0x00007ffff5598524 in QAbstractButton::mouseReleaseEvent(QMouseEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#10 0x00007ffff565fb3a in QToolButton::mouseReleaseEvent(QMouseEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#11 0x00007ffff54e15d8 in QWidget::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#12 0x00007ffff565fc19 in QToolButton::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#13 0x00007ffff549d1dc in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#14 0x00007ffff54a2bc1 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#15 0x00007ffff4b6a3d8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#16 0x00007ffff54a1995 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#17 0x00007ffff54fb3d9 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#18 0x00007ffff54fd92b in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#19 0x00007ffff549d1dc in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#20 0x00007ffff54a2446 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#21 0x00007ffff4b6a3d8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#22 0x00007ffff4eb94c0 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#23 0x00007ffff4ebb055 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#24 0x00007ffff4e9830b in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#25 0x00007fffd74e5780 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
---Type <return> to continue, or q <return> to quit---
#26 0x00007fffea5d91a7 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#27 0x00007fffea5d9400 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#28 0x00007fffea5d94ac in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#29 0x00007ffff4bbf48f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#30 0x00007ffff4b6815a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#31 0x00007ffff4b7081c in QCoreApplication::exec() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#32 0x0000000000406f22 in main (argc=1, argv=0x7fffffffdc48)
    at /home/krikar/dev/kde/digikam/core/app/main/main.cpp:252
(gdb)
Comment 1 Kristian Karl 2016-06-04 13:01:07 UTC
Version of:
- QT 5.6.0
- KDE Frameworks: 5.22.0
- Plasma version: 5.6.90 

Running unstable PPA from: https://neon.kde.org/, [deb http://archive.neon.kde.org/unstable xenial main]
Comment 2 Kristian Karl 2016-06-04 14:03:58 UTC
It looks like it crashes because DXmlGuiWindow::statusBarMenuAction() returns 0.
See:
https://github.com/KDE/digikam/blob/757374978a7a79c83e48641d12bf89cb9c334a18/libs/widgets/mainview/dxmlguiwindow.cpp#L644
Comment 3 caulier.gilles 2016-06-04 15:55:00 UTC
Git commit 9463b3d9262e7a72b567d3851b2cd14c0a5f5089 by Gilles Caulier.
Committed on 04/06/2016 at 15:53.
Pushed by cgilles into branch 'master'.

prevent a crash if returned status Bar Menu Action is null
FIXED-IN:5.0.0

M  +3    -1    app/main/digikamapp.cpp
M  +2    -0    libs/widgets/mainview/dxmlguiwindow.cpp
M  +3    -1    utilities/imageeditor/editor/editorwindow.cpp
M  +3    -1    utilities/importui/main/importui.cpp
M  +3    -1    utilities/lighttable/lighttablewindow.cpp
M  +3    -1    utilities/queuemanager/main/queuemgrwindow.cpp

http://commits.kde.org/digikam/9463b3d9262e7a72b567d3851b2cd14c0a5f5089
Comment 4 Kristian Karl 2016-06-04 16:14:07 UTC
I can confirm the fix. 
Thanx for the quick resolution.