Bug 457693

Summary: digikam crashes if trying to delete selection of multiple files
Product: [Applications] digikam Reporter: Thomas Bettler <thomas.bettler>
Component: Albums-IconViewAssignee: Digikam Developers <digikam-bugs-null>
Status: RESOLVED FIXED    
Severity: crash CC: caulier.gilles, hieutv2211, metzpinguin, mg, rjwgnr27
Priority: NOR Keywords: drkonqi
Version: 7.7.0   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Linux   
Latest Commit: Version Fixed In: 7.8.0
Sentry Crash Report:
Attachments: New crash information added by DrKonqi
New crash information added by DrKonqi

Description Thomas Bettler 2022-08-09 20:09:52 UTC
Application: digikam (7.7.0)
 (Compiled from sources)
Qt Version: 5.15.5
Frameworks Version: 5.96.0
Operating System: Linux 5.19.0-gentoo x86_64
Windowing System: X11
Distribution: "Gentoo Base System release 2.8"
DrKonqi: 5.25.4 [KCrashBackend]

-- Information about the crash:
steps to reproduce
1. select multiple files to delete
2. shift+del
3. observe this crash

The crash can be reproduced every time.

-- Backtrace:
Application: digiKam (digikam), signal: Segmentation fault

[KCrash Handler]
#4  0x00007f15a281f500 in QModelIndex::parent() const (this=0x55a44c759f70) at /var/tmp/portage/dev-qt/qtwidgets-5.15.5-r1/work/qtbase-everywhere-src-5.15.5/include/QtCore/../../src/corelib/itemmodels/qabstractitemmodel.h:443
#5  0x00007f15a2846dae in QTreeView::drawRow(QPainter*, QStyleOptionViewItem const&, QModelIndex const&) const (this=this@entry=0x55a4479e06a0, painter=painter@entry=0x7ffe9f8ec828, option=..., index=...) at /var/tmp/portage/dev-qt/qtwidgets-5.15.5-r1/work/qtbase-everywhere-src-5.15.5/src/widgets/itemviews/qtreeview.cpp:1610
#6  0x00007f15a3e9343b in Digikam::DeleteItemList::drawRow(QPainter*, QStyleOptionViewItem const&, QModelIndex const&) const (this=0x55a4479e06a0, p=0x7ffe9f8ec828, opt=..., index=...) at /var/tmp/portage/media-gfx/digikam-7.7.0/work/digikam-7.7.0/core/libs/dialogs/deletedialog.cpp:230
#7  0x00007f15a284b93b in QTreeView::drawTree(QPainter*, QRegion const&) const (this=this@entry=0x55a4479e06a0, painter=painter@entry=0x7ffe9f8ec828, region=...) at /var/tmp/portage/dev-qt/qtwidgets-5.15.5-r1/work/qtbase-everywhere-src-5.15.5/src/widgets/itemviews/qtreeview.cpp:1504
#8  0x00007f15a2850be0 in QTreeView::paintEvent(QPaintEvent*) (this=0x55a4479e06a0, event=0x7ffe9f8ece20) at /var/tmp/portage/dev-qt/qtwidgets-5.15.5-r1/work/qtbase-everywhere-src-5.15.5/src/widgets/itemviews/qtreeview.cpp:1332
#9  0x00007f15a25a1fae in QWidget::event(QEvent*) (this=this@entry=0x55a4479e06a0, event=event@entry=0x7ffe9f8ece20) at /var/tmp/portage/dev-qt/qtwidgets-5.15.5-r1/work/qtbase-everywhere-src-5.15.5/src/widgets/kernel/qwidget.cpp:8814
#10 0x00007f15a265259c in QFrame::event(QEvent*) (this=this@entry=0x55a4479e06a0, e=e@entry=0x7ffe9f8ece20) at /var/tmp/portage/dev-qt/qtwidgets-5.15.5-r1/work/qtbase-everywhere-src-5.15.5/src/widgets/widgets/qframe.cpp:550
#11 0x00007f15a2654eba in QAbstractScrollArea::viewportEvent(QEvent*) (this=this@entry=0x55a4479e06a0, e=e@entry=0x7ffe9f8ece20) at /var/tmp/portage/dev-qt/qtwidgets-5.15.5-r1/work/qtbase-everywhere-src-5.15.5/src/widgets/widgets/qabstractscrollarea.cpp:1095
#12 0x00007f15a27e0d83 in QAbstractItemView::viewportEvent(QEvent*) (this=this@entry=0x55a4479e06a0, event=event@entry=0x7ffe9f8ece20) at /var/tmp/portage/dev-qt/qtwidgets-5.15.5-r1/work/qtbase-everywhere-src-5.15.5/src/widgets/itemviews/qabstractitemview.cpp:1746
#13 0x00007f15a28519b9 in QTreeView::viewportEvent(QEvent*) (this=0x55a4479e06a0, event=0x7ffe9f8ece20) at /var/tmp/portage/dev-qt/qtwidgets-5.15.5-r1/work/qtbase-everywhere-src-5.15.5/src/widgets/itemviews/qtreeview.cpp:1314
#14 0x00007f15a2655731 in QAbstractScrollAreaPrivate::viewportEvent(QEvent*) (event=<optimized out>, this=<optimized out>) at /var/tmp/portage/dev-qt/qtwidgets-5.15.5-r1/work/qtbase-everywhere-src-5.15.5/src/widgets/widgets/qabstractscrollarea_p.h:111
#15 QAbstractScrollAreaFilter::eventFilter(QObject*, QEvent*) (this=<optimized out>, o=<optimized out>, e=<optimized out>) at /var/tmp/portage/dev-qt/qtwidgets-5.15.5-r1/work/qtbase-everywhere-src-5.15.5/src/widgets/widgets/qabstractscrollarea_p.h:122
#16 0x00007f15a187055c in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) (receiver=receiver@entry=0x55a4479e12e0, event=event@entry=0x7ffe9f8ece20) at /var/tmp/portage/dev-qt/qtcore-5.15.5-r2/work/qtbase-everywhere-src-5.15.5/src/corelib/kernel/qcoreapplication.cpp:1190
#17 0x00007f15a255e022 in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=this@entry=0x55a44294d140, receiver=receiver@entry=0x55a4479e12e0, e=e@entry=0x7ffe9f8ece20) at /var/tmp/portage/dev-qt/qtwidgets-5.15.5-r1/work/qtbase-everywhere-src-5.15.5/src/widgets/kernel/qapplication.cpp:3631
#18 0x00007f15a2565f64 in QApplication::notify(QObject*, QEvent*) (this=0x7ffe9f8ef030, receiver=0x55a4479e12e0, e=0x7ffe9f8ece20) at /var/tmp/portage/dev-qt/qtwidgets-5.15.5-r1/work/qtbase-everywhere-src-5.15.5/src/widgets/kernel/qapplication.cpp:3587
#19 0x00007f15a18707dc in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x55a4479e12e0, event=0x7ffe9f8ece20) at /var/tmp/portage/dev-qt/qtcore-5.15.5-r2/work/qtbase-everywhere-src-5.15.5/src/corelib/kernel/qcoreapplication.cpp:1064
#20 0x00007f15a1870a2a in QCoreApplication::sendSpontaneousEvent(QObject*, QEvent*) (receiver=receiver@entry=0x55a4479e12e0, event=event@entry=0x7ffe9f8ece20) at /var/tmp/portage/dev-qt/qtcore-5.15.5-r2/work/qtbase-everywhere-src-5.15.5/src/corelib/kernel/qcoreapplication.cpp:1474
#21 0x00007f15a259a31b in QWidgetPrivate::sendPaintEvent(QRegion const&) (this=this@entry=0x55a444e81c30, toBePainted=...) at /var/tmp/portage/dev-qt/qtwidgets-5.15.5-r1/work/qtbase-everywhere-src-5.15.5/src/widgets/kernel/qwidget.cpp:5467
#22 0x00007f15a259b212 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) (this=this@entry=0x55a444e81c30, pdev=pdev@entry=0x55a44c8ada00, rgn=..., offset=..., flags=flags@entry=..., sharedPainter=sharedPainter@entry=0x0, repaintManager=<optimized out>) at /var/tmp/portage/dev-qt/qtwidgets-5.15.5-r1/work/qtbase-everywhere-src-5.15.5/src/widgets/kernel/qwidget.cpp:5417
#23 0x00007f15a259bde0 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) (this=0x55a44c5adab0, pdev=0x55a44c8ada00, siblings=..., index=<optimized out>, rgn=..., offset=..., flags=..., sharedPainter=0x0, repaintManager=0x55a44c75a260) at /var/tmp/portage/dev-qt/qtwidgets-5.15.5-r1/work/qtbase-everywhere-src-5.15.5/src/widgets/kernel/qwidget.cpp:5598
#24 0x00007f15a259bcd1 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) (this=0x55a44c5adab0, pdev=0x55a44c8ada00, siblings=..., index=1, rgn=..., offset=..., flags=..., sharedPainter=0x0, repaintManager=0x55a44c75a260) at /var/tmp/portage/dev-qt/qtwidgets-5.15.5-r1/work/qtbase-everywhere-src-5.15.5/src/widgets/kernel/qwidget.cpp:5584
#25 0x00007f15a259bcd1 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) (this=0x55a44c5adab0, pdev=0x55a44c8ada00, siblings=..., index=4, rgn=..., offset=..., flags=..., sharedPainter=0x0, repaintManager=0x55a44c75a260) at /var/tmp/portage/dev-qt/qtwidgets-5.15.5-r1/work/qtbase-everywhere-src-5.15.5/src/widgets/kernel/qwidget.cpp:5584
#26 0x00007f15a259bcd1 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) (this=this@entry=0x55a44c5adab0, pdev=pdev@entry=0x55a44c8ada00, siblings=..., index=5, rgn=..., offset=..., flags=..., sharedPainter=0x0, repaintManager=0x55a44c75a260) at /var/tmp/portage/dev-qt/qtwidgets-5.15.5-r1/work/qtbase-everywhere-src-5.15.5/src/widgets/kernel/qwidget.cpp:5584
#27 0x00007f15a259b51f in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) (this=this@entry=0x55a44c5adab0, pdev=pdev@entry=0x55a44c8ada00, rgn=..., offset=..., flags=..., flags@entry=..., sharedPainter=sharedPainter@entry=0x0, repaintManager=<optimized out>) at /var/tmp/portage/dev-qt/qtwidgets-5.15.5-r1/work/qtbase-everywhere-src-5.15.5/src/widgets/kernel/qwidget.cpp:5458
#28 0x00007f15a259bde0 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) (this=0x55a444e83cf0, pdev=0x55a44c8ada00, siblings=..., index=<optimized out>, rgn=..., offset=..., flags=..., sharedPainter=0x0, repaintManager=0x55a44c75a260) at /var/tmp/portage/dev-qt/qtwidgets-5.15.5-r1/work/qtbase-everywhere-src-5.15.5/src/widgets/kernel/qwidget.cpp:5598
#29 0x00007f15a259bcd1 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) (this=this@entry=0x55a444e83cf0, pdev=pdev@entry=0x55a44c8ada00, siblings=..., index=4, rgn=..., offset=..., flags=..., sharedPainter=0x0, repaintManager=0x55a44c75a260) at /var/tmp/portage/dev-qt/qtwidgets-5.15.5-r1/work/qtbase-everywhere-src-5.15.5/src/widgets/kernel/qwidget.cpp:5584
#30 0x00007f15a259b51f in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) (this=this@entry=0x55a444e83cf0, pdev=pdev@entry=0x55a44c8ada00, rgn=..., offset=..., flags=..., flags@entry=..., sharedPainter=sharedPainter@entry=0x0, repaintManager=<optimized out>) at /var/tmp/portage/dev-qt/qtwidgets-5.15.5-r1/work/qtbase-everywhere-src-5.15.5/src/widgets/kernel/qwidget.cpp:5458
#31 0x00007f15a259bde0 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) (this=this@entry=0x55a445170bf0, pdev=pdev@entry=0x55a44c8ada00, siblings=..., index=<optimized out>, rgn=..., offset=..., flags=..., sharedPainter=0x0, repaintManager=0x55a44c75a260) at /var/tmp/portage/dev-qt/qtwidgets-5.15.5-r1/work/qtbase-everywhere-src-5.15.5/src/widgets/kernel/qwidget.cpp:5598
#32 0x00007f15a259b51f in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) (this=this@entry=0x55a445170bf0, pdev=<optimized out>, rgn=..., offset=..., flags=..., flags@entry=..., sharedPainter=sharedPainter@entry=0x0, repaintManager=<optimized out>) at /var/tmp/portage/dev-qt/qtwidgets-5.15.5-r1/work/qtbase-everywhere-src-5.15.5/src/widgets/kernel/qwidget.cpp:5458
#33 0x00007f15a256ef85 in QWidgetRepaintManager::paintAndFlush() (this=this@entry=0x55a44c75a260) at /var/tmp/portage/dev-qt/qtwidgets-5.15.5-r1/work/qtbase-everywhere-src-5.15.5/src/widgets/kernel/qwidgetrepaintmanager.cpp:1009
#34 0x00007f15a256f2f4 in QWidgetRepaintManager::sync(QWidget*, QRegion const&) (this=0x55a44c75a260, exposedWidget=0x7ffe9f8ee5c0, exposedRegion=...) at /var/tmp/portage/dev-qt/qtwidgets-5.15.5-r1/work/qtbase-everywhere-src-5.15.5/src/widgets/kernel/qwidgetrepaintmanager.cpp:743
#35 0x00007f15a259b9cb in QWidgetPrivate::syncBackingStore(QRegion const&) (this=this@entry=0x55a445170bf0, region=...) at /var/tmp/portage/dev-qt/qtwidgets-5.15.5-r1/work/qtbase-everywhere-src-5.15.5/include/QtWidgets/5.15.5/QtWidgets/private/../../../../../src/widgets/kernel/qwidget_p.h:219
#36 0x00007f15a25be22c in QWidgetWindow::handleExposeEvent(QExposeEvent*) (this=this@entry=0x55a44c73c6f0, event=event@entry=0x7ffe9f8ee240) at /var/tmp/portage/dev-qt/qtwidgets-5.15.5-r1/work/qtbase-everywhere-src-5.15.5/src/widgets/kernel/qwidgetwindow.cpp:1031
#37 0x00007f15a25beacf in QWidgetWindow::event(QEvent*) (this=0x55a44c73c6f0, event=0x7ffe9f8ee240) at /var/tmp/portage/dev-qt/qtwidgets-5.15.5-r1/work/qtbase-everywhere-src-5.15.5/src/widgets/kernel/qwidgetwindow.cpp:347
#38 0x00007f15a255e032 in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=this@entry=0x55a44294d140, receiver=receiver@entry=0x55a44c73c6f0, e=e@entry=0x7ffe9f8ee240) at /var/tmp/portage/dev-qt/qtwidgets-5.15.5-r1/work/qtbase-everywhere-src-5.15.5/src/widgets/kernel/qapplication.cpp:3637
#39 0x00007f15a2565eef in QApplication::notify(QObject*, QEvent*) (this=0x7ffe9f8ef030, receiver=0x55a44c73c6f0, e=0x7ffe9f8ee240) at /var/tmp/portage/dev-qt/qtwidgets-5.15.5-r1/work/qtbase-everywhere-src-5.15.5/src/widgets/kernel/qapplication.cpp:2977
#40 0x00007f15a18707dc in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x55a44c73c6f0, event=0x7ffe9f8ee240) at /var/tmp/portage/dev-qt/qtcore-5.15.5-r2/work/qtbase-everywhere-src-5.15.5/src/corelib/kernel/qcoreapplication.cpp:1064
#41 0x00007f15a1870a2a in QCoreApplication::sendSpontaneousEvent(QObject*, QEvent*) (receiver=receiver@entry=0x55a44c73c6f0, event=event@entry=0x7ffe9f8ee240) at /var/tmp/portage/dev-qt/qtcore-5.15.5-r2/work/qtbase-everywhere-src-5.15.5/src/corelib/kernel/qcoreapplication.cpp:1474
#42 0x00007f15a1d173f0 in QGuiApplicationPrivate::processExposeEvent(QWindowSystemInterfacePrivate::ExposeEvent*) (e=<optimized out>) at /var/tmp/portage/dev-qt/qtgui-5.15.5-r1/work/qtbase-everywhere-src-5.15.5/src/gui/kernel/qguiapplication.cpp:3258
#43 0x00007f15a1d176be in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) (e=e@entry=0x55a4479d40b0) at /var/tmp/portage/dev-qt/qtgui-5.15.5-r1/work/qtbase-everywhere-src-5.15.5/src/gui/kernel/qguiapplication.cpp:2070
#44 0x00007f15a1cf58b5 in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) (flags=..., flags@entry=...) at /var/tmp/portage/dev-qt/qtgui-5.15.5-r1/work/qtbase-everywhere-src-5.15.5/src/gui/kernel/qwindowsysteminterface.cpp:1169
#45 0x00007f158a314a22 in xcbSourceDispatch(GSource*, GSourceFunc, gpointer) (source=source@entry=0x55a442a8bf20) at /var/tmp/portage/dev-qt/qtgui-5.15.5-r1/work/qtbase-everywhere-src-5.15.5/src/plugins/platforms/xcb/qxcbeventdispatcher.cpp:105
#46 0x00007f1593a9bba9 in g_main_dispatch (context=0x7f1584005010) at ../glib-2.72.3/glib/gmain.c:3417
#47 g_main_context_dispatch (context=context@entry=0x7f1584005010) at ../glib-2.72.3/glib/gmain.c:4135
#48 0x00007f1593a9bf4c in g_main_context_iterate (context=context@entry=0x7f1584005010, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib-2.72.3/glib/gmain.c:4211
#49 0x00007f1593a9bfd2 in g_main_context_iteration (context=0x7f1584005010, may_block=1) at ../glib-2.72.3/glib/gmain.c:4276
#50 0x00007f15a18ccc8e in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x55a442a92790, flags=...) at /var/tmp/portage/dev-qt/qtcore-5.15.5-r2/work/qtbase-everywhere-src-5.15.5/src/corelib/kernel/qeventdispatcher_glib.cpp:423
#51 0x00007f158a314d8c in QXcbGlibEventDispatcher::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=<optimized out>, flags=...) at /var/tmp/portage/dev-qt/qtgui-5.15.5-r1/work/qtbase-everywhere-src-5.15.5/src/plugins/platforms/xcb/qxcbeventdispatcher.cpp:143
#52 0x00007f15a186e813 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ffe9f8ee510, flags=..., flags@entry=...) at /var/tmp/portage/dev-qt/qtcore-5.15.5-r2/work/qtbase-everywhere-src-5.15.5/src/corelib/kernel/qeventloop.cpp:139
#53 0x00007f15a186ec6a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ffe9f8ee510, flags=..., flags@entry=...) at /var/tmp/portage/dev-qt/qtcore-5.15.5-r2/work/qtbase-everywhere-src-5.15.5/include/QtCore/../../src/corelib/global/qflags.h:69
#54 0x00007f15a2770fa3 in QDialog::exec() (this=0x7ffe9f8ee5c0) at /var/tmp/portage/dev-qt/qtwidgets-5.15.5-r1/work/qtbase-everywhere-src-5.15.5/include/QtCore/../../src/corelib/global/qflags.h:121
#55 0x00007f15a3e9274d in Digikam::DeleteDialog::confirmDeleteList(QList<QUrl> const&, Digikam::DeleteDialogMode::ListMode, Digikam::DeleteDialogMode::DeleteMode) (this=this@entry=0x7ffe9f8ee5c0, condemnedFiles=..., listMode=listMode@entry=Digikam::DeleteDialogMode::Files, deleteMode=deleteMode@entry=Digikam::DeleteDialogMode::NoChoiceDeletePermanently) at /var/tmp/portage/media-gfx/digikam-7.7.0/work/digikam-7.7.0/core/libs/dialogs/deletedialog.cpp:553
#56 0x00007f15a3dedad3 in Digikam::ItemViewUtilities::deleteImages(QList<Digikam::ItemInfo> const&, Digikam::ItemViewUtilities::DeleteMode) (this=0x55a442ef9340, infos=..., deleteMode=deleteMode@entry=Digikam::ItemViewUtilities::DeletePermanently) at /var/tmp/portage/media-gfx/digikam-7.7.0/work/digikam-7.7.0/core/app/items/utils/itemviewutilities.cpp:141
#57 0x00007f15a3ddfe20 in Digikam::DigikamItemView::deleteSelected(Digikam::ItemViewUtilities::DeleteMode) (this=0x55a443129930, deleteMode=deleteMode@entry=Digikam::ItemViewUtilities::DeletePermanently) at /var/tmp/portage/media-gfx/digikam-7.7.0/work/digikam-7.7.0/core/app/items/views/digikamitemview.cpp:624
#58 0x00007f15a3e309a3 in Digikam::ItemIconView::slotImageDeletePermanently() (this=this@entry=0x55a442e54530) at /var/tmp/portage/media-gfx/digikam-7.7.0/work/digikam-7.7.0/core/app/views/stack/itemiconview_items.cpp:263
#59 0x00007f15a3d8889e in Digikam::ItemIconView::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=0x55a442e54530, _c=<optimized out>, _id=104, _a=0x7ffe9f8ee790) at /var/tmp/portage/media-gfx/digikam-7.7.0/work/digikam-7.7.0_build/core/app/gui_digikam_obj_autogen/7GWWJNZG4Q/moc_itemiconview.cpp:721
#60 0x00007f15a18aa414 in doActivate<false>(QObject*, int, void**) (sender=0x55a446d8d380, signal_index=4, argv=0x7ffe9f8ee790) at /var/tmp/portage/dev-qt/qtcore-5.15.5-r2/work/qtbase-everywhere-src-5.15.5/src/corelib/kernel/qobject.cpp:3898
#61 0x00007f15a18a33d0 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=sender@entry=0x55a446d8d380, m=m@entry=0x7f15a2aabd40 <QAction::staticMetaObject>, local_signal_index=local_signal_index@entry=1, argv=argv@entry=0x7ffe9f8ee790) at /var/tmp/portage/dev-qt/qtcore-5.15.5-r2/work/qtbase-everywhere-src-5.15.5/src/corelib/kernel/qobject.cpp:3946
#62 0x00007f15a2556f8a in QAction::triggered(bool) (this=this@entry=0x55a446d8d380, _t1=<optimized out>) at .moc/moc_qaction.cpp:379
#63 0x00007f15a2559c0d in QAction::activate(QAction::ActionEvent) (this=this@entry=0x55a446d8d380, event=event@entry=QAction::Trigger) at /var/tmp/portage/dev-qt/qtwidgets-5.15.5-r1/work/qtbase-everywhere-src-5.15.5/src/widgets/kernel/qaction.cpp:1161
#64 0x00007f15a255a843 in QAction::event(QEvent*) (this=0x55a446d8d380, e=0x7ffe9f8eeaf0) at /var/tmp/portage/dev-qt/qtwidgets-5.15.5-r1/work/qtbase-everywhere-src-5.15.5/src/widgets/kernel/qaction.cpp:1086
#65 0x00007f15a255e032 in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=this@entry=0x55a44294d140, receiver=receiver@entry=0x55a446d8d380, e=e@entry=0x7ffe9f8eeaf0) at /var/tmp/portage/dev-qt/qtwidgets-5.15.5-r1/work/qtbase-everywhere-src-5.15.5/src/widgets/kernel/qapplication.cpp:3637
#66 0x00007f15a2565eef in QApplication::notify(QObject*, QEvent*) (this=0x7ffe9f8ef030, receiver=0x55a446d8d380, e=0x7ffe9f8eeaf0) at /var/tmp/portage/dev-qt/qtwidgets-5.15.5-r1/work/qtbase-everywhere-src-5.15.5/src/widgets/kernel/qapplication.cpp:2977
#67 0x00007f15a18707dc in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x55a446d8d380, event=0x7ffe9f8eeaf0) at /var/tmp/portage/dev-qt/qtcore-5.15.5-r2/work/qtbase-everywhere-src-5.15.5/src/corelib/kernel/qcoreapplication.cpp:1064
#68 0x00007f15a1870a12 in QCoreApplication::sendEvent(QObject*, QEvent*) (receiver=<optimized out>, event=event@entry=0x7ffe9f8eeaf0) at /var/tmp/portage/dev-qt/qtcore-5.15.5-r2/work/qtbase-everywhere-src-5.15.5/src/corelib/kernel/qcoreapplication.cpp:1462
#69 0x00007f15a1d4476b in QShortcutMap::dispatchEvent(QKeyEvent*) (this=this@entry=0x55a44294d208, e=e@entry=0x7ffe9f8eebb0) at /var/tmp/portage/dev-qt/qtgui-5.15.5-r1/work/qtbase-everywhere-src-5.15.5/src/gui/kernel/qshortcutmap.cpp:675
#70 0x00007f15a1d44f8d in QShortcutMap::tryShortcut(QKeyEvent*) (this=this@entry=0x55a44294d208, e=e@entry=0x7ffe9f8eebb0) at /var/tmp/portage/dev-qt/qtgui-5.15.5-r1/work/qtbase-everywhere-src-5.15.5/src/gui/kernel/qshortcutmap.cpp:343
#71 0x00007f15a1cf843e in QWindowSystemInterface::handleShortcutEvent(QWindow*, unsigned long, int, QFlags<Qt::KeyboardModifier>, unsigned int, unsigned int, unsigned int, QString const&, bool, unsigned short) (window=<optimized out>, window@entry=0x55a4431812f0, timestamp=45348569, keyCode=16777223, modifiers=..., nativeScanCode=119, nativeVirtualKey=65535, nativeModifiers=17, text=..., autorepeat=false, count=1) at /var/tmp/portage/dev-qt/qtgui-5.15.5-r1/work/qtbase-everywhere-src-5.15.5/src/gui/kernel/qwindowsysteminterface.cpp:477
#72 0x00007f15a1d128ea in QGuiApplicationPrivate::processKeyEvent(QWindowSystemInterfacePrivate::KeyEvent*) (e=e@entry=0x55a44c8d4a10) at /var/tmp/portage/dev-qt/qtgui-5.15.5-r1/work/qtbase-everywhere-src-5.15.5/src/gui/kernel/qguiapplication.cpp:2395
#73 0x00007f15a1d17612 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) (e=e@entry=0x55a44c8d4a10) at /var/tmp/portage/dev-qt/qtgui-5.15.5-r1/work/qtbase-everywhere-src-5.15.5/src/gui/kernel/qguiapplication.cpp:2008
#74 0x00007f15a1cf58b5 in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) (flags=..., flags@entry=...) at /var/tmp/portage/dev-qt/qtgui-5.15.5-r1/work/qtbase-everywhere-src-5.15.5/src/gui/kernel/qwindowsysteminterface.cpp:1169
#75 0x00007f158a314a22 in xcbSourceDispatch(GSource*, GSourceFunc, gpointer) (source=source@entry=0x55a442a8bf20) at /var/tmp/portage/dev-qt/qtgui-5.15.5-r1/work/qtbase-everywhere-src-5.15.5/src/plugins/platforms/xcb/qxcbeventdispatcher.cpp:105
#76 0x00007f1593a9bba9 in g_main_dispatch (context=0x7f1584005010) at ../glib-2.72.3/glib/gmain.c:3417
#77 g_main_context_dispatch (context=context@entry=0x7f1584005010) at ../glib-2.72.3/glib/gmain.c:4135
#78 0x00007f1593a9bf4c in g_main_context_iterate (context=context@entry=0x7f1584005010, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib-2.72.3/glib/gmain.c:4211
#79 0x00007f1593a9bfd2 in g_main_context_iteration (context=0x7f1584005010, may_block=1) at ../glib-2.72.3/glib/gmain.c:4276
#80 0x00007f15a18ccc8e in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x55a442a92790, flags=...) at /var/tmp/portage/dev-qt/qtcore-5.15.5-r2/work/qtbase-everywhere-src-5.15.5/src/corelib/kernel/qeventdispatcher_glib.cpp:423
#81 0x00007f158a314d8c in QXcbGlibEventDispatcher::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=<optimized out>, flags=...) at /var/tmp/portage/dev-qt/qtgui-5.15.5-r1/work/qtbase-everywhere-src-5.15.5/src/plugins/platforms/xcb/qxcbeventdispatcher.cpp:143
#82 0x00007f15a186e813 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ffe9f8eef40, flags=..., flags@entry=...) at /var/tmp/portage/dev-qt/qtcore-5.15.5-r2/work/qtbase-everywhere-src-5.15.5/src/corelib/kernel/qeventloop.cpp:139
#83 0x00007f15a186ec6a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ffe9f8eef40, flags=..., flags@entry=...) at /var/tmp/portage/dev-qt/qtcore-5.15.5-r2/work/qtbase-everywhere-src-5.15.5/include/QtCore/../../src/corelib/global/qflags.h:69
#84 0x00007f15a18788b6 in QCoreApplication::exec() () at /var/tmp/portage/dev-qt/qtcore-5.15.5-r2/work/qtbase-everywhere-src-5.15.5/include/QtCore/../../src/corelib/global/qflags.h:121
#85 0x00007f15a1d0a42e in QGuiApplication::exec() () at /var/tmp/portage/dev-qt/qtgui-5.15.5-r1/work/qtbase-everywhere-src-5.15.5/src/gui/kernel/qguiapplication.cpp:1867
#86 0x00007f15a255dfab in QApplication::exec() () at /var/tmp/portage/dev-qt/qtwidgets-5.15.5-r1/work/qtbase-everywhere-src-5.15.5/src/widgets/kernel/qapplication.cpp:2829
#87 0x000055a440c1f27b in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at /var/tmp/portage/media-gfx/digikam-7.7.0/work/digikam-7.7.0/core/app/main/main.cpp:415
[Inferior 1 (process 19855) detached]

Reported using DrKonqi
Comment 1 Maik Qualmann 2022-08-09 21:37:47 UTC
Is the worm in Gentoo? See today's Bug 457662. It crashes in the trash dialog, very strange.

Maik
Comment 2 mg 2022-08-09 22:06:19 UTC
Created attachment 151206 [details]
New crash information added by DrKonqi

digikam (7.7.0) using Qt 5.15.5

I've Digikam installed in openSUSE Tumbleweed from OSS repos. Crashes after trying to delete two selected files.

-- Backtrace (Reduced):
#4  0x00007f66e31f482b in QTreeView::drawRow(QPainter*, QStyleOptionViewItem const&, QModelIndex const&) const () from /lib64/libQt5Widgets.so.5
#5  0x00007f66e31f87f9 in QTreeView::drawTree(QPainter*, QRegion const&) const () from /lib64/libQt5Widgets.so.5
#6  0x00007f66e31ff234 in QTreeView::paintEvent(QPaintEvent*) () from /lib64/libQt5Widgets.so.5
#7  0x00007f66e2f57c68 in QWidget::event(QEvent*) () from /lib64/libQt5Widgets.so.5
#8  0x00007f66e300359e in QFrame::event(QEvent*) () from /lib64/libQt5Widgets.so.5
Comment 3 Maik Qualmann 2022-08-10 06:11:48 UTC
Ok this is really weird now, I used the dialog a lot a few days ago. I can reproduce the crash on about every second call. Tested here with digiKam-8.0.0 from git/master. It crashes really deep into Qt (openSUSE Tumbleweed).

Maik
Comment 4 Maik Qualmann 2022-08-10 06:39:29 UTC
It crashes in this Qt function QTreeWidget::drawRow():

https://invent.kde.org/graphics/digikam/-/blob/master/core/libs/dialogs/deletedialog.cpp#L230

Maik
Comment 5 caulier.gilles 2022-08-10 07:47:36 UTC
And it's reproducible with both 8 and 7 versions ?

Gilles
Comment 6 Maik Qualmann 2022-08-10 08:04:10 UTC
Comment 2 user can reproduce it with digiKam-7.7.0 from openSUSE's repros. Since Gentoo and Tumbleweed are very current, I suspect it is related to a recent update of Qt-5.15.5. I'll see if I can find a workaround tonight.

Maik
Comment 7 Maik Qualmann 2022-08-10 10:48:20 UTC
Git commit 1bb4665a9be5c23988e3286fc2034bc059e70d4d by Maik Qualmann.
Committed on 10/08/2022 at 10:47.
Pushed by mqualmann into branch 'qt5-maintenance'.

fix strange crash in recent Qt-5.15.5 if uniform row heights not set
FIXED-IN: 7.8.0

M  +2    -1    NEWS
M  +1    -0    core/libs/dialogs/deletedialog.cpp

https://invent.kde.org/graphics/digikam/commit/1bb4665a9be5c23988e3286fc2034bc059e70d4d
Comment 8 Thomas Bettler 2022-08-10 11:22:28 UTC
great THX, the patch fixes it for my case.
Comment 9 Maik Qualmann 2022-08-17 06:22:27 UTC
Git commit 8bb5ef5f4dce76392e824459748dfa24f5e32b6d by Maik Qualmann.
Committed on 17/08/2022 at 06:20.
Pushed by mqualmann into branch 'qt5-maintenance'.

set uniform row heights to all possible QTreeWidgets
This is a workaround for a bug in Qt-5.15.5
Related: bug 457972
FIXED-IN: 7.8.0

M  +2    -1    NEWS
M  +2    -1    core/dplugins/generic/tools/expoblending/blendingdlg/bracketstack.cpp
M  +2    -1    core/dplugins/generic/tools/expoblending/blendingdlg/enfusestack.cpp
M  +1    -0    core/libs/dimg/filters/hotpixels/blackframelistview.cpp
M  +1    -0    core/libs/dplugins/setup/dpluginconfview.cpp
M  +1    -0    core/libs/dplugins/widgets/ditemslist_view.cpp
M  +1    -0    core/libs/progressmanager/dhistoryview.cpp
M  +2    -1    core/libs/template/templatelist.cpp
M  +2    -1    core/libs/widgets/files/dbinarysearch.cpp
M  +1    -0    core/libs/widgets/metadata/config/metadataselector.cpp
M  +1    -0    core/libs/widgets/metadata/exiftool/exiftoollistview.cpp
M  +1    -0    core/libs/widgets/metadata/exiv2/metadatalistview.cpp
M  +1    -0    core/showfoto/folderview/showfotofolderviewbookmarklist.cpp
M  +1    -0    core/showfoto/stackview/showfotostackviewfavoritelist.cpp
M  +4    -3    core/showfoto/stackview/showfotostackviewlist.cpp
M  +1    -0    core/tests/geolocation/geoiface/demo/mytreewidget.cpp
M  +3    -2    core/utilities/advancedrename/parser/options/database/dbkeyselector.cpp
M  +3    -3    core/utilities/fuzzysearch/findduplicatesalbum.cpp
M  +3    -2    core/utilities/import/dialogs/cameramessagebox.cpp
M  +3    -2    core/utilities/import/views/camerafolderview.cpp
M  +2    -1    core/utilities/queuemanager/views/assignedlist.cpp
M  +6    -5    core/utilities/queuemanager/views/queuelist.cpp
M  +1    -0    core/utilities/queuemanager/views/toolslistview.cpp
M  +2    -1    core/utilities/queuemanager/views/workflowlist.cpp

https://invent.kde.org/graphics/digikam/commit/8bb5ef5f4dce76392e824459748dfa24f5e32b6d
Comment 10 Maik Qualmann 2022-08-17 17:24:56 UTC
Git commit f7843a237932589656c73d6bd226f6c554a3a8e9 by Maik Qualmann.
Committed on 17/08/2022 at 17:23.
Pushed by mqualmann into branch 'qt5-maintenance'.

set uniform row heights also to QTreeViews
Related: bug 457972

M  +2    -1    core/app/views/tableview/tableview_treeview.cpp
M  +1    -0    core/libs/dialogs/dconfigdlgview_p.cpp
M  +1    -0    core/libs/properties/history/versionstreeview.cpp
M  +1    -0    core/libs/tags/manager/models/tagmngrlistview.cpp
M  +1    -0    core/showfoto/folderview/showfotofolderviewlist.cpp
M  +1    -1    core/utilities/geolocation/geoiface/items/gpsitemlist.cpp
M  +2    -1    core/utilities/setup/collections/setupcollectionview.cpp

https://invent.kde.org/graphics/digikam/commit/f7843a237932589656c73d6bd226f6c554a3a8e9
Comment 11 Rick Wagner 2022-09-08 20:22:44 UTC
Created attachment 151934 [details]
New crash information added by DrKonqi

digikam (7.7.0) using Qt 5.15.5

Marked two items in the thumbnail view, then pressed the "Delete Key", resulting in this crash. Happens frequently, but not always.

-- Backtrace (Reduced):
#4  0x00007efd7369966f in QTreeView::drawRow(QPainter*, QStyleOptionViewItem const&, QModelIndex const&) const () at /lib64/libQt5Widgets.so.5
#5  0x00007efd7369da49 in QTreeView::drawTree(QPainter*, QRegion const&) const () at /lib64/libQt5Widgets.so.5
#6  0x00007efd736a4168 in QTreeView::paintEvent(QPaintEvent*) () at /lib64/libQt5Widgets.so.5
#7  0x00007efd733f1828 in QWidget::event(QEvent*) () at /lib64/libQt5Widgets.so.5
#8  0x00007efd7349e512 in QFrame::event(QEvent*) () at /lib64/libQt5Widgets.so.5
Comment 12 Maik Qualmann 2022-09-08 20:26:45 UTC
Yes, we know the crash. It crashes deep into Qt, not digiKam. In digiKam-7.8.0 we have a workaround to avoid the crash.

Maik
Comment 13 Maik Qualmann 2022-10-27 14:01:12 UTC
*** Bug 461067 has been marked as a duplicate of this bug. ***