Bug 397919

Summary: Segmentation fault during maintenance
Product: [Applications] digikam Reporter: Mathieu <mathieu.blum>
Component: Maintenance-EngineAssignee: Digikam Developers <digikam-bugs-null>
Status: RESOLVED FIXED    
Severity: crash CC: caulier.gilles, metzpinguin
Priority: NOR    
Version: 6.0.0   
Target Milestone: ---   
Platform: Appimage   
OS: Linux   
Latest Commit: Version Fixed In: 7.0.0

Description Mathieu 2018-08-27 07:38:45 UTC
I have started a maintenance process using the following options:
- search new elements
- clean all databases
- reconstruct thumbnails (fast option)
- reconstruct fingerprints (fast option)
- detect and recognize faces (re analyze and merge results)
- sync database and metadatas (from database)
And these on a large collection of pictures (~65.000)

I have launched during the night so I am not able to know when the segmentation fault occured. Below, the last output from the console:

Digikam::DImg::load: "/home/mathieu/Images/Photos/0000-00-00 - Photos - Famille/foo/2009-12-29_205823 - DSC05919 (001).JPG"  : JPEG file identified
Digikam::DMetadata::getImageHistory: Loading image history  ""
Digikam::MetaEngine::getImageDateTime: DateTime => Exif.Photo.DateTimeOriginal => QDateTime(2009-12-29 20:58:23.000 CET Qt::TimeSpec(LocalTime))
Digikam::MetaEngine::getImageDateTime: DateTime => Exif.Photo.DateTimeDigitized => QDateTime(2009-12-29 20:58:23.000 CET Qt::TimeSpec(LocalTime))
Digikam::OpenCVFaceDetector::cascadeResult: detectMultiScale gave  (QRect(722,429 53x53), QRect(131,206 97x97))
Digikam::OpenCVFaceDetector::verifyFace: Verifying face  QRect(722,429 53x53)  using cascade  0
Digikam::OpenCVFaceDetector::cascadeResult: detectMultiScale: image size  118   133  searchIncrement  1.1  grouping  3  flags  0  min size  32   32 

Digikam::OpenCVFaceDetector::cascadeResult: detectMultiScale gave  (QRect(40,40 55x55))
Digikam::OpenCVFaceDetector::verifyFace: Verifying face  QRect(722,429 53x53)  using cascade  1
Digikam::OpenCVFaceDetector::cascadeResult: detectMultiScale: image size  118   133  searchIncrement  1.1  grouping  3  flags  0  min size  32   32 

Digikam::OpenCVFaceDetector::cascadeResult: detectMultiScale gave  (QRect(40,37 57x57))
Digikam::OpenCVFaceDetector::verifyFace: Verifying face  QRect(722,429 53x53)  using cascade  2
Digikam::OpenCVFaceDetector::verifyFace: Verifying face  QRect(722,429 53x53)  using cascade  3
Digikam::OpenCVFaceDetector::cascadeResult: detectMultiScale: image size  118   133  searchIncrement  1.1  grouping  3  flags  0  min size  32   32 

Digikam::OpenCVFaceDetector::cascadeResult: detectMultiScale gave  ()
Digikam::OpenCVFaceDetector::verifyFace: Verifying face  QRect(722,429 53x53)  using cascade  4
Digikam::OpenCVFaceDetector::cascadeResult: detectMultiScale: image size  118   133  searchIncrement  1.1  grouping  3  flags  0  min size  32   32 

Digikam::OpenCVFaceDetector::cascadeResult: detectMultiScale gave  ()
Digikam::OpenCVFaceDetector::verifyFace: Verifying face  QRect(722,429 53x53)  using cascade  5
Digikam::OpenCVFaceDetector::verifyFace: feature  QRectF(0,0 0.6x0.6) QRect(722,429 53x53) QRect(722,429 32x32)
Digikam::OpenCVFaceDetector::cascadeResult: detectMultiScale: image size  32   32  searchIncrement  1.1  grouping  2  flags  0  min size  5   5 

Digikam::OpenCVFaceDetector::cascadeResult: detectMultiScale gave  ()
Digikam::OpenCVFaceDetector::verifyFace: Verifying face  QRect(722,429 53x53)  using cascade  6
Digikam::OpenCVFaceDetector::verifyFace: feature  QRectF(0.4,0 0.6x0.6) QRect(722,429 53x53) QRect(743,429 32x32)
Digikam::OpenCVFaceDetector::cascadeResult: detectMultiScale: image size  32   32  searchIncrement  1.1  grouping  2  flags  0  min size  5   5 

Digikam::OpenCVFaceDetector::cascadeResult: detectMultiScale gave  ()
Digikam::OpenCVFaceDetector::verifyFace: Verifying face  QRect(722,429 53x53)  using cascade  7
Digikam::OpenCVFaceDetector::verifyFace: feature  QRectF(0.2,0.25 0.6x0.6) QRect(722,429 53x53) QRect(733,442 32x32)
Digikam::OpenCVFaceDetector::cascadeResult: detectMultiScale: image size  32   32  searchIncrement  1.1  grouping  2  flags  0  min size  5   5 

Digikam::OpenCVFaceDetector::cascadeResult: detectMultiScale gave  ()
Digikam::OpenCVFaceDetector::verifyFace: Verifying face  QRect(722,429 53x53)  using cascade  8
Digikam::OpenCVFaceDetector::verifyFace: feature  QRectF(0.1,0.4 0.8x0.6) QRect(722,429 53x53) QRect(727,450 42x32)
Digikam::OpenCVFaceDetector::cascadeResult: detectMultiScale: image size  42   32  searchIncrement  1.1  grouping  2  flags  0  min size  5   5 

Digikam::OpenCVFaceDetector::cascadeResult: detectMultiScale gave  ()
Digikam::OpenCVFaceDetector::verifyFace: Verifying face  QRect(131,206 97x97)  using cascade  0
Digikam::OpenCVFaceDetector::cascadeResult: detectMultiScale: image size  177   177  searchIncrement  1.1  grouping  3  flags  0  min size  58   58 

Digikam::OpenCVFaceDetector::cascadeResult: detectMultiScale gave  (QRect(41,38 99x99))
Digikam::OpenCVFaceDetector::verifyFace: Verifying face  QRect(131,206 97x97)  using cascade  1
Digikam::OpenCVFaceDetector::cascadeResult: detectMultiScale: image size  177   177  searchIncrement  1.1  grouping  3  flags  0  min size  58   58 

Digikam::OpenCVFaceDetector::cascadeResult: detectMultiScale gave  (QRect(37,37 105x105))
Digikam::OpenCVFaceDetector::verifyFace: Verifying face  QRect(131,206 97x97)  using cascade  2
Digikam::OpenCVFaceDetector::verifyFace: Verifying face  QRect(131,206 97x97)  using cascade  3
Digikam::OpenCVFaceDetector::cascadeResult: detectMultiScale: image size  177   177  searchIncrement  1.1  grouping  3  flags  0  min size  58   58 

Digikam::OpenCVFaceDetector::cascadeResult: detectMultiScale gave  ()
Digikam::OpenCVFaceDetector::verifyFace: Verifying face  QRect(131,206 97x97)  using cascade  4
Digikam::OpenCVFaceDetector::cascadeResult: detectMultiScale: image size  177   177  searchIncrement  1.1  grouping  3  flags  0  min size  58   58 

Digikam::OpenCVFaceDetector::cascadeResult: detectMultiScale gave  ()
Digikam::OpenCVFaceDetector::verifyFace: Verifying face  QRect(131,206 97x97)  using cascade  5
Digikam::OpenCVFaceDetector::verifyFace: feature  QRectF(0,0 0.6x0.6) QRect(131,206 97x97) QRect(131,206 58x58)
Digikam::OpenCVFaceDetector::cascadeResult: detectMultiScale: image size  58   58  searchIncrement  1.1  grouping  2  flags  0  min size  10   10 

Digikam::OpenCVFaceDetector::cascadeResult: detectMultiScale gave  (QRect(19,28 32x21))
Digikam::OpenCVFaceDetector::verifyFace: Verifying face  QRect(131,206 97x97)  using cascade  6
Digikam::OpenCVFaceDetector::verifyFace: feature  QRectF(0.4,0 0.6x0.6) QRect(131,206 97x97) QRect(170,206 58x58)
Digikam::OpenCVFaceDetector::cascadeResult: detectMultiScale: image size  58   58  searchIncrement  1.1  grouping  2  flags  0  min size  10   10 

Digikam::FaceUtils::writeUnconfirmedResults: Entry QRect(528,813 457x457)290overlapsQRect(522,813 457x457)603, skipping
Digikam::DImg::copy:  : return null image! ( false ,  0 ,  0 )
Digikam::OpenCVFaceDetector::cascadeResult: detectMultiScale gave  (QRect(20,30 22x14))
Digikam::OpenCVFaceDetector::verifyFace: Verifying face  QRect(131,206 97x97)  using cascade  7
Digikam::OpenCVFaceDetector::verifyFace: feature  QRectF(0.2,0.25 0.6x0.6) QRect(131,206 97x97) QRect(150,230 58x58)
Digikam::OpenCVFaceDetector::cascadeResult: detectMultiScale: image size  58   58  searchIncrement  1.1  grouping  2  flags  0  min size  10   10 

Digikam::OpenCVFaceDetector::cascadeResult: detectMultiScale gave  (QRect(27,31 18x15))
Digikam::OpenCVFaceDetector::verifyFace: Verifying face  QRect(131,206 97x97)  using cascade  8
Digikam::OpenCVFaceDetector::verifyFace: feature  QRectF(0.1,0.4 0.8x0.6) QRect(131,206 97x97) QRect(141,245 78x58)
Digikam::OpenCVFaceDetector::cascadeResult: detectMultiScale: image size  78   58  searchIncrement  1.1  grouping  2  flags  0  min size  10   10 

Digikam::OpenCVFaceDetector::cascadeResult: detectMultiScale gave  ()
Digikam::DetectionWorker::process: Found 2 faces in "2009-12-29_205736 - DSC05916 (001).JPG" QSize(2592, 1944) QSize(2592, 1944)
Digikam::DMetadata::getIccProfile: Exif color-space tag is sRGB. Using default sRGB ICC profile.
Digikam::MetaEngine::getImageOrientation: Orientation => Exif.Image.Orientation => 6
Digikam::IccManager::IccManager: Cannot open workspace color profile "/tmp/.mount_digikanbwKZQ/usr/share/digikam/profiles/srgb-d65.icm"
Digikam::DImg::load: "/home/mathieu/Images/Photos/0000-00-00 - Photos - Famille/foo/2009-12-29_205829 - DSC05920 (001).JPG"  : JPEG file identified
Digikam::DMetadata::getImageHistory: Loading image history  ""
Digikam::MetaEngine::getImageDateTime: DateTime => Exif.Photo.DateTimeOriginal => QDateTime(2009-12-29 20:58:29.000 CET Qt::TimeSpec(LocalTime))
Digikam::MetaEngine::getImageDateTime: DateTime => Exif.Photo.DateTimeDigitized => QDateTime(2009-12-29 20:58:29.000 CET Qt::TimeSpec(LocalTime))
Digikam::DMetadata::getIccProfile: Exif color-space tag is sRGB. Using default sRGB ICC profile.
Digikam::MetaEngine::getImageOrientation: Orientation => Exif.Image.Orientation => 6
Digikam::IccManager::IccManager: Cannot open workspace color profile "/tmp/.mount_digikanbwKZQ/usr/share/digikam/profiles/srgb-d65.icm"
Digikam::DImg::load: "/home/mathieu/Images/Photos/0000-00-00 - Photos - Famille/foo/2009-12-29_205835 - DSC05921 (001).JPG"  : JPEG file identified
Digikam::DMetadata::getImageHistory: Loading image history  ""
Digikam::MetaEngine::getImageDateTime: DateTime => Exif.Photo.DateTimeOriginal => QDateTime(2009-12-29 20:58:35.000 CET Qt::TimeSpec(LocalTime))
Digikam::MetaEngine::getImageDateTime: DateTime => Exif.Photo.DateTimeDigitized => QDateTime(2009-12-29 20:58:35.000 CET Qt::TimeSpec(LocalTime))
Digikam::FacePipeline::Private::checkFinished: Check for finish:  17 packages, 0 infos to filter, hasFinished() false
Digikam::FacePipeline::Private::checkFinished: Check for finish:  16 packages, 0 infos to filter, hasFinished() false
Digikam::FacePipeline::Private::checkFinished: Check for finish:  15 packages, 0 infos to filter, hasFinished() false
Digikam::DImg::load: "/home/mathieu/Images/Photos/0000-00-00 - Photos - Famille/foo/2009-12-29_205916 - DSC05922 (001).JPG"  : JPEG file identified
/tmp/.mount_digikavmZOvq/AppRun : ligne 115 : 27207 Erreur de segmentation  digikam $@
Comment 1 caulier.gilles 2018-08-27 07:49:07 UTC
It sound like a crash in face engine, but not sure.

We need a GDB backtrace. You can run the AppImage bundle in GDB with the "debug" option to pass on command line.

Look here for details :

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

Gilles Caulier
Comment 2 Mathieu 2018-08-28 05:41:00 UTC
Digikam::DImg::load: "/home/mathieu/Images/Photos/0000-00-00 - Photos - Famille/foo/2005-08-07_170334 - DSC01571 (001).JPG"  : JPEG file identified
Digikam::DMetadata::getImageHistory: Loading image history  ""
Digikam::MetaEngine::getImageDateTime: DateTime => Exif.Photo.DateTimeOriginal => QDateTime(2005-08-07 17:03:34.000 CEST Qt::TimeSpec(LocalTime))
Digikam::MetaEngine::getImageDateTime: DateTime => Exif.Photo.DateTimeDigitized => QDateTime(2005-08-07 17:03:34.000 CEST Qt::TimeSpec(LocalTime))
Digikam::DMetadata::getIccProfile: Exif color-space tag is sRGB. Using default sRGB ICC profile.
Digikam::MetaEngine::getImageOrientation: Orientation => Exif.Image.Orientation => 1
Digikam::IccManager::IccManager: Cannot open workspace color profile "/tmp/.mount_digikanbwKZQ/usr/share/digikam/profiles/srgb-d65.icm"
Digikam::FaceUtils::writeUnconfirmedResults: Entry QRect(794,590 191x191)53overlapsQRect(797,590 191x191)603, skipping
Digikam::DImg::copy:  : return null image! ( false ,  0 ,  0 )
Digikam::FaceUtils::writeUnconfirmedResults: Entry QRect(1393,761 253x254)603overlapsQRect(1393,761 253x254)603, skipping
Digikam::FaceUtils::writeUnconfirmedResults: Entry QRect(809,220 189x190)38overlapsQRect(809,223 187x187)603, skipping
Digikam::FaceUtils::writeUnconfirmedResults: Entry QRect(1224,256 172x172)603overlapsQRect(1224,256 172x172)603, skipping
Digikam::DImg::copy:  : return null image! ( false ,  0 ,  0 )
Digikam::FaceUtils::writeUnconfirmedResults: Entry QRect(1085,807 125x125)603overlapsQRect(1085,807 125x125)603, skipping
Digikam::FaceUtils::writeUnconfirmedResults: Entry QRect(891,310 115x115)38overlapsQRect(888,307 120x120)603, skipping
Digikam::DImg::copy:  : return null image! ( false ,  0 ,  0 )
[New Thread 0x7fff2affd700 (LWP 32060)]
[Thread 0x7fff2affd700 (LWP 31962) exited]
[Thread 0x7fff4ab6d700 (LWP 32049) exited]

Thread 611 "Thread (pooled)" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7ffeef7fe700 (LWP 28287)]
0x00007fffe8b8df78 in main_arena () from /lib/x86_64-linux-gnu/libc.so.6
Comment 3 Mathieu 2018-08-28 05:42:48 UTC
(gdb) bt
#0  0x00007fffe8b8df78 in main_arena () from /lib/x86_64-linux-gnu/libc.so.6
#1  0x00007ffff63d6ec8 in Digikam::SharedLoadingTask::postProcess (this=0x83768f0)
    at /b/dktemp/digikam-master/core/libs/threadimageio/loadsavetask.cpp:335
#2  0x00007ffff63da442 in Digikam::PreviewLoadingTask::execute (this=0x83768f0)
    at /b/dktemp/digikam-master/core/libs/threadimageio/previewtask.cpp:399
#3  0x00007ffff63c6605 in Digikam::LoadSaveThread::run (this=0x866530)
    at /b/dktemp/digikam-master/core/libs/threadimageio/loadsavethread.cpp:133
#4  0x00007ffff640838e in Digikam::DynamicThread::Private::run (this=0x672c9c0)
    at /b/dktemp/digikam-master/core/libs/threads/dynamicthread.cpp:183
#5  0x00007fffea4bb60f in ?? () from /tmp/.mount_digikaedpRtT/usr/lib/libQt5Core.so.5
#6  0x00007fffea4bf18a in ?? () from /tmp/.mount_digikaedpRtT/usr/lib/libQt5Core.so.5
#7  0x00007ffff536a494 in start_thread (arg=0x7ffeef7fe700) at pthread_create.c:333
#8  0x00007fffe88dcacf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:97
(gdb)
Comment 4 Maik Qualmann 2018-08-28 06:07:44 UTC
Git commit 50b066772cc02a2c9de39fb9676df8fad30ec146 by Maik Qualmann.
Committed on 28/08/2018 at 06:06.
Pushed by mqualmann into branch 'master'.

postprocessing only with valid image

M  +6    -1    core/libs/threadimageio/loadsavetask.cpp

https://commits.kde.org/digikam/50b066772cc02a2c9de39fb9676df8fad30ec146
Comment 5 caulier.gilles 2018-08-28 06:22:12 UTC
Mathieu,

Look the message :

Digikam::IccManager::IccManager: Cannot open workspace color profile "/tmp/.mount_digikanbwKZQ/usr/share/digikam/profiles/srgb-d65.icm"

This file must be included in the AppImage bundle.

At run time, AppImage is decompressed in memory and monted to a temporary dir. This one change at each session.

On your trace : /tmp/.mount_digikanbwKZQ/ is the temporary dir. The dir name is always mounted to /tmp and named with the prefix .mount_digika, the rest is change.

It's easy to found new one used at a new session. Just list dir starting with ".mount_digika" in /tmp. It must have only one.

So, my question is : do you see the "usr/share/digikam/profiles/srgb-d65.icm" file in the temporary directory ?

Gilles Caulier
Comment 6 Mathieu 2018-08-28 06:41:15 UTC
Yes, srgb-d65.icm exists in this folder
Comment 7 caulier.gilles 2018-08-28 06:44:53 UTC
As expected...

So the question is : why this file cannot be loaded as we can see in the debug trace from the console.

What's the properties of this ICC profile from the bundle with ls -al ?

Gilles Caulier
Comment 8 Mathieu 2018-08-28 06:47:54 UTC
-rw-r--r--. 1 root root 6924 août  17 18:28 srgb-d65.icm
Comment 9 Mathieu 2018-08-30 10:40:09 UTC
test with digikam-6.0.0-git-20180817T182155-x86-64.appimage 

Digikam::MaintenanceMngr::setSettings: 
wholeAlbums           : true
wholeTags             : true
Albums                : 1073
Tags                  : 557
useMutiCoreCPU        : true
newItems              : true
thumbnails            : true
scanThumbs            : true
fingerPrints          : true
scanFingerPrints      : true
duplicates            : false
minSimilarity         : 90
maxSimilarity         : 100
duplicatesRestriction : 0
faceManagement        : true
faceScannedHandling   : 1
qualitySort           : false
quality               : 
EnableSorter      : true
DetectBlur        : true
DetectNoise       : true
DetectCompression : true
DetectOverexposure :true
LowQRejected      : true
MediumQPending    : true
HighQAccepted     : true
Speed             : 1
Rejected Threshold: 10
Pending Threshold : 40
Accepted Threshold: 60
Blur Weight       : 100
Noise Weight      : 100
Compression Weight: 100
 
qualityScanMode       : 1
metadataSync          : true
syncDirection         : 0
databaseCleanup       : true
cleanThumbDb          : true
cleanFacesDb          : true
shrinkDatabases       : true

Digikam::MaintenanceMngr::stage1: stage1
Digikam::NewItemsFinder::slotStart: scan mode: CompleteCollectionScan
[Thread 0x7ffeeb7fe700 (LWP 10042) exited]
Digikam::NewItemsFinder::slotTotalFilesToScan: total scan value :  68646
Digikam::CollectionScanner::completeHistoryScanning: items to tag ()
Digikam::CollectionScanner::completeScan: Complete scan took: 17432 msecs.
Digikam::ActionThreadBase::setMaximumNumberOfThreads: Using  4  CPU core to run threads
[New Thread 0x7ffeeb7fe700 (LWP 10533)]
Digikam::ActionThreadBase::run: Action Thread run  1  new jobs
[New Thread 0x7ffeebfff700 (LWP 10534)]
Digikam::ImageQueryBuilder::buildQueryFromXml: " ( ( (ImageTagProperties.tagid=? OR ImageTagProperties.tagid IN (SELECT id FROM TagsTree WHERE pid=?)) AND ImageTagProperties.property=?  ) OR ( (ImageTagProperties.tagid=? OR ImageTagProperties.tagid IN (SELECT id FROM TagsTree WHERE pid=?)) AND ImageTagProperties.property=?  ) OR ( (ImageTagProperties.tagid=? OR ImageTagProperties.tagid IN (SELECT id FROM TagsTree WHERE pid=?)) AND ImageTagProperties.property=?  ) ) "
Digikam::ImageLister::listImageTagPropertySearch: Search query:
 "SELECT DISTINCT Images.id, Images.name, Images.album,        Albums.albumRoot,        ImageInformation.rating, Images.category,        ImageInformation.format, ImageInformation.creationDate,        Images.modificationDate, Images.fileSize,        ImageInformation.width,  ImageInformation.height,        ImageTagProperties.value, ImageTagProperties.property, ImageTagProperties.tagid  FROM Images        INNER JOIN ImageTagProperties ON ImageTagProperties.imageid=Images.id        LEFT JOIN ImageInformation ON Images.id=ImageInformation.imageid        INNER JOIN Albums           ON Albums.id=Images.album WHERE Images.status=1 AND (  ( ( (ImageTagProperties.tagid=? OR ImageTagProperties.tagid IN (SELECT id FROM TagsTree WHERE pid=?)) AND ImageTagProperties.property=?  ) OR ( (ImageTagProperties.tagid=? OR ImageTagProperties.tagid IN (SELECT id FROM TagsTree WHERE pid=?)) AND ImageTagProperties.property=?  ) OR ( (ImageTagProperties.tagid=? OR ImageTagProperties.tagid IN (SELECT id FROM TagsTree WHERE pid=?)) AND ImageTagProperties.property=?  ) )  );" 
 (QVariant(int, 603), QVariant(int, 603), QVariant(QString, "autodetectedPerson"), QVariant(int, 603), QVariant(int, 603), QVariant(QString, "autodetectedFace"), QVariant(int, 603), QVariant(int, 603), QVariant(QString, "tagRegion"))
Digikam::NewItemsFinder::slotTotalFilesToScan: total scan value :  68646
Digikam::ImageLister::listImageTagPropertySearch: Search result: 16503
Digikam::ActionThreadBase::cancel: Cancel Main Thread
[Thread 0x7ffeeb7fe700 (LWP 10533) exited]
[New Thread 0x7ffeeb7fe700 (LWP 10539)]
Digikam::BdEngineBackendPrivate::checkRetrySQLiteLockError: Database is locked. Waited 0
Digikam::ActionThreadBase::slotJobFinished: One job is done
Digikam::ActionThreadBase::cancel: Cancel Main Thread
[Thread 0x7ffeebfff700 (LWP 10534) exited]
Digikam::BdEngineBackendPrivate::checkRetrySQLiteLockError: Database is locked. Waited 250
Digikam::BdEngineBackendPrivate::checkRetrySQLiteLockError: Database is locked. Waited 500
Digikam::BdEngineBackendPrivate::checkRetrySQLiteLockError: Database is locked. Waited 750

Digikam::CollectionScanner::completeHistoryScanning: items to tag ()
Digikam::BdEngineBackendPrivate::checkRetrySQLiteLockError: Database is locked. Waited 1000
Digikam::BdEngineBackendPrivate::checkRetrySQLiteLockError: Database is locked. Waited 1250
Digikam::BdEngineBackendPrivate::checkRetrySQLiteLockError: Database is locked. Waited 1500
Digikam::BdEngineBackendPrivate::checkRetrySQLiteLockError: Database is locked. Waited 1750
Digikam::BdEngineBackendPrivate::checkRetrySQLiteLockError: Database is locked. Waited 2000
Digikam::BdEngineBackendPrivate::checkRetrySQLiteLockError: Database is locked. Waited 2250
Digikam::BdEngineBackendPrivate::checkRetrySQLiteLockError: Database is locked. Waited 2500
Digikam::BdEngineBackendPrivate::checkRetrySQLiteLockError: Database is locked. Waited 2750
Digikam::BdEngineBackendPrivate::checkRetrySQLiteLockError: Database is locked. Waited 3000
Digikam::BdEngineBackendPrivate::checkRetrySQLiteLockError: Database is locked. Waited 3250
Digikam::BdEngineBackendPrivate::checkRetrySQLiteLockError: Database is locked. Waited 3500
Digikam::BdEngineBackendPrivate::checkRetrySQLiteLockError: Database is locked. Waited 3750
Digikam::BdEngineBackendPrivate::checkRetrySQLiteLockError: Database is locked. Waited 4000
Digikam::BdEngineBackendPrivate::checkRetrySQLiteLockError: Database is locked. Waited 4250
Digikam::BdEngineBackendPrivate::checkRetrySQLiteLockError: Database is locked. Waited 4500
Digikam::BdEngineBackendPrivate::checkRetrySQLiteLockError: Database is locked. Waited 4750
Digikam::BdEngineBackendPrivate::checkRetrySQLiteLockError: Database is locked. Waited 5000
Digikam::BdEngineBackendPrivate::checkRetrySQLiteLockError: Database is locked. Waited 5250
Digikam::BdEngineBackendPrivate::checkRetrySQLiteLockError: Database is locked. Waited 5500
Digikam::BdEngineBackendPrivate::checkRetrySQLiteLockError: Database is locked. Waited 5750
Digikam::BdEngineBackendPrivate::checkRetrySQLiteLockError: Database is locked. Waited 6000
Digikam::BdEngineBackendPrivate::checkRetrySQLiteLockError: Database is locked. Waited 6250
Digikam::BdEngineBackendPrivate::checkRetrySQLiteLockError: Database is locked. Waited 6500
Digikam::CollectionScanner::completeScan: Complete scan (file scanning deferred) took: 7735 msecs.
Digikam::MaintenanceMngr::stage2: stage2
Digikam::ActionThreadBase::setMaximumNumberOfThreads: Using  4  CPU core to run threads
Digikam::ActionThreadBase::setMaximumNumberOfThreads: Using  4  CPU core to run threads
[New Thread 0x7ffeebfff700 (LWP 10554)]
Digikam::ActionThreadBase::run: Action Thread run  1  new jobs
[New Thread 0x7fff317fa700 (LWP 10555)]
Digikam::RecognitionDatabase::Private::Private: Face database ready for use
......
Digikam::DImg::load: "/home/mathieu/Images/Photos/0000-00-00 - Photos - Famille/foo/2003-06-28_000000 - Divers ( (013).jpg"  : JPEG file identified
Digikam::OpenCVFaceDetector::cascadeResult: detectMultiScale gave  (QRect(206,117 49x49), QRect(338,120 57x57))
Digikam::OpenCVFaceDetector::verifyFace: Verifying face  QRect(206,117 49x49)  using cascade  0
Digikam::OpenCVFaceDetector::cascadeResult: detectMultiScale: image size  129   129  searchIncrement  1.1  grouping  3  flags  0  min size  29   29 

Digikam::OpenCVFaceDetector::cascadeResult: detectMultiScale gave  (QRect(40,41 47x47))
Digikam::OpenCVFaceDetector::verifyFace: Verifying face  QRect(206,117 49x49)  using cascade  1
Digikam::OpenCVFaceDetector::cascadeResult: detectMultiScale: image size  129   129  searchIncrement  1.1  grouping  3  flags  0  min size  29   29 

Digikam::OpenCVFaceDetector::cascadeResult: detectMultiScale gave  (QRect(38,40 50x50))
Digikam::OpenCVFaceDetector::verifyFace: Verifying face  QRect(206,117 49x49)  using cascade  2
Digikam::OpenCVFaceDetector::verifyFace: Verifying face  QRect(206,117 49x49)  using cascade  3
Digikam::OpenCVFaceDetector::cascadeResult: detectMultiScale: image size  129   129  searchIncrement  1.1  grouping  3  flags  0  min size  29   29 

Digikam::OpenCVFaceDetector::cascadeResult: detectMultiScale gave  ()
Digikam::OpenCVFaceDetector::verifyFace: Verifying face  QRect(206,117 49x49)  using cascade  4
Digikam::OpenCVFaceDetector::cascadeResult: detectMultiScale: image size  129   129  searchIncrement  1.1  grouping  3  flags  0  min size  29   29 

Digikam::OpenCVFaceDetector::cascadeResult: detectMultiScale gave  ()
Digikam::OpenCVFaceDetector::verifyFace: Verifying face  QRect(206,117 49x49)  using cascade  5
Digikam::OpenCVFaceDetector::verifyFace: feature  QRectF(0,0 0.6x0.6) QRect(206,117 49x49) QRect(206,117 29x29)
Digikam::OpenCVFaceDetector::cascadeResult: detectMultiScale: image size  29   29  searchIncrement  1.1  grouping  2  flags  0  min size  5   5 

Digikam::OpenCVFaceDetector::cascadeResult: detectMultiScale gave  ()
Digikam::OpenCVFaceDetector::verifyFace: Verifying face  QRect(206,117 49x49)  using cascade  6
Digikam::OpenCVFaceDetector::verifyFace: feature  QRectF(0.4,0 0.6x0.6) QRect(206,117 49x49) QRect(226,117 29x29)
Digikam::OpenCVFaceDetector::cascadeResult: detectMultiScale: image size  29   29  searchIncrement  1.1  grouping  2  flags  0  min size  5   5 

Digikam::OpenCVFaceDetector::cascadeResult: detectMultiScale gave  (QRect(5,12 19x12))
Digikam::OpenCVFaceDetector::verifyFace: Verifying face  QRect(206,117 49x49)  using cascade  7
Digikam::OpenCVFaceDetector::verifyFace: feature  QRectF(0.2,0.25 0.6x0.6) QRect(206,117 49x49) QRect(216,129 29x29)
Digikam::OpenCVFaceDetector::cascadeResult: detectMultiScale: image size  29   29  searchIncrement  1.1  grouping  2  flags  0  min size  5   5 

Digikam::OpenCVFaceDetector::cascadeResult: detectMultiScale gave  ()
Digikam::OpenCVFaceDetector::verifyFace: Verifying face  QRect(206,117 49x49)  using cascade  8
Digikam::OpenCVFaceDetector::verifyFace: feature  QRectF(0.1,0.4 0.8x0.6) QRect(206,117 49x49) QRect(211,137 39x29)
Digikam::OpenCVFaceDetector::cascadeResult: detectMultiScale: image size  39   29  searchIncrement  1.1  grouping  2  flags  0  min size  5   5 

Digikam::OpenCVFaceDetector::cascadeResult: detectMultiScale gave  ()
Digikam::OpenCVFaceDetector::verifyFace: Verifying face  QRect(338,120 57x57)  using cascade  0
Digikam::OpenCVFaceDetector::cascadeResult: detectMultiScale: image size  137   137  searchIncrement  1.1  grouping  3  flags  0  min size  34   34 

Digikam::OpenCVFaceDetector::cascadeResult: detectMultiScale gave  (QRect(38,38 61x61))
Digikam::OpenCVFaceDetector::verifyFace: Verifying face  QRect(338,120 57x57)  using cascade  1
Digikam::OpenCVFaceDetector::cascadeResult: detectMultiScale: image size  137   137  searchIncrement  1.1  grouping  3  flags  0  min size  34   34 

Digikam::OpenCVFaceDetector::cascadeResult: detectMultiScale gave  (QRect(39,39 58x58), QRect(37,82 52x52))
Digikam::OpenCVFaceDetector::verifyFace: Verifying face  QRect(338,120 57x57)  using cascade  2
Digikam::OpenCVFaceDetector::verifyFace: Verifying face  QRect(338,120 57x57)  using cascade  3
Digikam::OpenCVFaceDetector::cascadeResult: detectMultiScale: image size  137   137  searchIncrement  1.1  grouping  3  flags  0  min size  34   34 

Digikam::OpenCVFaceDetector::cascadeResult: detectMultiScale gave  ()
Digikam::OpenCVFaceDetector::verifyFace: Verifying face  QRect(338,120 57x57)  using cascade  4
Digikam::OpenCVFaceDetector::cascadeResult: detectMultiScale: image size  137   137  searchIncrement  1.1  grouping  3  flags  0  min size  34   34 

Digikam::OpenCVFaceDetector::cascadeResult: detectMultiScale gave  ()
Digikam::OpenCVFaceDetector::verifyFace: Verifying face  QRect(338,120 57x57)  using cascade  5
Digikam::OpenCVFaceDetector::verifyFace: feature  QRectF(0,0 0.6x0.6) QRect(338,120 57x57) QRect(338,120 34x34)
Digikam::OpenCVFaceDetector::cascadeResult: detectMultiScale: image size  34   34  searchIncrement  1.1  grouping  2  flags  0  min size  6   6 

Digikam::OpenCVFaceDetector::cascadeResult: detectMultiScale gave  ()
Digikam::OpenCVFaceDetector::verifyFace: Verifying face  QRect(338,120 57x57)  using cascade  6
Digikam::OpenCVFaceDetector::verifyFace: feature  QRectF(0.4,0 0.6x0.6) QRect(338,120 57x57) QRect(361,120 34x34)
Digikam::OpenCVFaceDetector::cascadeResult: detectMultiScale: image size  34   34  searchIncrement  1.1  grouping  2  flags  0  min size  6   6 

Digikam::OpenCVFaceDetector::cascadeResult: detectMultiScale gave  ()
Digikam::OpenCVFaceDetector::verifyFace: Verifying face  QRect(338,120 57x57)  using cascade  7
Digikam::OpenCVFaceDetector::verifyFace: feature  QRectF(0.2,0.25 0.6x0.6) QRect(338,120 57x57) QRect(349,134 34x34)
Digikam::OpenCVFaceDetector::cascadeResult: detectMultiScale: image size  34   34  searchIncrement  1.1  grouping  2  flags  0  min size  6   6 

Digikam::OpenCVFaceDetector::cascadeResult: detectMultiScale gave  ()
Digikam::OpenCVFaceDetector::verifyFace: Verifying face  QRect(338,120 57x57)  using cascade  8
Digikam::OpenCVFaceDetector::verifyFace: feature  QRectF(0.1,0.4 0.8x0.6) QRect(338,120 57x57) QRect(344,143 46x34)
Digikam::OpenCVFaceDetector::cascadeResult: detectMultiScale: image size  46   34  searchIncrement  1.1  grouping  2  flags  0  min size  6   6 

Digikam::OpenCVFaceDetector::cascadeResult: detectMultiScale gave  ()
Digikam::DetectionWorker::process: Found 2 faces in "2003-06-28_000000 - Divers ( (008).jpg" QSize(1242, 1908) QSize(1242, 1908)
Digikam::DMetadata::getImageHistory: Loading image history  ""
Digikam::MetaEngine::getImageDateTime: DateTime => Exif.Photo.DateTimeOriginal => QDateTime(2003-06-28 00:00:00.000 CEST Qt::TimeSpec(LocalTime))
Digikam::MetaEngine::getImageDateTime: DateTime => Exif.Photo.DateTimeDigitized => QDateTime(2003-06-28 00:00:00.000 CEST Qt::TimeSpec(LocalTime))
Digikam::FaceUtils::writeUnconfirmedResults: Entry QRect(328,105 51x51)603overlapsQRect(328,105 51x51)603, skipping
Digikam::MetaEngine::getImageOrientation: Orientation => Exif.Image.Orientation => 1
Digikam::IccManager::IccManager: Cannot open workspace color profile "/tmp/.mount_digikanbwKZQ/usr/share/digikam/profiles/srgb-d65.icm"
Digikam::DImg::load: "/home/mathieu/Images/Photos/0000-00-00 - Photos - Famille/foo/2003-06-28_000000 - Divers ( (014).jpg"  : JPEG file identified
Digikam::DMetadata::getImageHistory: Loading image history  ""
Digikam::MetaEngine::getImageDateTime: DateTime => Exif.Photo.DateTimeOriginal => QDateTime(2003-06-28 00:00:00.000 CEST Qt::TimeSpec(LocalTime))
Digikam::MetaEngine::getImageDateTime: DateTime => Exif.Photo.DateTimeDigitized => QDateTime(2003-06-28 00:00:00.000 CEST Qt::TimeSpec(LocalTime))
Digikam::FaceUtils::writeUnconfirmedResults: Entry QRect(760,136 54x54)603overlapsQRect(760,136 54x54)603, skipping
Digikam::FaceUtils::writeUnconfirmedResults: Entry QRect(122,159 47x47)603overlapsQRect(122,159 47x47)603, skipping
Digikam::MetaEngine::getImageOrientation: Orientation => Exif.Image.Orientation => 1
Digikam::IccManager::IccManager: Cannot open workspace color profile "/tmp/.mount_digikanbwKZQ/usr/share/digikam/profiles/srgb-d65.icm"
Digikam::DImg::load: "/home/mathieu/Images/Photos/0000-00-00 - Photos - Famille/foo/2003-06-28_000000 - Divers ( (015).jpg"  : JPEG file identified
Digikam::DMetadata::getImageHistory: Loading image history  ""
Digikam::MetaEngine::getImageDateTime: DateTime => Exif.Photo.DateTimeOriginal => QDateTime(2003-06-28 00:00:00.000 CEST Qt::TimeSpec(LocalTime))
Digikam::MetaEngine::getImageDateTime: DateTime => Exif.Photo.DateTimeDigitized => QDateTime(2003-06-28 00:00:00.000 CEST Qt::TimeSpec(LocalTime))

Thread 115 "Thread (pooled)" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fff4a660700 (LWP 12195)]
0x00007ffff61a8d0a in std::__atomic_base<int>::load (__m=std::memory_order_relaxed, this=<optimized out>)
    at /opt/rh/devtoolset-4/root././/include/c++/5.3.1/bits/atomic_base.h:396
396     /opt/rh/devtoolset-4/root././/include/c++/5.3.1/bits/atomic_base.h: Aucun fichier ou dossier de ce type.

backtrace
(gdb) bt
#0  0x00007ffff61a8d0a in std::__atomic_base<int>::load (__m=std::memory_order_relaxed, this=<optimized out>)
    at /opt/rh/devtoolset-4/root././/include/c++/5.3.1/bits/atomic_base.h:396
#1  QAtomicOps<int>::load<int> (_q_value=...) at ././/include/QtCore/qatomic_cxx11.h:227
#2  QBasicAtomicInteger<int>::load (this=<optimized out>) at ././/include/QtCore/qbasicatomic.h:102
#3  QtPrivate::RefCount::isShared (this=<optimized out>) at ././/include/QtCore/qrefcount.h:101
#4  QMap<QString, QVariant>::detach (this=0x7cd9398) at ././/include/QtCore/qmap.h:364
#5  QMap<QString, QVariant>::insert (this=0x7cd9398, akey=..., avalue=...) at ././/include/QtCore/qmap.h:696
#6  0x00007ffff6313a90 in Digikam::DImg::setAttribute (this=this@entry=0x46e7de8, key=..., value=...)
    at /b/dktemp/digikam-master/core/libs/dimg/dimg.cpp:1051
#7  0x00007ffff63c688f in Digikam::LoadSaveThread::exifRotate (image=..., filePath=...)
    at /b/dktemp/digikam-master/core/libs/threadimageio/loadsavethread.cpp:336
#8  0x00007ffff63da88f in Digikam::PreviewLoadingTask::execute (this=0x46e7bf0)
    at /b/dktemp/digikam-master/core/libs/threadimageio/previewtask.cpp:394
#9  0x00007ffff63c6605 in Digikam::LoadSaveThread::run (this=0x27ac840)
    at /b/dktemp/digikam-master/core/libs/threadimageio/loadsavethread.cpp:133
#10 0x00007ffff640838e in Digikam::DynamicThread::Private::run (this=0x10f13a0)
    at /b/dktemp/digikam-master/core/libs/threads/dynamicthread.cpp:183
#11 0x00007fffea4bb60f in ?? () from /tmp/.mount_digikafBh7z7/usr/lib/libQt5Core.so.5
#12 0x00007fffea4bf18a in ?? () from /tmp/.mount_digikafBh7z7/usr/lib/libQt5Core.so.5
#13 0x00007ffff536a494 in start_thread (arg=0x7fff4a660700) at pthread_create.c:333
#14 0x00007fffe88dcacf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:97
(gdb)
Comment 10 Maik Qualmann 2018-08-30 11:16:54 UTC
The version you tested is from 17.08.2018. Please test it with the current version from 29.08.2018. Available at https://files.kde.org/digikam/

Maik
Comment 11 Mathieu 2018-08-30 17:54:02 UTC
Sorry for the mistake.

I'll perform the test with the last version and come back to you
Comment 12 Mathieu 2018-08-30 19:01:54 UTC
Digikam::OpenCVFaceDetector::cascadeResult: detectMultiScale gave  ()
Digikam::DetectionWorker::process: Found 0 faces in "2003-06-28_165437 - 150603 0 (001).jpg" QSize(2048, 1536) QSize(2048, 1536)
Digikam::OpenCVFaceDetector::cascadeResult: detectMultiScale: image size  800   600  searchIncrement  1.1  grouping  3  flags  1  min size  26   26 

Digikam::FaceUtils::writeUnconfirmedResults: Entry QRect(232,35 84x84)603overlapsQRect(232,35 84x84)603, skipping
[New Thread 0x7fff46ffd700 (LWP 10780)]
[Thread 0x7fff267fc700 (LWP 10695) exited]

Thread 95 "Thread (pooled)" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fff1dffb700 (LWP 9844)]
0x00007ffff630a08e in QSharedDataPointer<Digikam::MetaEngineData::Private>::operator= (o=..., this=0x812f590)
    at ././/include/QtCore/qshareddata.h:99
99      ././/include/QtCore/qshareddata.h: Aucun fichier ou dossier de ce type.
(gdb) bt
#0  0x00007ffff630a08e in QSharedDataPointer<Digikam::MetaEngineData::Private>::operator= (o=..., 
    this=0x812f590) at ././/include/QtCore/qshareddata.h:99
#1  Digikam::MetaEngineData::operator= (this=0x812f590, other=...)
    at /b/dktemp/digikam-master/core/libs/dmetadata/metaengine_data.cpp:51
#2  0x00007ffff62d5edc in Digikam::DImg::setMetadata (this=<optimized out>, data=...)
    at /b/dktemp/digikam-master/core/libs/dimg/dimg.cpp:1016
#3  0x00007ffff617f671 in Digikam::DImgLoader::readMetadata (this=0x7fff1dffa880, filePath=...)
    at /b/dktemp/digikam-master/core/libs/dimg/loaders/dimgloader.cpp:219
#4  0x00007ffff6188cee in Digikam::JPEGLoader::load (this=this@entry=0x7fff1dffa880, filePath=..., 
    observer=observer@entry=0x813b0b0) at /b/dktemp/digikam-master/core/libs/dimg/loaders/jpegloader.cpp:92
#5  0x00007ffff62de709 in Digikam::DImg::load (this=this@entry=0x813b298, filePath=..., 
    loadFlagsInt=loadFlagsInt@entry=63, observer=observer@entry=0x813b0b0, rawDecodingSettings=...)
    at /b/dktemp/digikam-master/core/libs/dimg/dimg.cpp:430
#6  0x00007ffff62dec80 in Digikam::DImg::load (this=this@entry=0x813b298, filePath=..., 
    observer=observer@entry=0x813b0b0, rawDecodingSettings=...)
    at /b/dktemp/digikam-master/core/libs/dimg/dimg.cpp:374
#7  0x00007ffff63a2526 in Digikam::PreviewLoadingTask::execute (this=0x813b0a0)
    at /b/dktemp/digikam-master/core/libs/threadimageio/previewtask.cpp:325
#8  0x00007ffff638dcc5 in Digikam::LoadSaveThread::run (this=0x24a37b0)
    at /b/dktemp/digikam-master/core/libs/threadimageio/loadsavethread.cpp:133
#9  0x00007ffff63cfc0e in Digikam::DynamicThread::Private::run (this=0x4350d40)
    at /b/dktemp/digikam-master/core/libs/threads/dynamicthread.cpp:183
#10 0x000000347b8aa60f in ?? () from /tmp/.mount_digika6ykiGm/usr/lib/libQt5Core.so.5
#11 0x000000347b8ae18a in ?? () from /tmp/.mount_digika6ykiGm/usr/lib/libQt5Core.so.5
#12 0x00007ffff5706494 in start_thread (arg=0x7fff1dffb700) at pthread_create.c:333
#13 0x00007fffed3f4acf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:97
(gdb)
Comment 13 Maik Qualmann 2018-08-30 20:02:59 UTC
Interesting backtrace. It crashes now in another place. If I look at the backtrace, there is really only an explanation, there is no more memory available. I see from the other post, you have 4 CPU cores. How much memory do you have? Can you if digiKam runs with the maintenance tool, please observe the free memory?

Maik
Comment 14 caulier.gilles 2018-08-30 20:38:08 UTC
I second maik, here. 

Another Q is : did you use the multi-core option to perform maintenance in parallel ?

Gilles Caulier
Comment 15 Maik Qualmann 2018-08-30 20:41:00 UTC
Git commit 67b2bb528b2be26a9a618a4b361440664070ba93 by Maik Qualmann.
Committed on 30/08/2018 at 20:39.
Pushed by mqualmann into branch 'master'.

do not create meta-engine data on the stack but in the heap

M  +1    -1    core/libs/dmetadata/metaengine_data.cpp

https://commits.kde.org/digikam/67b2bb528b2be26a9a618a4b361440664070ba93
Comment 16 Maik Qualmann 2018-08-30 20:44:15 UTC
Gilles, look into the Commit, I think that was really a mistake. Can you please build new packages so that Mathieu can test it?

Yes, Mathieu used all 4 cores.

Maik
Comment 17 caulier.gilles 2018-08-30 20:50:17 UTC
Ok i will build a new AppImage tomorrow morning...

Gilles Caulier
Comment 18 Mathieu 2018-08-31 05:25:28 UTC
My laptop is 4 cpus and 4GB memory. 
Multi-core option was activated during these tests.

It won't be possible for me to perform new test today. It will be for Saturday.
Comment 19 caulier.gilles 2018-08-31 05:59:24 UTC
In all cases the new appimage will be online and this morning
Comment 20 Maik Qualmann 2018-08-31 11:18:49 UTC
The commit is not the solution and not necessary, I will undo the change again. The problem I suspect actually in no longer existing memory, even if I look at the other backtraces. For 4 CPU cores probably 4GB memory is not enough, because only a lot less will actually be free. Therefore, for testing we will limit the number of CPU cores used to 1 core per 1GB of free memory. So in order to use 8 CPU cores, then 8GB of free memory would have to be available, otherwise the cores used will be gradually reduced.

Maik
Comment 21 caulier.gilles 2018-08-31 11:46:46 UTC
Maik,

Note that the problem is exactly the same in BQM with multi-core support option

We have a file in bugzilla to be able to set the core number to use while running BQM.

Gilles
Comment 22 Mathieu 2018-09-01 08:19:06 UTC
using version from 31/08/2018 and multi-core option activated

Digikam::DMetadata::getImageHistory: Loading image history  ""
Digikam::MetaEngine::getImageDateTime: DateTime => Exif.Photo.DateTimeOriginal => QDateTime(2004-12-26 10:30:47.000 CET Qt::TimeSpec(LocalTime))
Digikam::MetaEngine::getImageDateTime: DateTime => Exif.Photo.DateTimeDigitized => QDateTime(2004-12-26 10:30:47.000 CET Qt::TimeSpec(LocalTime))
Digikam::FacePipeline::Private::checkFinished: Check for finish:  51 packages, 0 infos to filter, hasFinished() false
Digikam::ActionThreadBase::cancel: Cancel Main Thread
[Thread 0x7fff28ff9700 (LWP 12859) exited]
Digikam::DMetadata::getIccProfile: Exif color-space tag is sRGB. Using default sRGB ICC profile.
Digikam::MetaEngine::getImageOrientation: Orientation => Exif.Image.Orientation => 1
Digikam::IccManager::IccManager: Cannot open workspace color profile "/tmp/.mount_digikanbwKZQ/usr/share/digikam/profiles/srgb-d65.icm"

Thread 89 "Thread (pooled)" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fff2bfff700 (LWP 5815)]
0x0000000000000000 in ?? ()
(gdb) bt
#0  0x0000000000000000 in ?? ()
#1  0x00007ffff6396260 in Digikam::LoadingCache::notifyNewLoadingProcess (this=this@entry=0x831380, 
    process=process@entry=0x50cd900, description=...)
    at /b/dktemp/digikam-master/core/libs/threadimageio/loadingcache.cpp:243
#2  0x00007ffff63a34cf in Digikam::PreviewLoadingTask::execute (this=0x50cd730)
    at /b/dktemp/digikam-master/core/libs/threadimageio/previewtask.cpp:162
#3  0x00007ffff638f145 in Digikam::LoadSaveThread::run (this=0x27519e0)
    at /b/dktemp/digikam-master/core/libs/threadimageio/loadsavethread.cpp:133
#4  0x00007ffff63d0fce in Digikam::DynamicThread::Private::run (this=0x18a2ea0)
    at /b/dktemp/digikam-master/core/libs/threads/dynamicthread.cpp:183
#5  0x000000347b8aa60f in ?? () from /tmp/.mount_digikaz1upX1/usr/lib/libQt5Core.so.5
#6  0x000000347b8ae18a in ?? () from /tmp/.mount_digikaz1upX1/usr/lib/libQt5Core.so.5
#7  0x00007ffff570a494 in start_thread (arg=0x7fff2bfff700) at pthread_create.c:333
#8  0x00007fffed3f8acf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:97
(gdb) 

I will try without multicore option
Comment 23 Mathieu 2018-09-01 10:31:36 UTC
run only with one core...

Digikam::DImg::load: "/home/mathieu/Images/Photos/0000-00-00 - Photos - Famille/foo/2005-08-07_150341 - 80ans BL (001).jpg"  : JPEG file identified
Digikam::DMetadata::getImageHistory: Loading image history  ""
Digikam::MetaEngine::getImageDateTime: DateTime => Exif.Photo.DateTimeOriginal => QDateTime(2005-08-07 15:03:41.000 CEST Qt::TimeSpec(LocalTime))
Digikam::MetaEngine::getImageDateTime: DateTime => Exif.Photo.DateTimeDigitized => QDateTime(2005-08-07 15:03:41.000 CEST Qt::TimeSpec(LocalTime))
Digikam::DMetadata::getIccProfile: Exif color-space tag is sRGB. Using default sRGB ICC profile.
Digikam::MetaEngine::getImageOrientation: Orientation => Exif.Image.Orientation => 1
Digikam::IccManager::IccManager: Cannot open workspace color profile "/tmp/.mount_digikanbwKZQ/usr/share/digikam/profiles/srgb-d65.icm"
Digikam::FaceUtils::writeUnconfirmedResults: Entry QRect(289,567 422x422)603overlapsQRect(289,567 422x422)603, skipping

Thread 92 "Thread (pooled)" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fff45ffb700 (LWP 17366)]
0x0000000000000000 in ?? ()
(gdb) bt
#0  0x0000000000000000 in ?? ()
#1  0x00007ffff639e7bb in Digikam::LoadingTask::progressInfo (this=0x4bd6350, progress=0.100000001)
    at /b/dktemp/digikam-master/core/libs/threadimageio/loadsavetask.cpp:63
#2  0x00007ffff618b57f in Digikam::JPEGLoader::load (this=this@entry=0x7fff45ffa880, filePath=..., 
    observer=observer@entry=0x4bd6360) at /b/dktemp/digikam-master/core/libs/dimg/loaders/jpegloader.cpp:374
#3  0x00007ffff62dfb29 in Digikam::DImg::load (this=this@entry=0x4bd6548, filePath=..., 
    loadFlagsInt=loadFlagsInt@entry=63, observer=observer@entry=0x4bd6360, rawDecodingSettings=...)
    at /b/dktemp/digikam-master/core/libs/dimg/dimg.cpp:430
#4  0x00007ffff62e00a0 in Digikam::DImg::load (this=this@entry=0x4bd6548, filePath=..., 
    observer=observer@entry=0x4bd6360, rawDecodingSettings=...)
    at /b/dktemp/digikam-master/core/libs/dimg/dimg.cpp:374
#5  0x00007ffff63a353b in Digikam::PreviewLoadingTask::execute (this=0x4bd6350)
    at /b/dktemp/digikam-master/core/libs/threadimageio/previewtask.cpp:325
#6  0x00007ffff638f145 in Digikam::LoadSaveThread::run (this=0x41badb0)
    at /b/dktemp/digikam-master/core/libs/threadimageio/loadsavethread.cpp:133
#7  0x00007ffff63d0fce in Digikam::DynamicThread::Private::run (this=0x6759300)
    at /b/dktemp/digikam-master/core/libs/threads/dynamicthread.cpp:183
#8  0x000000347b8aa60f in ?? () from /tmp/.mount_digika4armiY/usr/lib/libQt5Core.so.5
#9  0x000000347b8ae18a in ?? () from /tmp/.mount_digika4armiY/usr/lib/libQt5Core.so.5
#10 0x00007ffff570a494 in start_thread (arg=0x7fff45ffb700) at pthread_create.c:333
#11 0x00007fffed3f8acf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:97
(gdb)
Comment 24 caulier.gilles 2018-09-01 12:37:05 UTC
Maik,

Look like with one or more than one core, the result is the same.

Mathieu,

Did you use the Color Management option ? If yes, can you try again with CM disabled and just one core ?

Perhaps something goes wrong with one of your ICC color profile when preview is extracted in maintenance tool.

Gilles Caulier
Comment 25 Mathieu 2018-09-01 13:32:42 UTC
I just finish a maintenance process without activating faces detection and it works. So I suppose that the problem is related to this option.
I will perform a test with only face detection (single, multicore) and after, I will test your request.
Comment 26 Maik Qualmann 2018-09-01 19:57:50 UTC
It crashes in so many different places, all have almost only in common that it takes place when loading a picture. But by now I think the backtrace is misleading us here. I'm going to make a change to the ICCManager for testing...

Maik
Comment 27 Maik Qualmann 2018-09-01 20:05:57 UTC
Git commit 15f3e3b0645612a8c650cbff58f137f664b287a3 by Maik Qualmann.
Committed on 01/09/2018 at 20:05.
Pushed by mqualmann into branch 'master'.

clear DImg if we have a problem with loading color profile

M  +1    -0    core/libs/dimg/filters/icc/iccmanager.cpp

https://commits.kde.org/digikam/15f3e3b0645612a8c650cbff58f137f664b287a3
Comment 28 Mathieu 2018-09-02 11:12:21 UTC
Color Management was effectively activated but no "space color" was selected.

I started a maintenance process. I will let you know when it will be finish
Comment 29 caulier.gilles 2018-09-02 15:15:39 UTC
And you let's CM enabled or no ?

I recommend to :

1/ test without CM
2/ test with CM + a valid ICC profile
3/ test with CM + a no valid ICC profile.

Gilles Caulier
Comment 30 Mathieu 2018-09-02 20:55:22 UTC
Test:
- without CM
- with multi-core
unfortunately, it crashes

igikam::OpenCVFaceDetector::cascadeResult: detectMultiScale gave  ()
Digikam::OpenCVFaceDetector::verifyFace: Verifying face  QRect(228,134 36x36)  using cascade  8
Digikam::OpenCVFaceDetector::verifyFace: feature  QRectF(0.1,0.4 0.8x0.6) QRect(228,134 36x36) QRect(232,148 29x22)
Digikam::OpenCVFaceDetector::cascadeResult: detectMultiScale: image size  29   22  searchIncrement  1.1  grouping  2  flags  0  min size  4   4 

Digikam::OpenCVFaceDetector::cascadeResult: detectMultiScale gave  ()
Digikam::DetectionWorker::process: Found 0 faces in "2003-06-28_000000 - Divers ( (001).jpg" QSize(1917, 1242) QSize(1917, 1242)
Digikam::FaceUtils::writeUnconfirmedResults: Entry QRect(319,150 164x164)53overlapsQRect(319,150 164x164)603, skipping
Digikam::DImg::copy:  : return null image! ( false ,  0 ,  0 )
Digikam::FaceUtils::writeUnconfirmedResults: Entry QRect(314,128 209x209)37overlapsQRect(312,123 223x223)603, skipping
Digikam::DImg::copy:  : return null image! ( false ,  0 ,  0 )
[New Thread 0x7fff48ff9700 (LWP 17775)]
[Thread 0x7fff48ff9700 (LWP 17744) exited]

Thread 102 "Thread (pooled)" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fff497fa700 (LWP 17274)]
0x00007ffff630b50e in QSharedDataPointer<Digikam::MetaEngineData::Private>::operator= (o=..., this=0x38471e0)
    at ././/include/QtCore/qshareddata.h:99
99      ././/include/QtCore/qshareddata.h: Aucun fichier ou dossier de ce type.
(gdb) bt
#0  0x00007ffff630b50e in QSharedDataPointer<Digikam::MetaEngineData::Private>::operator= (o=..., 
    this=0x38471e0) at ././/include/QtCore/qshareddata.h:99
#1  Digikam::MetaEngineData::operator= (this=0x38471e0, other=...)
    at /b/dktemp/digikam-master/core/libs/dmetadata/metaengine_data.cpp:51
#2  0x00007ffff62d72fc in Digikam::DImg::setMetadata (this=<optimized out>, data=...)
    at /b/dktemp/digikam-master/core/libs/dimg/dimg.cpp:1016
#3  0x00007ffff6180a91 in Digikam::DImgLoader::readMetadata (this=0x7fff497f9880, filePath=...)
    at /b/dktemp/digikam-master/core/libs/dimg/loaders/dimgloader.cpp:219
#4  0x00007ffff618a10e in Digikam::JPEGLoader::load (this=this@entry=0x7fff497f9880, filePath=..., 
    observer=observer@entry=0x3b0f240) at /b/dktemp/digikam-master/core/libs/dimg/loaders/jpegloader.cpp:92
#5  0x00007ffff62dfb29 in Digikam::DImg::load (this=this@entry=0x3b0f428, filePath=..., 
    loadFlagsInt=loadFlagsInt@entry=63, observer=observer@entry=0x3b0f240, rawDecodingSettings=...)
    at /b/dktemp/digikam-master/core/libs/dimg/dimg.cpp:430
#6  0x00007ffff62e00a0 in Digikam::DImg::load (this=this@entry=0x3b0f428, filePath=..., 
    observer=observer@entry=0x3b0f240, rawDecodingSettings=...)
    at /b/dktemp/digikam-master/core/libs/dimg/dimg.cpp:374
#7  0x00007ffff63a353b in Digikam::PreviewLoadingTask::execute (this=0x3b0f230)
    at /b/dktemp/digikam-master/core/libs/threadimageio/previewtask.cpp:325
#8  0x00007ffff638f145 in Digikam::LoadSaveThread::run (this=0x33d7850)
    at /b/dktemp/digikam-master/core/libs/threadimageio/loadsavethread.cpp:133
#9  0x00007ffff63d0fce in Digikam::DynamicThread::Private::run (this=0x633fe50)
    at /b/dktemp/digikam-master/core/libs/threads/dynamicthread.cpp:183
#10 0x000000347b8aa60f in ?? () from /tmp/.mount_digikasSydoJ/usr/lib/libQt5Core.so.5
#11 0x000000347b8ae18a in ?? () from /tmp/.mount_digikasSydoJ/usr/lib/libQt5Core.so.5
#12 0x00007ffff570a494 in start_thread (arg=0x7fff497fa700) at pthread_create.c:333
#13 0x00007fffed3f8acf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:97
Comment 31 Maik Qualmann 2018-09-27 11:39:19 UTC
Mathieu,

because we see crashes in different components that we can not explain. Can you post the output of "ulimit -a"?

Maik
Comment 32 Mathieu 2018-09-27 14:52:55 UTC
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 15130
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 15130
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited
Comment 33 Maik Qualmann 2018-10-19 10:36:47 UTC
Git commit 807847709a3dfc4b8fb90391bc0729839af203ec by Maik Qualmann.
Committed on 19/10/2018 at 10:35.
Pushed by mqualmann into branch 'master'.

try to fix this problem, move image loaders to the heap
Related: bug 399923

M  +73   -57   core/libs/dimg/dimg.cpp

https://commits.kde.org/digikam/807847709a3dfc4b8fb90391bc0729839af203ec
Comment 34 Maik Qualmann 2018-10-19 16:51:09 UTC
Git commit 83db20a5c25c31500b93ce8732ca6728ebd53b16 by Maik Qualmann.
Committed on 19/10/2018 at 16:50.
Pushed by mqualmann into branch 'master'.

Revert "try to fix this problem, move image loaders to the heap"
Related: bug 399923

M  +57   -73   core/libs/dimg/dimg.cpp

https://commits.kde.org/digikam/83db20a5c25c31500b93ce8732ca6728ebd53b16
Comment 35 Maik Qualmann 2018-10-19 19:41:43 UTC
Git commit f8d2d5f66532c3695211f06eb09f967ba1248986 by Maik Qualmann.
Committed on 19/10/2018 at 19:40.
Pushed by mqualmann into branch 'master'.

close the QFile manually is better
Now the memory usage for face recognition does
not increase above 1GB and stays at 600-800KB
Related: bug 399923

M  +4    -0    core/libs/dimg/loaders/dimgloader.cpp

https://commits.kde.org/digikam/f8d2d5f66532c3695211f06eb09f967ba1248986
Comment 36 Maik Qualmann 2018-10-20 16:10:59 UTC
Git commit b11a1a407f5069b7f47810a49ace08d1ed011e87 by Maik Qualmann.
Committed on 20/10/2018 at 16:09.
Pushed by mqualmann into branch 'master'.

try to fix the crash with undocumented method in Qt
Related: bug 399923

M  +3    -0    core/libs/dimg/dimg_p.h

https://commits.kde.org/digikam/b11a1a407f5069b7f47810a49ace08d1ed011e87
Comment 37 Maik Qualmann 2018-10-21 08:08:39 UTC
Git commit 4b84ca31a2f1c86fd3e980f093e296807180d129 by Maik Qualmann.
Committed on 21/10/2018 at 08:07.
Pushed by mqualmann into branch 'master'.

try with QMutexLocker in DImg
Related: bug 399923

M  +36   -1    core/libs/dimg/dimg.cpp
M  +3    -3    core/libs/dimg/dimg_p.h

https://commits.kde.org/digikam/4b84ca31a2f1c86fd3e980f093e296807180d129
Comment 38 Maik Qualmann 2018-10-21 19:37:06 UTC
Git commit 8e43d83ad9193f59551d95129b4b9b6183f39590 by Maik Qualmann.
Committed on 21/10/2018 at 19:35.
Pushed by mqualmann into branch 'master'.

try to fix a possible VTable problem
Related: bug 399923

M  +2    -1    core/libs/dimg/filters/icc/icctransformfilter.cpp
M  +1    -1    core/libs/dimg/filters/icc/icctransformfilter.h
M  +9    -2    core/libs/dimg/loaders/dimgloaderobserver.h
M  +16   -6    core/libs/threadimageio/loadsavetask.cpp
M  +6    -6    core/libs/threadimageio/loadsavetask.h
M  +2    -1    core/utilities/assistants/expoblending/manager/expoblendingthread.cpp
M  +2    -1    core/utilities/assistants/panorama/tasks/preprocesstask.cpp
M  +2    -1    core/utilities/queuemanager/manager/batchtool.cpp

https://commits.kde.org/digikam/8e43d83ad9193f59551d95129b4b9b6183f39590
Comment 39 Maik Qualmann 2018-10-22 05:57:10 UTC
Git commit 985be20fd70563bb3989cbb6670880c27f3babba by Maik Qualmann.
Committed on 22/10/2018 at 05:56.
Pushed by mqualmann into branch 'master'.

add QMutexLocker patch again
Related: bug 399923

M  +36   -1    core/libs/dimg/dimg.cpp
M  +3    -0    core/libs/dimg/dimg_p.h

https://commits.kde.org/digikam/985be20fd70563bb3989cbb6670880c27f3babba
Comment 40 Maik Qualmann 2018-10-24 17:48:50 UTC
Git commit bede4dcc3829b24494b4e4733579455452c62775 by Maik Qualmann.
Committed on 24/10/2018 at 17:47.
Pushed by mqualmann into branch 'master'.

try to fix the crash in the preview task
Related: bug 399923

M  +26   -28   core/libs/threadimageio/previewtask.cpp

https://commits.kde.org/digikam/bede4dcc3829b24494b4e4733579455452c62775
Comment 41 Maik Qualmann 2018-10-25 06:13:06 UTC
Git commit 71fe4107faa82bd992756392e53910897ab4fc09 by Maik Qualmann.
Committed on 25/10/2018 at 06:12.
Pushed by mqualmann into branch 'master'.

try to fix progressInfo crash
Related: bug 399923

M  +3    -3    core/libs/threadimageio/loadsavetask.cpp
M  +3    -0    core/libs/threadimageio/loadsavetask.h

https://commits.kde.org/digikam/71fe4107faa82bd992756392e53910897ab4fc09
Comment 42 Maik Qualmann 2018-10-27 18:09:09 UTC
Git commit 132352e8668695fd3ab2718e6184a5e794c64179 by Maik Qualmann.
Committed on 27/10/2018 at 18:07.
Pushed by mqualmann into branch 'master'.

Reorganization DImg loading and caching from the PreviewLoadingTask
Now we cache an unprocessed DImg
Related: bug 399923

M  +167  -213  core/libs/threadimageio/previewtask.cpp

https://commits.kde.org/digikam/132352e8668695fd3ab2718e6184a5e794c64179
Comment 43 Maik Qualmann 2018-11-24 16:50:42 UTC
Mathieu, which CPU has your computer, Intel or AMD?

Maik
Comment 44 Mathieu 2018-11-24 17:01:37 UTC
Mark,

Intel(R) Core(TM) i5 CPU       M 480  @ 2.67GHz

Thanks for all your work !
Comment 45 Maik Qualmann 2018-11-24 17:06:20 UTC
OK thanks. I guessed it was Intel. You can also look into this bug 399923, it's basically the same bug report.

Maik
Comment 46 caulier.gilles 2019-03-20 15:15:56 UTC
After 3 weeks of work, i finally completed the compilation of AppImage using Qt
5.11.3 + QWebkit 5.212.

New 6.1.0 pre-release AppImage bundle can be found here (64 bits only for the
moment) :

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

Please check if this bugzilla entry still valid.

Thanks in advance

Gilles Caulier
Comment 47 Maik Qualmann 2019-12-14 14:45:00 UTC
This crash was fixed in bug 399923.

Maik