Bug 432257 - Spinning Pinwheel Scrolling through Thumbnails
Summary: Spinning Pinwheel Scrolling through Thumbnails
Status: RESOLVED FIXED
Alias: None
Product: digikam
Classification: Applications
Component: Thumbs-IconView (show other bugs)
Version: 7.2.0
Platform: macOS (DMG) macOS
: NOR normal
Target Milestone: ---
Assignee: Digikam Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-01-28 18:03 UTC by johcha
Modified: 2021-02-19 19:09 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In: 7.2.0
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description johcha 2021-01-28 18:03:12 UTC
SUMMARY
When I scroll through a large set of photos in an album, I'm starting to see a spinning pinwheel which takes between 30s to 2min to resolve. This problem just started about 2-3 days ago. Recently, I've been using with the face detect/recognize and XMP imbedding on my photo library. There are not active jobs running when I see this problem. 



STEPS TO REPRODUCE
1. Open a large album (200+ photos)
2. Scroll through photos thumbnails with previews
3. At some point, the spinning pinwheel will freeze the UI 

OBSERVED RESULT
The amount of time the spinning pinwheel is stuck varies. It's usually around 30s or so. My DB and photos are on SSD.  Activity Monitor shows that digiKam process is at 99%


EXPECTED RESULT
There's some bottleneck but I'm not sure how to troubleshoot or run maintenance to reduce the frequency. Perhaps, I need to run compaction or turn up some sync process. Suggestions for best practices would be appreciated. 


SOFTWARE/OS VERSIONS
Windows: 
macOS: Mac OS X 10.15.7 (19H114)
Linux/KDE Plasma: 

Build date: Dec 27 2020 (target: Debug)
Rev.: 111faf00ce07b9b53d631a70293007bfe3c2fa23

KDE Plasma Version: 
KDE Frameworks Version: 5.77.0
Qt Version: 5.15.2

ADDITIONAL INFORMATION

digikam version 7.2.0-beta2
Images: 
BMP: 6
GIF: 60
JPG: 145122
PNG: 55
PSD: 43
RAW-NEF: 277
RAW-ORF: 225
TIFF: 30
total: 145818
: 
Videos: 
3GP: 33
AVI: 647
MOV: 2913
MP4: 143
MPEG: 21
MTS: 35
VOB: 3
WMV: 9
total: 3804
: 
Audio: 
WAV: 9
total: 9
: 
Total Items: 149631
Albums: 2716
Tags: 224
: 
Database backend: QSQLITE
Database Path: /Users/john/Pictures/photos/metadata/
Database locale: UTF-8



digikam version 7.2.0-beta2
CPU cores: 4
Eigen: 3.3.8
Exiv2: 0.27.3
Exiv2 supports XMP metadata: Yes
HEIF encoding support: Yes
ImageMagick codecs: 6.9.11
KF5: 5.77.0
LensFun: 0.3.95-0
LibCImg: 130
LibJPEG: 90
LibJasper: 2.0.14
LibLCMS: 2100
LibLqr support: No
LibPGF: 7.19.03
LibPNG: 1.6.37
LibRaw: 0.20.0
LibTIFF: 4.1.0
Marble: 0.27.20
Parallelized demosaicing: No
Qt: 5.15.2
Qt WebEngine support: Yes
Rajce support: Yes
VKontakte support: No
AkonadiContact support: No
Baloo support: No
Calendar support: Yes
DBus support: No
Database backend: QSQLITE
HTML Gallery support: Yes
LibAVCodec: 58.91.100
LibAVFormat: 58.45.100
LibAVUtil: 56.51.100
LibGphoto2: 2.5.26
LibOpenCV: 4.4.0
LibQtAV: 1.13.0
Media player support: Yes
Panorama support: Yes
Comment 1 caulier.gilles 2021-01-28 18:06:05 UTC
Database is mysql internal or sqlite ?

Gilles Caulier
Comment 2 Maik Qualmann 2021-01-28 18:09:24 UTC
We have the same problem with bug 431951 I think. We have no explanation and we cannot reproduce it. Please try the current release candidate from here: 

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

Maik
Comment 3 johcha 2021-01-28 18:58:59 UTC
I'm currently running SQLLite but I was wondering if there is a metadata threshold for migrating to MySQL. 

I'm downloading the new RC to test.
Comment 4 johcha 2021-01-29 07:31:42 UTC
I installed the latest RC and the spinning pinwheel still happens but it seems less frequently. 

I can recreate it by scrolling through a large album (100+ photos) with the preview turned on. It's now only about 10-15 seconds which is similar to the experience in  bug 431951. 

My sqlite db is running on SSD and the photo library is on an attached SSD via USB3.3. 

I tried to run under lldb to see if there was any logging but I'm not sure how to dump the traces at the time when the pinswheeling it happens to see what is creating the problem.
Comment 5 caulier.gilles 2021-01-29 09:27:32 UTC
Hi,


lldb is a debuger to get a backtrace from crash or place breakpoint somewhere.

To be able to use it, you need the PKG version a with "debug" prefix. It's more heavy as it include all debug symbols.

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

But in first you just need to get a console backtrace to see if a dysfunctions appear in the program without to crash executable. 

The contribute web page explain all details to process from a macOS terminal:

https://www.digikam.org/contribute/

Gilles Caulier
Comment 6 Maik Qualmann 2021-02-19 17:59:32 UTC
Git commit c7bda4772d7731404ff0337000dabcbff253102b by Maik Qualmann.
Committed on 19/02/2021 at 17:58.
Pushed by mqualmann into branch 'master'.

calculate QDateTime outside of the DB lock
Related: bug 431951

M  +4    -36   core/libs/database/coredb/coredb.cpp
M  +2    -3    core/libs/database/coredb/coredb.h
M  +0    -12   core/libs/database/coredb/coredbaccess.cpp
M  +28   -2    core/libs/database/dbjobs/dbjob.cpp

https://invent.kde.org/graphics/digikam/commit/c7bda4772d7731404ff0337000dabcbff253102b