Bug 500881 - "Update fingerprints" taking 17 seconds / file apparently due to multiple database locks.
Summary: "Update fingerprints" taking 17 seconds / file apparently due to multiple dat...
Status: RESOLVED FIXED
Alias: None
Product: digikam
Classification: Applications
Component: Database-Engine (other bugs)
Version First Reported In: 8.3.0
Platform: Ubuntu Linux
: NOR normal
Target Milestone: ---
Assignee: Digikam Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2025-03-01 03:31 UTC by Ervan Darnell
Modified: 2025-03-01 18:10 UTC (History)
1 user (show)

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


Attachments
directory configuration in digikam settings. (21.21 KB, image/png)
2025-03-01 03:31 UTC, Ervan Darnell
Details

Note You need to log in before you can comment on or make changes to this bug.
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!