Digikam 8.0.0 in Ubuntu Lunar (in Docker container) segfaults in QObject::removeEventFilter when closing modal dialogs

Tobias Langner tlangner at bitvalve.org
Sun Aug 6 22:05:40 BST 2023


I run Digikam 8.0.0 in a Docker container for Ubuntu Lunar on my server, 
and I expose it to various users in my network through VNC. This setup 
generally works well and serves my purposes.

As of recently, I've noticed Digikam crashing on various seemingly 
innocuous actions such as closing the settings dialog or creating a new 
album. I have the hunch that it always crashes when a modal dialog is 
closed, but I'm not 100% certain whether this is all that is needed. 
Closing a non-modal dialog does not make it crash.

I ran Digikam (following the docs) with export 
QT_LOGGING_RULES="digikam*=true" but there is absolutely no log output 
before the crash happens (might be due to logs not being flushed). So I 
used gdb to debug the crash and low and behold I get

Thread 1 "digikam" received signal SIGSEGV, Segmentation fault.
0x00007ffff53e493e in QObject::removeEventFilter(QObject*) ()
    from /lib/x86_64-linux-gnu/libQt5Core.so.

with stacktrace [1]. Now I am at a loss how to continue debugging. Could 
someone help me out here?

My Docker container is fairly minimal, so it is quite possible that 
digikam is missing some dependency which might be responsible for the 
crash. Then again, I installed digikam using apt satisfying all 
dependencies, so I'm not sure.

Thanks for your help, best,

   Tobias

[1]
#0  0x00007ffff53e493e in QObject::removeEventFilter(QObject*) ()
    from /lib/x86_64-linux-gnu/libQt5Core.so.5
#1  0x00007ffff065729a in 
Sonnet::SpellCheckDecorator::~SpellCheckDecorator()
     () from /lib/x86_64-linux-gnu/libKF5SonnetUi.so.5
#2  0x00007ffff06572cd in 
Sonnet::SpellCheckDecorator::~SpellCheckDecorator()
     () from /lib/x86_64-linux-gnu/libKF5SonnetUi.so.5
#3  0x00007ffff53d98ae in QObjectPrivate::deleteChildren() ()
    from /lib/x86_64-linux-gnu/libQt5Core.so.5
#4  0x00007ffff5edc586 in QWidget::~QWidget() ()
    from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#5  0x00007ffff6e732cd in Digikam::DTextEdit::~DTextEdit() ()
    from /usr/lib/digikam/libdigikamcore.so.8.0.0
#6  0x00007ffff53d98ae in QObjectPrivate::deleteChildren() ()
    from /lib/x86_64-linux-gnu/libQt5Core.so.5
#7  0x00007ffff5edc586 in QWidget::~QWidget() ()
    from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#8  0x00007ffff5edc8cd in QWidget::~QWidget() ()
    from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#9  0x00007ffff53d98ae in QObjectPrivate::deleteChildren() ()
    from /lib/x86_64-linux-gnu/libQt5Core.so.5
#10 0x00007ffff5edc586 in QWidget::~QWidget() ()
    from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#11 0x00007ffff5edc8cd in QWidget::~QWidget() (
#12 0x00007ffff53d98ae in QObjectPrivate::deleteChildren() () from 
/lib/x86_64-linux-gnu/libQt5Core.so.5
#13 0x00007ffff5edc586 in QWidget::~QWidget() () from 
/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#14 0x00007ffff7bac4fb in ?? () from /usr/lib/digikam/libdigikamgui.so.8.0.0
#15 0x00007ffff53d98ae in QObjectPrivate::deleteChildren() () from 
/lib/x86_64-linux-gnu/libQt5Core.so.5
#16 0x00007ffff5edc586 in QWidget::~QWidget() () from 
/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#17 0x00007ffff60586bd in QStackedWidget::~QStackedWidget() () from 
/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#18 0x00007ffff53d98ae in QObjectPrivate::deleteChildren() () from 
/lib/x86_64-linux-gnu/libQt5Core.so.5
#19 0x00007ffff5edc586 in QWidget::~QWidget() () from 
/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#20 0x00007ffff607bf7d in QTabWidget::~QTabWidget() () from 
/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#21 0x00007ffff53d98ae in QObjectPrivate::deleteChildren() () from 
/lib/x86_64-linux-gnu/libQt5Core.so.5
#22 0x00007ffff5edc586 in QWidget::~QWidget() () from 
/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#23 0x00007ffff5edc8cd in QWidget::~QWidget() () from 
/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#24 0x00007ffff53d98ae in QObjectPrivate::deleteChildren() () from 
/lib/x86_64-linux-gnu/libQt5Core.so.5
#25 0x00007ffff5edc586 in QWidget::~QWidget() () from 
/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#26 0x00007ffff7ba6f2b in ?? () from /usr/lib/digikam/libdigikamgui.so.8.0.0
#27 0x00007ffff53d98ae in QObjectPrivate::deleteChildren() () from 
/lib/x86_64-linux-gnu/libQt5Core.so.5
#28 0x00007ffff5edc586 in QWidget::~QWidget() () from 
/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#29 0x00007ffff6e9c631 in ?? () from 
/usr/lib/digikam/libdigikamcore.so.8.0.0
#30 0x00007ffff53d98ae in QObjectPrivate::deleteChildren() () from 
/lib/x86_64-linux-gnu/libQt5Core.so.5
#31 0x00007ffff5edc586 in QWidget::~QWidget() () from 
/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#32 0x00007ffff6ebd12d in Digikam::DConfigDlgWdg::~DConfigDlgWdg() () 
from /usr/lib/digikam/libdigikamcore.so.8.0.0
#33 0x00007ffff53d98ae in QObjectPrivate::deleteChildren() () from 
/lib/x86_64-linux-gnu/libQt5Core.so.5
#34 0x00007ffff5edc586 in QWidget::~QWidget() () from 
/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#35 0x00007ffff7b92338 in ?? () from /usr/lib/digikam/libdigikamgui.so.8.0.0
#36 0x00007ffff53e79dc in ?? () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#37 0x00007ffff5e97546 in QAction::triggered(bool) () from 
/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#38 0x00007ffff5e9a203 in QAction::activate(QAction::ActionEvent) () 
from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#39 0x00007ffff6023342 in ?? () from 
/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#40 0x00007ffff602b24c in ?? () from 
/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#41 0x00007ffff5ee0c28 in QWidget::event(QEvent*) () from 
/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#42 0x00007ffff5e9df92 in QApplicationPrivate::notify_helper(QObject*, 
QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#43 0x00007ffff5ea6612 in QApplication::notify(QObject*, QEvent*) () 
from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#44 0x00007ffff53aee38 in QCoreApplication::notifyInternal2(QObject*, 
QEvent*) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#45 0x00007ffff5ea4712 in QApplicationPrivate::sendMouseEvent(QWidget*, 
QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, 
bool) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#46 0x00007ffff5efa625 in ?? () from 
/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#47 0x00007ffff5efd590 in ?? () from 
/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#48 0x00007ffff5e9df92 in QApplicationPrivate::notify_helper(QObject*, 
QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#49 0x00007ffff53aee38 in QCoreApplication::notifyInternal2(QObject*, 
QEvent*) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#50 0x00007ffff579740d in 
QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) 
() from /lib/x86_64-linux-gnu/libQt5Gui.so.5
#51 0x00007ffff576b4bc in 
QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) 
() from /lib/x86_64-linux-gnu/libQt5Gui.so.5
#52 0x00007fffd2c1954e in ?? () from /lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#53 0x00007fffe5ecd49d in g_main_context_dispatch () from 
/lib/x86_64-linux-gnu/libglib-2.0.so.0
#54 0x00007fffe5f28178 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#55 0x00007fffe5ecc1b0 in g_main_context_iteration () from 
/lib/x86_64-linux-gnu/libglib-2.0.so.0
#56 0x00007ffff5408e7a in 
QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) 
() from /lib/x86_64-linux-gnu/libQt5Core.so.5
#57 0x00007ffff53ad7cb in 
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from 
/lib/x86_64-linux-gnu/libQt5Core.so.5
#58 0x00007ffff53b5c1a in QCoreApplication::exec() () from 
/lib/x86_64-linux-gnu/libQt5Core.so.5
#59 0x000055555555a9a1 in ?? ()
#60 0x00007ffff4c80a90 in __libc_start_call_main 
(main=main at entry=0x555555559800, argc=argc at entry=1, 
argv=argv at entry=0x7fffffffec68) at ../sysdeps/nptl/libc_start_call_main.h:58
#61 0x00007ffff4c80b49 in __libc_start_main_impl (main=0x555555559800, 
argc=1, argv=0x7fffffffec68, init=<optimized out>, fini=<optimized out>, 
rtld_fini=<optimized out>, stack_end=0x7fffffffec58)
     at ../csu/libc-start.c:360
#62 0x000055555555b4d5 in ?? ()



More information about the Digikam-users mailing list