Bug 390136

Summary: digiKam crashes when launching scan and recognize faces
Product: [Applications] digikam Reporter: Žygimantas Bruzgys <un1x0nly>
Component: Faces-DetectionAssignee: Digikam Developers <digikam-bugs-null>
Status: RESOLVED FIXED    
Severity: crash CC: arojas, caulier.gilles, mario.frank
Priority: NOR    
Version: 5.8.0   
Target Milestone: ---   
Platform: Arch Linux   
OS: Linux   
Latest Commit: Version Fixed In: 5.9.0

Description Žygimantas Bruzgys 2018-02-09 09:57:45 UTC
digiKam crashes every time I launch: Scan collection for faces -> Detect and recognize faces -> Scan.

---
BT:
Thread 51 (Thread 0x7ffed4ff9700 (LWP 11968)):
#0  0x00007ffff294ddd4 in cv::face::FaceRecognizer::getLabelsByString(cv::String const&) const () at /usr/lib/libopencv_face.so.3.4
#1  0x00007ffff294dc4f in cv::face::FaceRecognizer::predict(cv::_InputArray const&, int&, double&) const () at /usr/lib/libopencv_face.so.3.4
#2  0x00007ffff73d0e54 in  () at /usr/lib/libdigikamgui.so.5.8.0
#3  0x00007ffff73c7a34 in Digikam::RecognitionDatabase::recognizeFaces(Digikam::ImageListProvider*) () at /usr/lib/libdigikamgui.so.5.8.0
#4  0x00007ffff73c7f00 in Digikam::RecognitionDatabase::recognizeFaces(QList<QImage> const&) () at /usr/lib/libdigikamgui.so.5.8.0
#5  0x00007ffff777dcf5 in  () at /usr/lib/libdigikamgui.so.5.8.0
#6  0x00007ffff778c174 in  () at /usr/lib/libdigikamgui.so.5.8.0
#7  0x00007ffff3eacac2 in QObject::event(QEvent*) () at /usr/lib/libQt5Core.so.5
#8  0x00007ffff4bf5ecc in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#9  0x00007ffff4bfd8a6 in QApplication::notify(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#10 0x00007ffff3e7b850 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5
#11 0x00007ffff3e7e4b6 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /usr/lib/libQt5Core.so.5
#12 0x00007ffff3ed8714 in  () at /usr/lib/libQt5Core.so.5
#13 0x00007fffe5893e38 in g_main_context_dispatch () at /usr/lib/libglib-2.0.so.0
#14 0x00007fffe5894081 in  () at /usr/lib/libglib-2.0.so.0
#15 0x00007fffe589410e in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#16 0x00007ffff3ed7d01 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#17 0x00007ffff3e79e9b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#18 0x00007ffff63f19d9 in  () at /usr/lib/libdigikamcore.so.5.8.0
#19 0x00007ffff3c8bb02 in  () at /usr/lib/libQt5Core.so.5
#20 0x00007ffff3c8eb2d in  () at /usr/lib/libQt5Core.so.5
#21 0x00007fffecf4d08c in start_thread () at /usr/lib/libpthread.so.0
#22 0x00007ffff2f7ae7f in clone () at /usr/lib/libc.so.6

Thread 48 (Thread 0x7ffed67fc700 (LWP 11965)):
#0  0x00007ffff62ec60f in  () at /usr/lib/libdigikamcore.so.5.8.0
#1  0x00007ffff62ef58f in Digikam::DImg::smoothScaleClipped(int, int, int, int, int, int) const () at /usr/lib/libdigikamcore.so.5.8.0
#2  0x00007ffff62ef611 in Digikam::DImg::smoothScaleClipped(QSize const&, QRect const&) const () at /usr/lib/libdigikamcore.so.5.8.0
#3  0x00007ffff62ef6f3 in Digikam::DImg::smoothScale(QSize const&, Qt::AspectRatioMode) const () at /usr/lib/libdigikamcore.so.5.8.0
#4  0x00007ffff62ef72b in Digikam::DImg::smoothScale(int, int, Qt::AspectRatioMode) const () at /usr/lib/libdigikamcore.so.5.8.0
#5  0x00007ffff777546b in  () at /usr/lib/libdigikamgui.so.5.8.0
#6  0x00007ffff777d891 in  () at /usr/lib/libdigikamgui.so.5.8.0
#7  0x00007ffff778bbb4 in  () at /usr/lib/libdigikamgui.so.5.8.0
#8  0x00007ffff3eacac2 in QObject::event(QEvent*) () at /usr/lib/libQt5Core.so.5
#9  0x00007ffff4bf5ecc in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#10 0x00007ffff4bfd8a6 in QApplication::notify(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#11 0x00007ffff3e7b850 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5
#12 0x00007ffff3e7e4b6 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /usr/lib/libQt5Core.so.5
#13 0x00007ffff3ed8714 in  () at /usr/lib/libQt5Core.so.5
#14 0x00007fffe5893e38 in g_main_context_dispatch () at /usr/lib/libglib-2.0.so.0
#15 0x00007fffe5894081 in  () at /usr/lib/libglib-2.0.so.0
#16 0x00007fffe589410e in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#17 0x00007ffff3ed7d01 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#18 0x00007ffff3e79e9b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#19 0x00007ffff63f19d9 in  () at /usr/lib/libdigikamcore.so.5.8.0
#20 0x00007ffff3c8bb02 in  () at /usr/lib/libQt5Core.so.5
#21 0x00007ffff3c8eb2d in  () at /usr/lib/libQt5Core.so.5
#22 0x00007fffecf4d08c in start_thread () at /usr/lib/libpthread.so.0
#23 0x00007ffff2f7ae7f in clone () at /usr/lib/libc.so.6
Comment 1 caulier.gilles 2018-02-09 10:28:20 UTC
Can you reproduce the crash using the Linux AppImage 5.9.0 instead your system package ?

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

Gilles Caulier
Comment 2 Žygimantas Bruzgys 2018-02-09 23:24:39 UTC
I've downloaded 5.8 appimage and it already seems that I cannot reproduce the same problem. :/

It crashed once, but I was not able to get the BT. Then I've restarted it and from then on it worked fine.
Comment 3 caulier.gilles 2018-02-11 16:40:58 UTC
So i suspect that OpenCV from you computer is compiled with all options enabled, and especially the famous Intel thread support.

OpenCV is a big puzzle. For the digiKam AppImage bundle i disable all and let's only the core of library. After all we use only a small part of the library here. AppImage bundle use also openCV 3.4.

About others crash, where these happen ? What's the trace on the console ? What's the GDB trace using "debug" CLI option from the bundle ?

Gilles Caulier
Comment 4 Žygimantas Bruzgys 2018-02-12 13:27:24 UTC
Unfortunately, when it crashed I was not able to get the BT. And it seems that it was a transient crash, since after a restart it worked fine. I think that in order to reproduce this crash I would need to clear my faces DB, which I would not want to do right now.

As this seems to be dependent on an external dependency, which seems to be configured correctly in a release image, I'll mark the bug as resolved.
Comment 5 Mario Frank 2018-02-13 08:38:05 UTC
(In reply to Žygimantas Bruzgys from comment #4)
> Unfortunately, when it crashed I was not able to get the BT. And it seems
> that it was a transient crash, since after a restart it worked fine. I think
> that in order to reproduce this crash I would need to clear my faces DB,
> which I would not want to do right now.
> 
> As this seems to be dependent on an external dependency, which seems to be
> configured correctly in a release image, I'll mark the bug as resolved.

Hey Žygimantas,

if you have a SQLite DB, you can just copy your current faces DB file to some safe place so you have a backup. Then you can delete the original face DB file and digiKam will automatically generate the empty faces DB. Then you could probably get a stack trace.
Comment 6 Antonio Rojas 2018-03-15 08:14:13 UTC
In case any other packager stumbles upon this, it's fixed by 6ea9e4289a88c167526d7cb6fdadadbbfc83e0b8