Bug 500881

Summary: "Update fingerprints" taking 17 seconds / file apparently due to multiple database locks.
Product: [Applications] digikam Reporter: Ervan Darnell <edarnell>
Component: Database-EngineAssignee: Digikam Developers <digikam-bugs-null>
Status: RESOLVED FIXED    
Severity: normal CC: metzpinguin
Priority: NOR    
Version First Reported In: 8.3.0   
Target Milestone: ---   
Platform: Ubuntu   
OS: Linux   
Latest Commit: Version Fixed/Implemented In: 8.6.0
Sentry Crash Report:
Attachments: directory configuration in digikam settings.

Description Ervan Darnell 2025-03-01 03:31:23 UTC
Created attachment 178991 [details]
directory configuration in digikam settings.

SUMMARY
"Update fingerprints" moving very slowly with multiple database lock warnings.

STEPS TO REPRODUCE
1. Select "update fingerprints" (in similarity) after adding a new directory as follows:
~/<database directory>   -- on the main hard drive
~/drive_temp   -- on the main hard drive, new .jpg's here having fingerprints computed
~/Syn photos  -- symlink over cifs to NAS, these have already been fingerprint updated and are listed as being on a network share in the settings 

OBSERVED RESULT

This is the console (below) where digikam was launched (just a short excerpt).  I lists each file twice, then moves on to the next file.  It reports 70% completion after 8 hours on 2300 .jpg's.  Ubuntu/Gnome desktop frequently pauses with a warning that digikam is unresponsive and asks if I should kill it.

The SQL database is definitely on my main hard disk as required.  But this started with moving the photos to the NAS.  Frequently digikam hangs, and eventually I get the wait/kill dialog.  I have not been table to track down a single specific cause that makes in hang.  This dump of the fingerprint update is the first concrete data I have.

The /etc/fstab mount is:
//192.168.1.207/home /mnt/syn/home cifs rw,vers=3.0,uid=ervan,gid=users,username=ervan,password=...,cache=none,mfsymlinks

It's over a 10GB ethernet to the NAS.  

I know this is an inadequate bug report.  I need some direction on what other testing I could do.
................
Digikam::ItemInfo::fromLocationAlbumAndName: No itemShortInfo could be retrieved from the database for image "IMG_3180.jpg"
Digikam::BdEngineBackendPrivate::checkRetrySQLiteLockError: Detected locked database file. There is an active transaction. Waited but giving up now.
Digikam::BdEngineBackendPrivate::checkRetrySQLiteLockError: Detected locked database file. There is an active transaction. Waited but giving up now.
Digikam::BdEngineBackendPrivate::checkRetrySQLiteLockError: Detected locked database file. There is an active transaction. Waited but giving up now.
Digikam::BdEngineBackendPrivate::checkRetrySQLiteLockError: Detected locked database file. There is an active transaction. Waited but giving up now.
Digikam::BdEngineBackendPrivate::checkRetrySQLiteLockError: Detected locked database file. There is an active transaction. Waited but giving up now.
Digikam::BdEngineBackendPrivate::checkRetrySQLiteLockError: Detected locked database file. There is an active transaction. Waited but giving up now.
Digikam::BdEngineBackendPrivate::checkRetrySQLiteLockError: Detected locked database file. There is an active transaction. Waited but giving up now.
Digikam::BdEngineBackendPrivate::checkRetrySQLiteLockError: Detected locked database file. There is an active transaction. Waited but giving up now.
Digikam::BdEngineBackendPrivate::checkRetrySQLiteLockError: Detected locked database file. There is an active transaction. Waited but giving up now.
Digikam::BdEngineBackendPrivate::checkRetrySQLiteLockError: Detected locked database file. There is an active transaction. Waited but giving up now.
Digikam::BdEngineBackendPrivate::checkRetrySQLiteLockError: Detected locked database file. There is an active transaction. Waited but giving up now.
Digikam::BdEngineBackendPrivate::checkRetrySQLiteLockError: Detected locked database file. There is an active transaction. Waited but giving up now.
Digikam::BdEngineBackendPrivate::checkRetrySQLiteLockError: Detected locked database file. There is an active transaction. Waited but giving up now.
Digikam::BdEngineBackendPrivate::checkRetrySQLiteLockError: Detected locked database file. There is an active transaction. Waited but giving up now.
Digikam::ItemInfo::fromLocationAlbumAndName: No itemShortInfo could be retrieved from the database for image "IMG_3180.jpg"
Digikam::BdEngineBackendPrivate::checkRetrySQLiteLockError: Detected locked database file. There is an active transaction. Waited but giving up now.
Digikam::BdEngineBackendPrivate::checkRetrySQLiteLockError: Detected locked database file. There is an active transaction. Waited but giving up now.
Digikam::BdEngineBackendPrivate::checkRetrySQLiteLockError: Detected locked database file. There is an active transaction. Waited but giving up now.
Digikam::BdEngineBackendPrivate::checkRetrySQLiteLockError: Detected locked database file. There is an active transaction. Waited but giving up now.
Digikam::BdEngineBackendPrivate::checkRetrySQLiteLockError: Detected locked database file. There is an active transaction. Waited but giving up now.
Digikam::BdEngineBackendPrivate::checkRetrySQLiteLockError: Detected locked database file. There is an active transaction. Waited but giving up now.
Digikam::BdEngineBackendPrivate::checkRetrySQLiteLockError: Detected locked database file. There is an active transaction. Waited but giving up now.
Digikam::BdEngineBackendPrivate::checkRetrySQLiteLockError: Detected locked database file. There is an active transaction. Waited but giving up now.
Digikam::BdEngineBackendPrivate::checkRetrySQLiteLockError: Detected locked database file. There is an active transaction. Waited but giving up now.
Digikam::BdEngineBackendPrivate::checkRetrySQLiteLockError: Detected locked database file. There is an active transaction. Waited but giving up now.
Digikam::BdEngineBackendPrivate::checkRetrySQLiteLockError: Detected locked database file. There is an active transaction. Waited but giving up now.
Digikam::BdEngineBackendPrivate::checkRetrySQLiteLockError: Detected locked database file. There is an active transaction. Waited but giving up now.
Digikam::BdEngineBackendPrivate::checkRetrySQLiteLockError: Detected locked database file. There is an active transaction. Waited but giving up now.
Digikam::BdEngineBackendPrivate::checkRetrySQLiteLockError: Detected locked database file. There is an active transaction. Waited but giving up now.
Digikam::BdEngineBackendPrivate::checkRetrySQLiteLockError: Detected locked database file. There is an active transaction. Waited but giving up now.
Digikam::ItemInfo::fromLocationAlbumAndName: No itemShortInfo could be retrieved from the database for image "IMG_3177.jpg"



EXPECTED RESULT
works without freezing, or seeming to

SOFTWARE/OS VERSIONS
Linux/KDE Plasma: 
$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 24.04.2 LTS
Release:	24.04
Codename:	noble

KDE Plasma Version: 
$ gnome-shell --version
GNOME Shell 46.0

KDE Frameworks Version: 

ADDITIONAL INFORMATION
I did search for this bug under fingerprint, but nothing seemed like the same issue.  https://bugs.kde.org/show_bug.cgi?id=470242  reported "too slow" for fingerprinting, but is too vague to confirm as the same.
Comment 1 Maik Qualmann 2025-03-01 07:02:55 UTC
This problem of database locking has been fixed in newer versions of digiKam.

Maik
Comment 2 Maik Qualmann 2025-03-01 07:09:17 UTC
The problem should have been fixed in digiKam-8.4.0, but small changes may still be made in digiKam-8.5.0.
This was the first commit to solve the problem:

https://invent.kde.org/graphics/digikam/-/commit/ee4271e73217b4b0f687981630b2a03ed0b8b830

Maik
Comment 3 Ervan Darnell 2025-03-01 18:10:50 UTC
I tested 8.5.0 this morning and the bug is fixed on my platform.  Thanks!