Bug 415685 - digiKam crashes when scanning faces
Summary: digiKam crashes when scanning faces
Status: RESOLVED FIXED
Alias: None
Product: digikam
Classification: Applications
Component: Faces-Detection (show other bugs)
Version: 7.0.0
Platform: Appimage Linux
: NOR crash
Target Milestone: ---
Assignee: Digikam Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2019-12-29 17:26 UTC by Vitalii Tymchyshyn
Modified: 2020-01-26 21:11 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In: 7.0.0


Attachments
oom log (27.80 KB, text/plain)
2020-01-10 16:46 UTC, Vitalii Tymchyshyn
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Vitalii Tymchyshyn 2019-12-29 17:26:46 UTC
SUMMARY


STEPS TO REPRODUCE
1. Run rescan faces on the whole DB

OBSERVED RESULT

[Thread 0x7fffb5d05700 (LWP 16885) exited]
[Thread 0x7fff89ffb700 (LWP 16884) exited]
[Thread 0x7fff8b7fe700 (LWP 16886) exited]
[Thread 0x7fffb6d07700 (LWP 16887) exited]
[New Thread 0x7fffb6d07700 (LWP 16954)]
[New Thread 0x7fff8b7fe700 (LWP 16966)]

Thread 916 "Thread (pooled)" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fff9e88b700 (LWP 26284)]
0x00007ffff435bfd8 in QMutex::lock() ()
   from /tmp/.mount_digikaYeb6oV/usr/lib/libQt5Core.so.5
(gdb) bt
#0  0x00007ffff435bfd8 in QMutex::lock() ()
   from /tmp/.mount_digikaYeb6oV/usr/lib/libQt5Core.so.5
#1  0x00007ffff762c45a in QMutexLocker::QMutexLocker (m=0x7fff4eb383d0, 
    this=<synthetic pointer>) at ././/include/QtCore/qmutex.h:206
#2  Digikam::DImg::setAttribute (this=0x53ba4d8, key=..., value=...)
    at /b/dktemp/digikam-v7.0.0-beta1/core/libs/dimg/dimg_props.cpp:215
#3  0x00007ffff762318f in Digikam::DImg::load (this=this@entry=0x53ba4d8, 
    filePath=..., loadFlagsInt=loadFlagsInt@entry=63, 
    observer=observer@entry=0x53ba300, rawDecodingSettings=...)
    at /b/dktemp/digikam-v7.0.0-beta1/core/libs/dimg/dimg_fileio.cpp:114
#4  0x00007ffff7624520 in Digikam::DImg::load (this=this@entry=0x53ba4d8, 
    filePath=..., observer=observer@entry=0x53ba300, rawDecodingSettings=...)
    at /b/dktemp/digikam-v7.0.0-beta1/core/libs/dimg/dimg_fileio.cpp:63
#5  0x00007ffff76f48c5 in Digikam::PreviewLoadingTask::execute (this=0x53ba2f0)
    at /b/dktemp/digikam-v7.0.0-beta1/core/libs/threadimageio/preview/previewtask.cpp:286
#6  0x00007ffff770a2be in Digikam::LoadSaveThread::run (this=0x1b65cf0)
    at /b/dktemp/digikam-v7.0.0-beta1/core/libs/threadimageio/fileio/loadsavethread.cpp:133
#7  0x00007ffff772edee in Digikam::DynamicThread::Private::run (this=0x1c31d20)
    at /b/dktemp/digikam-v7.0.0-beta1/core/libs/threads/dynamicthread.cpp:183
#8  0x00007ffff435fa27 in ?? ()
   from /tmp/.mount_digikaYeb6oV/usr/lib/libQt5Core.so.5
---Type <return> to continue, or q <return> to quit---
#9  0x00007ffff435bca3 in ?? ()
   from /tmp/.mount_digikaYeb6oV/usr/lib/libQt5Core.so.5
#10 0x00007ffff34ef6db in start_thread (arg=0x7fff9e88b700)
    at pthread_create.c:463
#11 0x00007ffff321888f in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95


EXPECTED RESULT


SOFTWARE/OS VERSIONS
Windows: 
macOS: 
Linux/KDE Plasma: 
(available in About System)
KDE Plasma Version: 
KDE Frameworks Version: 
Qt Version: 

ADDITIONAL INFORMATION
Comment 1 Vitalii Tymchyshyn 2019-12-29 17:33:46 UTC
Last few lines from console:
ESC[34mDigikam::PreviewLoadingTask::executeESC[0m: Cannot extract preview for "/home/tivv/Drive/foto/incoming/20161014/DCIM/Camera/VID_20150731_235809.mp4"
ESC[34mDigikam::PreviewLoadingTask::executeESC[0m: Try to get preview from "/home/tivv/Drive/foto/incoming/20161014/DCIM/Camera/VID_20150801_081329.mp4"
ESC[34mDigikam::PreviewLoadingTask::executeESC[0m: Preview quality:  1
ESC[34mDigikam::DImg::loadESC[0m: "/home/tivv/Drive/foto/incoming/20161014/DCIM/Camera/VID_20150801_081329.mp4" : Unknown image format !!!
ESC[34mDigikam::PreviewLoadingTask::executeESC[0m: Cannot extract preview for "/home/tivv/Drive/foto/incoming/20161014/DCIM/Camera/VID_20150801_081329.mp4"
ESC[34mDigikam::PreviewLoadingTask::executeESC[0m: Try to get preview from "/home/tivv/Drive/foto/incoming/20161014/DCIM/Camera/VID_20150801_081445.mp4"
ESC[34mDigikam::PreviewLoadingTask::executeESC[0m: Preview quality:  1
ESC[34mDigikam::DImg::loadESC[0m: "/home/tivv/Drive/foto/incoming/20161014/DCIM/Camera/VID_20150801_081445.mp4" : Unknown image format !!!
ESC[34mDigikam::PreviewLoadingTask::executeESC[0m: Cannot extract preview for "/home/tivv/Drive/foto/incoming/20161014/DCIM/Camera/VID_20150801_081445.mp4"
ESC[34mDigikam::PreviewLoadingTask::executeESC[0m: Try to get preview from "/home/tivv/Drive/foto/incoming/20161014/DCIM/Camera/VID_20150801_081653.mp4"
ESC[34mDigikam::PreviewLoadingTask::executeESC[0m: Preview quality:  1
ESC[34mDigikam::DImg::loadESC[0m: "/home/tivv/Drive/foto/incoming/20161014/DCIM/Camera/VID_20150801_081653.mp4" : Unknown image format !!!
ESC[34mDigikam::PreviewLoadingTask::executeESC[0m: Cannot extract preview for "/home/tivv/Drive/foto/incoming/20161014/DCIM/Camera/VID_20150801_081653.mp4"
ESC[34mDigikam::PreviewLoadingTask::executeESC[0m: Try to get preview from "/home/tivv/Drive/foto/incoming/20161014/DCIM/Camera/VID_20150802_054803.mp4"
ESC[34mDigikam::PreviewLoadingTask::executeESC[0m: Preview quality:  1
Comment 2 Vitalii Tymchyshyn 2019-12-29 17:37:34 UTC
Note: I will leave it open in gdb for some time. Let me know if any additional gdb command is needed
Comment 3 Vitalii Tymchyshyn 2019-12-29 17:40:15 UTC
CPU: Intel® Core™ i7-4510U CPU @ 2.00GHz × 4 
Ubuntu 18.04.3 LTS
558219304 Dec 26 09:03 /home/tivv/Downloads/digikam-7.0.0-beta1-x86-64.appimage
Comment 4 Maik Qualmann 2019-12-29 18:02:29 UTC

*** This bug has been marked as a duplicate of bug 415643 ***
Comment 5 caulier.gilles 2020-01-04 10:51:48 UTC
Fixed with bug #415643
Comment 6 Vitalii Tymchyshyn 2020-01-09 22:55:07 UTC
Still see it on digikam-7.0.0-beta2-20200109T110832-x86-64.appimage

Thread 2154 "Thread (pooled)" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fff7ffff700 (LWP 32005)]
0x00007ffff4343e57 in operator<(QString const&, QString const&) ()
   from /tmp/.mount_digikaTdgkjC/usr/lib/libQt5Core.so.5
(gdb) bt
#0  0x00007ffff4343e57 in operator<(QString const&, QString const&) ()
   from /tmp/.mount_digikaTdgkjC/usr/lib/libQt5Core.so.5
#1  0x00007ffff74c9ba0 in qMapLessThanKey<QString> (key2=..., key1=...)
    at ././/include/QtCore/qmap.h:68
#2  QMapNode<QString, QVariant>::lowerBound (akey=..., this=<optimized out>)
    at ././/include/QtCore/qmap.h:152
#3  QMapData<QString, QVariant>::findNode (this=<optimized out>, akey=...)
    at ././/include/QtCore/qmap.h:284
#4  0x00007ffff7629323 in QMap<QString, QVariant>::contains (akey=..., 
    this=<optimized out>) at ././/include/QtCore/qmap.h:693
#5  Digikam::DImg::hasAttribute (this=this@entry=0x7202ee8, key=...)
    at /b/dktemp/digikam-master/core/libs/dimg/dimg_props.cpp:236
#6  0x00007ffff762510a in Digikam::DImg::getUniqueHashV2 (this=0x7202ee8)
    at /b/dktemp/digikam-master/core/libs/dimg/dimg_metadata.cpp:72
#7  0x00007ffff7626a90 in Digikam::DImg::createHistoryImageId (
    this=<optimized out>, filePath=..., 
    type=type@entry=Digikam::HistoryImageId::Current)
    at /b/dktemp/digikam-master/core/libs/dimg/dimg_metadata.cpp:312
#8  0x00007ffff74d8985 in Digikam::DImgLoader::readMetadata (
    this=0x7fff6069ab90, filePath=...)
    at /b/dktemp/digikam-master/core/libs/dimg/loaders/dimgloader.cpp:225
#9  0x00007fffbfe33f99 in DigikamJPEGDImgPlugin::DImgJPEGLoader::load (
    this=0x7fff6069ab90, filePath=..., observer=0x7202d10)
---Type <return> to continue, or q <return> to quit---
    at /b/dktemp/digikam-master/core/dplugins/dimg/jpeg/dimgjpegloader_load.cpp:56
#10 0x00007ffff76219d4 in Digikam::DImg::load (this=this@entry=0x7202ee8, 
    filePath=..., loadFlagsInt=loadFlagsInt@entry=63, 
    observer=observer@entry=0x7202d10, rawDecodingSettings=...)
    at /b/dktemp/digikam-master/core/libs/dimg/dimg_fileio.cpp:138
#11 0x00007ffff7622a90 in Digikam::DImg::load (this=this@entry=0x7202ee8, 
    filePath=..., observer=observer@entry=0x7202d10, rawDecodingSettings=...)
    at /b/dktemp/digikam-master/core/libs/dimg/dimg_fileio.cpp:63
#12 0x00007ffff76f2c15 in Digikam::PreviewLoadingTask::execute (this=0x7202d00)
    at /b/dktemp/digikam-master/core/libs/threadimageio/preview/previewtask.cpp:290
#13 0x00007ffff77085ee in Digikam::LoadSaveThread::run (this=0x1b3be30)
    at /b/dktemp/digikam-master/core/libs/threadimageio/fileio/loadsavethread.cpp:133
#14 0x00007ffff772d11e in Digikam::DynamicThread::Private::run (this=0x19f2680)
    at /b/dktemp/digikam-master/core/libs/threads/dynamicthread.cpp:183
#15 0x00007ffff42a5f47 in ?? ()
   from /tmp/.mount_digikaTdgkjC/usr/lib/libQt5Core.so.5
#16 0x00007ffff42a24f5 in ?? ()
   from /tmp/.mount_digikaTdgkjC/usr/lib/libQt5Core.so.5
#17 0x00007ffff342c6db in start_thread (arg=0x7fff7ffff700)
    at pthread_create.c:463
---Type <return> to continue, or q <return> to quit---
#18 0x00007ffff315588f in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Comment 7 caulier.gilles 2020-01-10 06:54:10 UTC
Maik,

Since digikam-7.0.0-beta2-20200109T110832-x86-64.appimage, we use now Qt5.14.0 and OpenCV 3.5.9 in AppImage.

Gilles
Comment 8 Maik Qualmann 2020-01-10 07:01:24 UTC
Git commit 498089011eeb2ea4c347df19ffaf39efb87cfde7 by Maik Qualmann.
Committed on 10/01/2020 at 07:00.
Pushed by mqualmann into branch 'master'.

try to fix the crash in getUniqueHashV2()

M  +2    -2    core/libs/dimg/dimg.h
M  +8    -8    core/libs/dimg/dimg_metadata.cpp

https://invent.kde.org/kde/digikam/commit/498089011eeb2ea4c347df19ffaf39efb87cfde7
Comment 9 Maik Qualmann 2020-01-10 07:03:11 UTC
@Vitalii only for my stats. Do you have an Intel CPU?

Maik
Comment 10 Vitalii Tymchyshyn 2020-01-10 15:05:22 UTC
Yep, 
CPU: Intel® Core™ i7-4510U CPU @ 2.00GHz × 4 
Ubuntu 18.04.3 LTS
Thanks for fast fix! How do I know which snapshot did it make to to try?
Comment 11 caulier.gilles 2020-01-10 15:32:29 UTC
bundles have been updated today at this place :

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

Best

Gilles Caulier
Comment 12 Vitalii Tymchyshyn 2020-01-10 16:46:07 UTC
Created attachment 125020 [details]
oom log

OK, digikam-7.0.0-beta2-20200110T055935-x86-64.appimage ate all my memory
Comment 13 Vitalii Tymchyshyn 2020-01-15 20:25:58 UTC
One more backtrace, now during recognizing:
[New Thread 0x7fff397fa700 (LWP 24504)]
[New Thread 0x7fff40a37700 (LWP 24505)]

Thread 1 "digikam" received signal SIGSEGV, Segmentation fault.
0x00007ffff4342730 in QString::operator=(QString const&) () from /tmp/.mount_digika64EwnA/usr/lib/libQt5Core.so.5
(gdb) bt
#0  0x00007ffff4342730 in QString::operator=(QString const&) () from /tmp/.mount_digika64EwnA/usr/lib/libQt5Core.so.5
#1  0x00007ffff708b374 in Digikam::ItemInfo::ItemInfo (this=0x7fffffffbee8, record=...)
    at /b/dktemp/digikam-master/core/libs/database/item/containers/iteminfo.cpp:45
#2  0x00007ffff6af01a0 in Digikam::ItemInfoJob::slotData (this=0x1d6b868, records=...)
    at /b/dktemp/digikam-master/core/utilities/maintenance/iteminfojob.cpp:174
#3  0x00007ffff44c6a56 in ?? () from /tmp/.mount_digika64EwnA/usr/lib/libQt5Core.so.5
#4  0x00007ffff712d175 in Digikam::DBJobsThread::data (this=<optimized out>, _t1=...)
    at /b/dktemp/digikam-master/build/core/libs/database/digikamdatabase_src_automoc.dir/moc_dbjobsthread_36KIDXXBTBIVQQ.cpp:162
#5  0x00007ffff44bef73 in QObject::event(QEvent*) () from /tmp/.mount_digika64EwnA/usr/lib/libQt5Core.so.5
#6  0x00007ffff503d29c in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
   from /tmp/.mount_digika64EwnA/usr/lib/libQt5Widgets.so.5
#7  0x00007ffff50444c0 in QApplication::notify(QObject*, QEvent*) () from /tmp/.mount_digika64EwnA/usr/lib/libQt5Widgets.so.5
#8  0x00007ffff4490868 in QCoreApplication::notifyInternal2(QObject*, QEvent*) ()
   from /tmp/.mount_digika64EwnA/usr/lib/libQt5Core.so.5
#9  0x00007ffff44937fa in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) ()
   from /tmp/.mount_digika64EwnA/usr/lib/libQt5Core.so.5
#10 0x00007ffff44e8de3 in ?? () from /tmp/.mount_digika64EwnA/usr/lib/libQt5Core.so.5
#11 0x00007fffee5a9417 in g_main_context_dispatch () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#12 0x00007fffee5a9650 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#13 0x00007fffee5a96dc in g_main_context_iteration () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#14 0x00007ffff44e847c in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /tmp/.mount_digika64EwnA/usr/lib/libQt5Core.so.5
#15 0x00007ffff448f262 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /tmp/.mount_digika64EwnA/usr/lib/libQt5Core.so.5
#16 0x00007ffff4498080 in QCoreApplication::exec() () from /tmp/.mount_digika64EwnA/usr/lib/libQt5Core.so.5
#17 0x000000000040580d in main (argc=1, argv=<optimized out>) at /b/dktemp/digikam-master/core/app/main/main.cpp:336
Comment 14 Maik Qualmann 2020-01-15 20:49:10 UTC
Hmm, we have never seen a crash here, m_data does not have to be valid, even though we are under lock condition. I'm going to undo a recent change as a test.

Maik
Comment 15 Maik Qualmann 2020-01-15 20:54:25 UTC
Git commit c2e12bc149e632ac6d1ba1365929b6bb2fcdce52 by Maik Qualmann.
Committed on 15/01/2020 at 20:53.
Pushed by mqualmann into branch 'master'.

move create m_data back to the constructor body

M  +4    -2    core/libs/database/item/containers/iteminfo.cpp

https://invent.kde.org/kde/digikam/commit/c2e12bc149e632ac6d1ba1365929b6bb2fcdce52
Comment 16 Vitalii Tymchyshyn 2020-01-26 21:11:37 UTC
Seems to work just fine for me now