Bug 467923 - Crash when switching to 'Timeline' from "People" during face detection
Summary: Crash when switching to 'Timeline' from "People" during face detection
Status: RESOLVED FIXED
Alias: None
Product: digikam
Classification: Applications
Component: Faces-Detection (other bugs)
Version First Reported In: 7.9.0
Platform: openSUSE Linux
: NOR crash
Target Milestone: ---
Assignee: Digikam Developers
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2023-03-29 13:43 UTC by jonas.orting
Modified: 2023-03-29 14:06 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed/Implemented In: 8.0.0
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description jonas.orting 2023-03-29 13:43:34 UTC
Application: digikam (7.9.0)

Qt Version: 5.15.8
Frameworks Version: 5.104.0
Operating System: Linux 6.2.8-1-default x86_64
Windowing System: X11
Distribution: "openSUSE Tumbleweed"
DrKonqi: 5.27.3 [KCrashBackend]

-- Information about the crash:
When switching from "Unknown" in People (listing 3000+ detected faces) to the Timeline, digiKam crashes. It happens consistently, but only while face detection is running and only when switching from "Unknown" (so if I'm viewing a specific face, I can switch to Timeline).
The crash isn't instant but happens within ~1 second.

I've experienced no other crashes with this installation of digiKam.

(I'm not using English but Danish UI, so I might not be using the correct terms - People/Personer, Timeline/Tidslinje, Unknown/Ukendt).

The crash can be reproduced every time.

-- Backtrace:
Application: digiKam (digikam), signal: Aborted

[KCrash Handler]
#4  0x00007f6888c94d7c in __pthread_kill_implementation () at /lib64/libc.so.6
#5  0x00007f6888c43356 in raise () at /lib64/libc.so.6
#6  0x00007f6888c2b897 in abort () at /lib64/libc.so.6
#7  0x00007f68892bb4e9 in qt_message_fatal (message=<synthetic pointer>..., context=<optimized out>) at global/qlogging.cpp:1914
#8  QMessageLogger::fatal(char const*, ...) const (this=this@entry=0x7ffc95869458, msg=msg@entry=0x7f68895d2000 "ASSERT: \"%s\" in file %s, line %d") at global/qlogging.cpp:893
#9  0x00007f68892ba720 in qt_assert(char const*, char const*, int) (assertion=assertion@entry=0x7f688bd30dd7 "!isEmpty()", file=file@entry=0x7f688bd30a60 "/usr/include/qt5/QtCore/qlist.h", line=line@entry=363) at global/qglobal.cpp:3391
#10 0x00007f688b97cd43 in QList<Digikam::ItemInfo>::first() const [clone .part.0] [clone .lto_priv.0] (this=<optimized out>) at /usr/include/qt5/QtCore/qlist.h:363
#11 0x00007f688b989af8 in QList<Digikam::ItemInfo>::first() const (this=0x7ffc958694b0) at /usr/include/KF5/KI18n/klocalizedstring.h:1402
#12 QList<Digikam::Album*>::constFirst() const (this=0x7ffc958694b0, this=<optimized out>) at /usr/include/qt5/QtCore/qlist.h:362
#13 Digikam::ItemIconView::slotEmptyMessageTimer() (this=0x55f39871cb00) at /usr/src/debug/digikam-7.9.0/core/app/views/stack/itemiconview_items.cpp:600
#14 0x00007f68895253a3 in doActivate<false>(QObject*, int, void**) (sender=0x55f39b575940, signal_index=3, argv=0x7ffc958695c0) at kernel/qobject.cpp:3935
#15 0x00007f688951dfff in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=<optimized out>, m=m@entry=0x7f68897c79a0 <QTimer::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7ffc958695c0) at kernel/qobject.cpp:3983
#16 0x00007f68895291ea in QTimer::timeout(QTimer::QPrivateSignal) (this=<optimized out>, _t1=...) at .moc/moc_qtimer.cpp:205
#17 0x00007f6889518d2b in QObject::event(QEvent*) (this=0x55f39b575940, e=0x7ffc95869710) at kernel/qobject.cpp:1369
#18 0x00007f688a1a52ce in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x55f39b575940, e=0x7ffc95869710) at kernel/qapplication.cpp:3640
#19 0x00007f68894ecb28 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x55f39b575940, event=0x7ffc95869710) at kernel/qcoreapplication.cpp:1064
#20 0x00007f68895454a9 in QTimerInfoList::activateTimers() (this=0x55f3981cc9b0) at kernel/qtimerinfo_unix.cpp:643
#21 0x00007f6889545d54 in timerSourceDispatch(GSource*, GSourceFunc, gpointer) (source=<optimized out>) at kernel/qeventdispatcher_glib.cpp:183
#22 0x00007f687cb16f96 in g_main_context_dispatch () at /lib64/libglib-2.0.so.0
#23 0x00007f687cb17358 in  () at /lib64/libglib-2.0.so.0
#24 0x00007f687cb173ec in g_main_context_iteration () at /lib64/libglib-2.0.so.0
#25 0x00007f68895460b6 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x55f3981cbb60, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#26 0x00007f68894eb5cb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ffc95869950, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#27 0x00007f68894f3a50 in QCoreApplication::exec() () at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#28 0x000055f3962619a0 in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/digikam-7.9.0/core/app/main/main.cpp:419
[Inferior 1 (process 23597) detached]

The reporter indicates this bug may be a duplicate of or related to bug 421043, bug 427333, bug 330342.

Reported using DrKonqi
Comment 1 caulier.gilles 2023-03-29 13:50:42 UTC
The crash appear in a QList::isEmpty() call. This is probbly fixed in current implementation.

Please try 7.10.0 AppImage or 8.0.0 pre-release bundle to see if problem is reproducible (for this last one, backup your database as the schema will be extended).

https://files.kde.org/digikam/

Gilles Caulier
Comment 2 jonas.orting 2023-03-29 13:56:17 UTC
(In reply to caulier.gilles from comment #1)
> The crash appear in a QList::isEmpty() call. This is probbly fixed in
> current implementation.
> 
> Please try 7.10.0 AppImage or 8.0.0 pre-release bundle to see if problem is
> reproducible (for this last one, backup your database as the schema will be
> extended).
> 
> https://files.kde.org/digikam/
> 
> Gilles Caulier

It is indeed fixed in 7.10 :-)
Comment 3 jonas.orting 2023-03-29 13:56:40 UTC
Fixed in 7.10