Bug 492191

Summary: digiKam 8.4.0 crashes when accessing Settings->Configure digiKam.
Product: [Applications] digikam Reporter: matt.gordon
Component: Setup-MiscAssignee: Digikam Developers <digikam-bugs-null>
Status: RESOLVED FIXED    
Severity: crash CC: caulier.gilles, matt.gordon
Priority: NOR    
Version: 8.4.0   
Target Milestone: ---   
Platform: Fedora RPMs   
OS: Linux   
See Also: https://bugs.kde.org/show_bug.cgi?id=494993
Latest Commit: Version Fixed In:
Sentry Crash Report: 8.5.0

Description matt.gordon 2024-08-26 02:45:21 UTC
***
If you're not sure this is actually a bug, instead post about it at https://discuss.kde.org

If you're reporting a crash, attach a backtrace with debug symbols; see https://community.kde.org/Guidelines_and_HOWTOs/Debugging/How_to_create_useful_crash_reports
***

SUMMARY
Selecting settings->configure digikam for either Fedora RPM or Flatpak version 8.4.0 causes the app window to close and leaves processes behind, which have to be killed (with or without gdb attached.)

STEPS TO REPRODUCE
1. Open digikam
2. Select Settings->Configure digikam

OBSERVED RESULT
Digikam window closes, processes hung

EXPECTED RESULT
Settings dialog opens

SOFTWARE/OS VERSIONS
Windows: 
macOS: 
(available in the Info Center app, or by running `kinfo` in a terminal window)
Linux/KDE Plasma: Fedora 40
KDE Plasma Version: 6.1.4
KDE Frameworks Version: 6.5.0
Qt Version: 6.7.2

ADDITIONAL INFORMATION
Kernel 6.10.6-200.fc40.x86_64
Nvidia Titan RTX driver version 555.58.02

gdb BACKTRACE

#0  __GI___ioctl (fd=fd@entry=21, request=request@entry=3224397002)
    at ../sysdeps/unix/sysv/linux/ioctl.c:36
#1  0x00007fffe220cfb0 in drmIoctl
    (fd=21, request=request@entry=3224397002, arg=arg@entry=0x7fffffffb710)
    at ../xf86drm.c:703
#2  0x00007fffe221172a in drmSyncobjTimelineWait
    (fd=<optimized out>, handles=handles@entry=0x7fffffffb7e0, points=points@entry=0x7fffffffb810, num_handles=<optimized out>, timeout_nsec=<optimized out>, flags=flags@entry=4, first_signaled=0x7fffffffb7c8) at ../xf86drm.c:5041
#3  0x00007fffc83f7735 in wlEglSurfaceCheckReleasePoints
    (display=0x555555cfdd60, surface=0x55556101df10)
    at ../src/wayland-eglsurface.c:1208
#4  wlEglSwapBuffersWithDamageHook
    (eglDisplay=<optimized out>, eglSurface=<optimized out>, rects=<optimized out>, n_rects=<optimized out>) at ../src/wayland-eglswap.c:151
#5  0x00007fffb3aa991e in ??? () at /lib64/libEGL_nvidia.so.0
#6  0x00007fffb3a48270 in ??? () at /lib64/libEGL_nvidia.so.0
#7  0x00007fffc8d362d3 in QtWaylandClient::QWaylandGLContext::swapBuffers
    (this=0x5555607c6920, surface=<optimized out>)
    at /usr/src/debug/qt6-qtwayland-6.7.2-4.fc40.x86_64/src/hardwareintegration/client/wayland-egl/qwaylandglcontext.cpp:375
#8  0x00007ffff51c506d in QRhiGles2::endFrame
    (this=0x555560b421e0, swapChain=0x555560ff7d20, flags=...)
    at /usr/src/debug/qt6-qtbase-6.7.2-4.fc40.x86_64/src/gui/rhi/qrhigles2.cpp:2107
#9  0x00007ffff50397ae in QRhi::endFrame
    (this=this@entry=0x555560b5a260, swapChain=swapChain@entry=0x555560ff7d20, flags=..., flags@entry=...)
--Type <RET> for more, q to quit, c to continue without paging--c
    at /usr/src/debug/qt6-qtbase-6.7.2-4.fc40.x86_64/src/gui/rhi/qrhi.cpp:10570
#10 0x00007ffff4e6a9fd in QBackingStoreDefaultCompositor::flush
    (this=this@entry=0x55555636f858, backingStore=backingStore@entry=0x5555562f8ed0, rhi=0x555560b5a260, swapchain=<optimized out>, window=window@entry=0x5555562f9590, sourceDevicePixelRatio=sourceDevicePixelRatio@entry=2, region=..., offset=..., textures=0x7ffff5dad810 <QGlobalStatic<QtGlobalStatic::Holder<(anonymous namespace)::Q_QGS_qt_dummy_platformTextureList> >::instance()::holder>, translucentBackground=false)
    at /usr/src/debug/qt6-qtbase-6.7.2-4.fc40.x86_64/src/corelib/global/qflags.h:73
#11 0x00007ffff4feb550 in QPlatformBackingStore::rhiFlush
    (this=this@entry=0x5555562f8ed0, window=0x5555562f9590, sourceDevicePixelRatio=sourceDevicePixelRatio@entry=2, region=..., offset=..., textures=textures@entry=0x7ffff5dad810 <QGlobalStatic<QtGlobalStatic::Holder<(anonymous namespace)::Q_QGS_qt_dummy_platformTextureList> >::instance()::holder>, translucentBackground=translucentBackground@entry=false)
    at /usr/src/debug/qt6-qtbase-6.7.2-4.fc40.x86_64/src/gui/painting/qplatformbackingstore.cpp:213
#12 0x00007ffff57f5b8c in QWidgetRepaintManager::flush
    (this=this@entry=0x555560b50de0, widget=widget@entry=0x55555630c580, region=..., widgetTextures=widgetTextures@entry=0x7ffff5dad810 <QGlobalStatic<QtGlobalStatic::Holder<(anonymous namespace)::Q_QGS_qt_dummy_platformTextureList> >::instance()::holder>)
    at /usr/src/debug/qt6-qtbase-6.7.2-4.fc40.x86_64/src/widgets/kernel/qwidgetrepaintmanager.cpp:1085
#13 0x00007ffff57fa607 in QWidgetRepaintManager::sync
    (this=0x555560b50de0, exposedWidget=0x55555630c580, exposedRegion=...)
    at /usr/src/debug/qt6-qtbase-6.7.2-4.fc40.x86_64/src/widgets/kernel/qwidgetrepaintmanager.cpp:621
#14 0x00007ffff58041b6 in QWidgetWindow::event
    (this=0x5555562f9590, event=0x7fffffffc0d0)
    at /usr/src/debug/qt6-qtbase-6.7.2-4.fc40.x86_64/src/widgets/kernel/qwidgetwindow.cpp:310
#15 0x00007ffff578b218 in QApplicationPrivate::notify_helper
    (this=<optimized out>, receiver=0x5555562f9590, e=0x7fffffffc0d0)
    at /usr/src/debug/qt6-qtbase-6.7.2-4.fc40.x86_64/src/widgets/kernel/qapplication.cpp:3287
#16 0x00007ffff4596dc8 in QCoreApplication::notifyInternal2
    (receiver=0x5555562f9590, event=0x7fffffffc0d0)
    at /usr/src/debug/qt6-qtbase-6.7.2-4.fc40.x86_64/src/corelib/kernel/qcoreapplication.cpp:1142
#17 0x00007ffff459703d in QCoreApplication::sendSpontaneousEvent
    (receiver=<optimized out>, event=<optimized out>)
    at /usr/src/debug/qt6-qtbase-6.7.2-4.fc40.x86_64/src/corelib/kernel/qcoreapplication.cpp:1597
#18 0x00007ffff4de81b1 in QGuiApplicationPrivate::processExposeEvent
    (e=0x555565a546d0)
    at /usr/src/debug/qt6-qtbase-6.7.2-4.fc40.x86_64/src/gui/kernel/qguiapplication.cpp:3298
#19 0x00007ffff4e4b4bc in QWindowSystemInterface::sendWindowSystemEvents
    (flags=...)
    at /usr/src/debug/qt6-qtbase-6.7.2-4.fc40.x86_64/src/gui/kernel/qwindowsysteminterface.cpp:1114
#20 0x00007ffff53633f4 in userEventSourceDispatch (source=<optimized out>)
    at /usr/src/debug/qt6-qtbase-6.7.2-4.fc40.x86_64/src/gui/platform/unix/qeventdispatcher_glib.cpp:38
#21 0x00007fffe7f0ee8c in g_main_dispatch (context=0x7fffb4000f00)
    at ../glib/gmain.c:3344
#22 g_main_context_dispatch_unlocked (context=0x7fffb4000f00)
    at ../glib/gmain.c:4152
#23 0x00007fffe7f70c98 in g_main_context_iterate_unlocked.isra.0
    (context=context@entry=0x7fffb4000f00, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4217
#24 0x00007fffe7f10383 in g_main_context_iteration
    (context=0x7fffb4000f00, may_block=1) at ../glib/gmain.c:4282
#25 0x00007ffff48850a3 in QEventDispatcherGlib::processEvents
    (this=0x555555b20150, flags=...)
    at /usr/src/debug/qt6-qtbase-6.7.2-4.fc40.x86_64/src/corelib/kernel/qeventdispatcher_glib.cpp:394
#26 0x00007ffff45a3b03 in QEventLoop::exec
    (this=this@entry=0x7fffffffc420, flags=..., flags@entry=...)
    at /usr/src/debug/qt6-qtbase-6.7.2-4.fc40.x86_64/src/corelib/global/qflags.h:34
#27 0x00007ffff5a1688b in QDialog::exec (this=0x55556486ab60)
    at /usr/src/debug/qt6-qtbase-6.7.2-4.fc40.x86_64/src/corelib/global/qflags.h:74
#28 0x00007ffff7c359a9 in Digikam::Setup::execDialog(QWidget*, Digikam::Setup::Page) [clone .constprop.0]
    (parent=0x55555630c580, page=Digikam::Setup::LastPageUsed)
    at /usr/src/debug/digikam-8.4.0-1.fc40.x86_64/core/utilities/setup/setup.cpp:342
#29 0x00007ffff45fcbe0 in doActivate<false>
    (sender=0x55556060d4e0, signal_index=7, argv=0x7fffffffc5c0)
    at /usr/src/debug/qt6-qtbase-6.7.2-4.fc40.x86_64/src/corelib/kernel/qobject.cpp:4098
#30 0x00007ffff45f2b47 in QMetaObject::activate
    (sender=sender@entry=0x55556060d4e0, m=m@entry=0x7ffff55375c0 <QAction::staticMetaObject>, local_signal_index=local_signal_index@entry=4, argv=argv@entry=0x7fffffffc5c0)
    at /usr/src/debug/qt6-qtbase-6.7.2-4.fc40.x86_64/src/corelib/kernel/qobject.cpp:4146
#31 0x00007ffff522f4d4 in QAction::triggered
    (this=this@entry=0x55556060d4e0, _t1=<optimized out>)
    at /usr/src/debug/qt6-qtbase-6.7.2-4.fc40.x86_64/redhat-linux-build/src/gui/Gui_autogen/include/moc_qaction.cpp:480
#32 0x00007ffff523257f in QAction::activate
    (this=0x55556060d4e0, event=<optimized out>)
    at /usr/src/debug/qt6-qtbase-6.7.2-4.fc40.x86_64/src/gui/kernel/qaction.cpp:1102
#33 0x00007ffff5977714 in QMenuPrivate::activateCausedStack
    (this=0x55555636a8d0, causedStack=..., action=0x55556060d4e0, action_e=QAction::Trigger, self=<optimized out>)
    at /usr/src/debug/qt6-qtbase-6.7.2-4.fc40.x86_64/src/widgets/widgets/qmenu.cpp:1420
#34 0x00007ffff597fea0 in QMenuPrivate::activateAction
    (this=0x55555636a8d0, action=0x55556060d4e0, action_e=QAction::Trigger, self=<optimized out>)
    at /usr/src/debug/qt6-qtbase-6.7.2-4.fc40.x86_64/src/widgets/widgets/qmenu.cpp:1502
#35 0x00007ffff57ed158 in QWidget::event
    (this=0x5555581081f0, event=0x7fffffffcc80)
    at /usr/src/debug/qt6-qtbase-6.7.2-4.fc40.x86_64/src/widgets/kernel/qwidget.cpp:9405
#36 0x00007ffff578b218 in QApplicationPrivate::notify_helper
    (this=this@entry=0x555555a90d70, receiver=receiver@entry=0x5555581081f0, e=e@entry=0x7fffffffcc80)
    at /usr/src/debug/qt6-qtbase-6.7.2-4.fc40.x86_64/src/widgets/kernel/qapplication.cpp:3287
#37 0x00007ffff5796142 in QApplication::notify
    (this=<optimized out>, receiver=<optimized out>, e=0x7fffffffcc80)
    at /usr/src/debug/qt6-qtbase-6.7.2-4.fc40.x86_64/src/widgets/kernel/qapplication.cpp:2765
#38 0x00007ffff4596dc8 in QCoreApplication::notifyInternal2
    (receiver=0x5555581081f0, event=0x7fffffffcc80)
    at /usr/src/debug/qt6-qtbase-6.7.2-4.fc40.x86_64/src/corelib/kernel/qcoreapplication.cpp:1142
#39 0x00007ffff459703d in QCoreApplication::sendSpontaneousEvent
    (receiver=<optimized out>, event=<optimized out>)
    at /usr/src/debug/qt6-qtbase-6.7.2-4.fc40.x86_64/src/corelib/kernel/qcoreapplication.cpp:1597
#40 0x00007ffff57946cc in QApplicationPrivate::sendMouseEvent
    (receiver=0x5555581081f0, event=event@entry=0x7fffffffcc80, alienWidget=<optimized out>, nativeWidget=0x5555581081f0, buttonDown=buttonDown@entry=0x7ffff5dad880 <qt_button_down>, lastMouseReceiver=..., spontaneous=true, onlyDispatchEnterLeave=false)
    at /usr/src/debug/qt6-qtbase-6.7.2-4.fc40.x86_64/src/widgets/kernel/qapplication.cpp:2347
#41 0x00007ffff5801bbf in QWidgetWindow::handleMouseEvent
    (this=0x55556498ee20, event=0x7fffffffcf40)
    at /usr/src/debug/qt6-qtbase-6.7.2-4.fc40.x86_64/src/widgets/kernel/qwidgetwindow.cpp:545
#42 0x00007ffff5804130 in QWidgetWindow::event
    (this=0x55556498ee20, event=0x7fffffffcf40)
    at /usr/src/debug/qt6-qtbase-6.7.2-4.fc40.x86_64/src/widgets/kernel/qwidgetwindow.cpp:263
#43 0x00007ffff578b218 in QApplicationPrivate::notify_helper
    (this=<optimized out>, receiver=0x55556498ee20, e=0x7fffffffcf40)
    at /usr/src/debug/qt6-qtbase-6.7.2-4.fc40.x86_64/src/widgets/kernel/qapplication.cpp:3287
#44 0x00007ffff4596dc8 in QCoreApplication::notifyInternal2
    (receiver=0x55556498ee20, event=0x7fffffffcf40)
    at /usr/src/debug/qt6-qtbase-6.7.2-4.fc40.x86_64/src/corelib/kernel/qcoreapplication.cpp:1142
#45 0x00007ffff459703d in QCoreApplication::sendSpontaneousEvent
    (receiver=<optimized out>, event=<optimized out>)
    at /usr/src/debug/qt6-qtbase-6.7.2-4.fc40.x86_64/src/corelib/kernel/qcoreapplication.cpp:1597
#46 0x00007ffff4de6eab in QGuiApplicationPrivate::processMouseEvent
    (e=0x7fffac0017f0)
    at /usr/src/debug/qt6-qtbase-6.7.2-4.fc40.x86_64/src/gui/kernel/qguiapplication.cpp:2327
#47 0x00007ffff4e4b4bc in QWindowSystemInterface::sendWindowSystemEvents
    (flags=...)
    at /usr/src/debug/qt6-qtbase-6.7.2-4.fc40.x86_64/src/gui/kernel/qwindowsysteminterface.cpp:1114
#48 0x00007ffff53633f4 in userEventSourceDispatch (source=<optimized out>)
    at /usr/src/debug/qt6-qtbase-6.7.2-4.fc40.x86_64/src/gui/platform/unix/qeventdispatcher_glib.cpp:38
#49 0x00007fffe7f0ee8c in g_main_dispatch (context=0x7fffb4000f00)
    at ../glib/gmain.c:3344
#50 g_main_context_dispatch_unlocked (context=0x7fffb4000f00)
    at ../glib/gmain.c:4152
#51 0x00007fffe7f70c98 in g_main_context_iterate_unlocked.isra.0
    (context=context@entry=0x7fffb4000f00, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4217
#52 0x00007fffe7f10383 in g_main_context_iteration
    (context=0x7fffb4000f00, may_block=1) at ../glib/gmain.c:4282
#53 0x00007ffff48850a3 in QEventDispatcherGlib::processEvents
    (this=0x555555b20150, flags=...)
    at /usr/src/debug/qt6-qtbase-6.7.2-4.fc40.x86_64/src/corelib/kernel/qeventdispatcher_glib.cpp:394
#54 0x00007ffff45a3b03 in QEventLoop::exec
    (this=this@entry=0x7fffffffd370, flags=..., flags@entry=...)
    at /usr/src/debug/qt6-qtbase-6.7.2-4.fc40.x86_64/src/corelib/global/qflags.h:34
#55 0x00007ffff459f9bc in QCoreApplication::exec ()
    at /usr/src/debug/qt6-qtbase-6.7.2-4.fc40.x86_64/src/corelib/global/qflags.h:74
#56 0x00007ffff4dd67ed in QGuiApplication::exec ()
    at /usr/src/debug/qt6-qtbase-6.7.2-4.fc40.x86_64/src/gui/kernel/qguiapplication.cpp:1926
#57 0x00007ffff578b189 in QApplication::exec ()
    at /usr/src/debug/qt6-qtbase-6.7.2-4.fc40.x86_64/src/widgets/kernel/qapplication.cpp:2555
#58 0x000055555555a658 in main (argc=<optimized out>, argv=<optimized out>)
    at /usr/src/debug/digikam-8.4.0-1.fc40.x86_64/core/app/main/main.cpp:503
(gdb)
Comment 1 caulier.gilles 2024-08-26 03:02:06 UTC
It's clear. I crash in the EGL plugin of NVIDIA driver used by Qt to render contents with OpenGl.

Can you reproduce the crash with the 8.5.0 pre-release AppImage that we provide here :

https://files.kde.org/digikam/
Comment 2 matt.gordon 2024-08-26 18:52:52 UTC
(In reply to caulier.gilles from comment #1)
> It's clear. I crash in the EGL plugin of NVIDIA driver used by Qt to render
> contents with OpenGl.
> 
> Can you reproduce the crash with the 8.5.0 pre-release AppImage that we
> provide here :
> 
> https://files.kde.org/digikam/

The 8.5.0 prerelease AppImage works correctly and does not show the same crash.  Thanks!