In v5.6+ the splash screen pauses at "Reading Database..." for almost 4 minutes where previously the entire program would load in under a minute. This is using mysql backend and it does not appear to be waiting for database - nothing is reported in the slow query log.
The following backtrace is from v5.7 pre-release appbundle: digikam.database: " ( 1 ) " digikam.database: 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, ImagePositions.latitudeNumber, ImagePositions.longitudeNumber FROM Images LEFT JOIN ImageInformation ON Images.id=ImageInformation.imageid LEFT JOIN ImageMetadata ON Images.id=ImageMetadata.imageid LEFT JOIN VideoMetadata ON Images.id=VideoMetadata.imageid LEFT JOIN ImagePositions ON Images.id=ImagePositions.imageid INNER JOIN Albums ON Albums.id=Images.album WHERE Images.status=1 AND ( ( 1 ) );" () digikam.database: Search result: 916804 digikam.geoiface: "ROADMAP" ^C Thread 1 "digikam" received signal SIGINT, Interrupt. syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38 38 ../sysdeps/unix/sysv/linux/x86_64/syscall.S: No such file or directory. (gdb) bt #0 syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38 #1 0x00007fffec9aa7c5 in QBasicMutex::lockInternal() () from /tmp/.mount_MPSbUb/usr/lib/libQt5Core.so.5 #2 0x00007fffec9aa856 in QMutex::lock() () from /tmp/.mount_MPSbUb/usr/lib/libQt5Core.so.5 #3 0x00007fffec0c2332 in Digikam::CoreDbAccess::CoreDbAccess (this=<optimised out>) at /b/dktemp/digikam-master/core/libs/database/coredb/coredbaccess.cpp:116 #4 0x00007ffff7729375 in Digikam::AbstractAlbumTreeView::doLoadState (this=this@entry=0x13c39b0) at /b/dktemp/digikam-master/core/libs/album/albumtreeview.cpp:773 #5 0x00007ffff772a4b9 in Digikam::AbstractCheckableAlbumTreeView::doLoadState (this=0x13c39b0) at /b/dktemp/digikam-master/core/libs/album/albumtreeview.cpp:1368 #6 0x00007ffff685721a in Digikam::StateSavingObject::loadState (this=0x13c39e0) at /b/dktemp/digikam-master/core/libs/widgets/common/statesavingobject.cpp:184 #7 0x00007ffff798c537 in Digikam::GPSSearchView::doLoadState (this=0x13b0940) at /b/dktemp/digikam-master/core/utilities/geolocation/mapsearches/gpssearchview.cpp:328 #8 0x00007ffff685721a in Digikam::StateSavingObject::loadState (this=0x13b0970) at /b/dktemp/digikam-master/core/libs/widgets/common/statesavingobject.cpp:184 #9 0x00007ffff685721a in Digikam::StateSavingObject::loadState (this=0x13b05f0) at /b/dktemp/digikam-master/core/libs/widgets/common/statesavingobject.cpp:184 #10 0x00007ffff75f3047 in Digikam::DigikamView::loadViewState (this=this@entry=0xd6b090) at /b/dktemp/digikam-master/core/app/views/digikamview.cpp:724 #11 0x00007ffff75f343a in Digikam::DigikamView::slotAllAlbumsLoaded (this=0xd6b090) at /b/dktemp/digikam-master/core/app/views/digikamview.cpp:945 #12 0x00007ffff7605ab8 in Digikam::DigikamView::qt_static_metacall (_o=0xd6b090, _c=<optimised out>, _id=<optimised out>, _a=<optimised out>) at /b/dktemp/digikam-master/build/core/app/moc_digikamview.cpp:712 #13 0x00007fffecbb9fd8 in QMetaObject::activate(QObject*, int, int, void**) () from /tmp/.mount_MPSbUb/usr/lib/libQt5Core.so.5 #14 0x00007ffff7747146 in Digikam::AlbumManager::startScan ( this=0x7ffff7dd6230 <_ZZN7Digikam12_GLOBAL__N_113Q_QGS_creator13innerFunctionEvE6holder>) at /b/dktemp/digikam-master/core/libs/album/albummanager.cpp:1090 #15 0x00007ffff7554d50 in Digikam::DigikamApp::DigikamApp (this=0x78a3a0, __in_chrg=<optimised out>, __vtt_parm=<optimised out>) at /b/dktemp/digikam-master/core/app/main/digikamapp.cpp:276 #16 0x00000000004058c8 in main (argc=1, argv=<optimised out>) at /b/dktemp/digikam-master/core/app/main/main.cpp:236 (gdb) |
This is likely due to the new database integrity checks. As far as I
remember parts of it happen on startup. So first advice is to let it run once - it may take a (long) while, but it should be only this one time. I Cced Mario who worked on this, so he can give more relevant information or correct me if necessary. On 08/08/17 02:32, meku wrote: > In v5.6+ the splash screen pauses at "Reading Database..." for almost 4 > minutes where previously the entire program would load in under a minute. > This is using mysql backend and it does not appear to be waiting for > database - nothing is reported in the slow query log. > > The following backtrace is from v5.7 pre-release appbundle: > > digikam.database: " ( 1 ) " > digikam.database: 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, ImagePositions.latitudeNumber, > ImagePositions.longitudeNumber FROM Images LEFT JOIN > ImageInformation ON Images.id=ImageInformation.imageid LEFT JOIN > ImageMetadata ON Images.id=ImageMetadata.imageid LEFT JOIN > VideoMetadata ON Images.id=VideoMetadata.imageid LEFT JOIN > ImagePositions ON Images.id=ImagePositions.imageid INNER JOIN > Albums ON Albums.id=Images.album WHERE Images.status=1 AND ( ( 1 > ) );" > () > digikam.database: Search result: 916804 > digikam.geoiface: "ROADMAP" > ^C > Thread 1 "digikam" received signal SIGINT, Interrupt. > syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38 > 38 ../sysdeps/unix/sysv/linux/x86_64/syscall.S: No such file or > directory. > (gdb) bt > #0 syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38 > #1 0x00007fffec9aa7c5 in QBasicMutex::lockInternal() () from > /tmp/.mount_MPSbUb/usr/lib/libQt5Core.so.5 > #2 0x00007fffec9aa856 in QMutex::lock() () from > /tmp/.mount_MPSbUb/usr/lib/libQt5Core.so.5 > #3 0x00007fffec0c2332 in Digikam::CoreDbAccess::CoreDbAccess > (this=<optimised out>) > at > /b/dktemp/digikam-master/core/libs/database/coredb/coredbaccess.cpp:116 > #4 0x00007ffff7729375 in Digikam::AbstractAlbumTreeView::doLoadState > (this=this@entry=0x13c39b0) > at /b/dktemp/digikam-master/core/libs/album/albumtreeview.cpp:773 > #5 0x00007ffff772a4b9 in > Digikam::AbstractCheckableAlbumTreeView::doLoadState (this=0x13c39b0) > at /b/dktemp/digikam-master/core/libs/album/albumtreeview.cpp:1368 > #6 0x00007ffff685721a in Digikam::StateSavingObject::loadState > (this=0x13c39e0) > at > /b/dktemp/digikam-master/core/libs/widgets/common/statesavingobject.cpp:184 > #7 0x00007ffff798c537 in Digikam::GPSSearchView::doLoadState > (this=0x13b0940) > at > /b/dktemp/digikam-master/core/utilities/geolocation/mapsearches/gpssearchview.cpp:328 > #8 0x00007ffff685721a in Digikam::StateSavingObject::loadState > (this=0x13b0970) > at > /b/dktemp/digikam-master/core/libs/widgets/common/statesavingobject.cpp:184 > #9 0x00007ffff685721a in Digikam::StateSavingObject::loadState > (this=0x13b05f0) > at > /b/dktemp/digikam-master/core/libs/widgets/common/statesavingobject.cpp:184 > #10 0x00007ffff75f3047 in Digikam::DigikamView::loadViewState > (this=this@entry=0xd6b090) > at /b/dktemp/digikam-master/core/app/views/digikamview.cpp:724 > #11 0x00007ffff75f343a in Digikam::DigikamView::slotAllAlbumsLoaded > (this=0xd6b090) > at /b/dktemp/digikam-master/core/app/views/digikamview.cpp:945 > #12 0x00007ffff7605ab8 in Digikam::DigikamView::qt_static_metacall > (_o=0xd6b090, _c=<optimised out>, _id=<optimised out>, > _a=<optimised out>) at > /b/dktemp/digikam-master/build/core/app/moc_digikamview.cpp:712 > #13 0x00007fffecbb9fd8 in QMetaObject::activate(QObject*, int, int, void**) > () from /tmp/.mount_MPSbUb/usr/lib/libQt5Core.so.5 > #14 0x00007ffff7747146 in Digikam::AlbumManager::startScan ( > this=0x7ffff7dd6230 > <_ZZN7Digikam12_GLOBAL__N_113Q_QGS_creator13innerFunctionEvE6holder>) > at /b/dktemp/digikam-master/core/libs/album/albummanager.cpp:1090 > #15 0x00007ffff7554d50 in Digikam::DigikamApp::DigikamApp (this=0x78a3a0, > __in_chrg=<optimised out>, __vtt_parm=<optimised out>) > at /b/dktemp/digikam-master/core/app/main/digikamapp.cpp:276 > #16 0x00000000004058c8 in main (argc=1, argv=<optimised out>) at > /b/dktemp/digikam-master/core/app/main/main.cpp:236 > (gdb) > > > > -- > View this message in context: http://digikam.1695700.n4.nabble.com/Startup-takes-4-minutes-tp4703585.html > Sent from the digikam-users mailing list archive at Nabble.com. |
Simon is right. Let's the database to be cleaned at least one time.
But look also in Step/Misc/Behavior. There is an option to disable this check at startup. Note that DB clean can be started as a maintenance tool. Gilles Caulier 2017-08-08 13:29 GMT+02:00 Simon Frei <[hidden email]>: > This is likely due to the new database integrity checks. As far as I > remember parts of it happen on startup. So first advice is to let it run > once - it may take a (long) while, but it should be only this one time. > I Cced Mario who worked on this, so he can give more relevant > information or correct me if necessary. > > On 08/08/17 02:32, meku wrote: >> In v5.6+ the splash screen pauses at "Reading Database..." for almost 4 >> minutes where previously the entire program would load in under a minute. >> This is using mysql backend and it does not appear to be waiting for >> database - nothing is reported in the slow query log. >> >> The following backtrace is from v5.7 pre-release appbundle: >> >> digikam.database: " ( 1 ) " >> digikam.database: 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, ImagePositions.latitudeNumber, >> ImagePositions.longitudeNumber FROM Images LEFT JOIN >> ImageInformation ON Images.id=ImageInformation.imageid LEFT JOIN >> ImageMetadata ON Images.id=ImageMetadata.imageid LEFT JOIN >> VideoMetadata ON Images.id=VideoMetadata.imageid LEFT JOIN >> ImagePositions ON Images.id=ImagePositions.imageid INNER JOIN >> Albums ON Albums.id=Images.album WHERE Images.status=1 AND ( ( 1 >> ) );" >> () >> digikam.database: Search result: 916804 >> digikam.geoiface: "ROADMAP" >> ^C >> Thread 1 "digikam" received signal SIGINT, Interrupt. >> syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38 >> 38 ../sysdeps/unix/sysv/linux/x86_64/syscall.S: No such file or >> directory. >> (gdb) bt >> #0 syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38 >> #1 0x00007fffec9aa7c5 in QBasicMutex::lockInternal() () from >> /tmp/.mount_MPSbUb/usr/lib/libQt5Core.so.5 >> #2 0x00007fffec9aa856 in QMutex::lock() () from >> /tmp/.mount_MPSbUb/usr/lib/libQt5Core.so.5 >> #3 0x00007fffec0c2332 in Digikam::CoreDbAccess::CoreDbAccess >> (this=<optimised out>) >> at >> /b/dktemp/digikam-master/core/libs/database/coredb/coredbaccess.cpp:116 >> #4 0x00007ffff7729375 in Digikam::AbstractAlbumTreeView::doLoadState >> (this=this@entry=0x13c39b0) >> at /b/dktemp/digikam-master/core/libs/album/albumtreeview.cpp:773 >> #5 0x00007ffff772a4b9 in >> Digikam::AbstractCheckableAlbumTreeView::doLoadState (this=0x13c39b0) >> at /b/dktemp/digikam-master/core/libs/album/albumtreeview.cpp:1368 >> #6 0x00007ffff685721a in Digikam::StateSavingObject::loadState >> (this=0x13c39e0) >> at >> /b/dktemp/digikam-master/core/libs/widgets/common/statesavingobject.cpp:184 >> #7 0x00007ffff798c537 in Digikam::GPSSearchView::doLoadState >> (this=0x13b0940) >> at >> /b/dktemp/digikam-master/core/utilities/geolocation/mapsearches/gpssearchview.cpp:328 >> #8 0x00007ffff685721a in Digikam::StateSavingObject::loadState >> (this=0x13b0970) >> at >> /b/dktemp/digikam-master/core/libs/widgets/common/statesavingobject.cpp:184 >> #9 0x00007ffff685721a in Digikam::StateSavingObject::loadState >> (this=0x13b05f0) >> at >> /b/dktemp/digikam-master/core/libs/widgets/common/statesavingobject.cpp:184 >> #10 0x00007ffff75f3047 in Digikam::DigikamView::loadViewState >> (this=this@entry=0xd6b090) >> at /b/dktemp/digikam-master/core/app/views/digikamview.cpp:724 >> #11 0x00007ffff75f343a in Digikam::DigikamView::slotAllAlbumsLoaded >> (this=0xd6b090) >> at /b/dktemp/digikam-master/core/app/views/digikamview.cpp:945 >> #12 0x00007ffff7605ab8 in Digikam::DigikamView::qt_static_metacall >> (_o=0xd6b090, _c=<optimised out>, _id=<optimised out>, >> _a=<optimised out>) at >> /b/dktemp/digikam-master/build/core/app/moc_digikamview.cpp:712 >> #13 0x00007fffecbb9fd8 in QMetaObject::activate(QObject*, int, int, void**) >> () from /tmp/.mount_MPSbUb/usr/lib/libQt5Core.so.5 >> #14 0x00007ffff7747146 in Digikam::AlbumManager::startScan ( >> this=0x7ffff7dd6230 >> <_ZZN7Digikam12_GLOBAL__N_113Q_QGS_creator13innerFunctionEvE6holder>) >> at /b/dktemp/digikam-master/core/libs/album/albummanager.cpp:1090 >> #15 0x00007ffff7554d50 in Digikam::DigikamApp::DigikamApp (this=0x78a3a0, >> __in_chrg=<optimised out>, __vtt_parm=<optimised out>) >> at /b/dktemp/digikam-master/core/app/main/digikamapp.cpp:276 >> #16 0x00000000004058c8 in main (argc=1, argv=<optimised out>) at >> /b/dktemp/digikam-master/core/app/main/main.cpp:236 >> (gdb) >> >> >> >> -- >> View this message in context: http://digikam.1695700.n4.nabble.com/Startup-takes-4-minutes-tp4703585.html >> Sent from the digikam-users mailing list archive at Nabble.com. > |
Today the startup time has returned to normal (less than 15sec) but I don't think I changed anything. I did a full database clean & shrink using the maintenance tool a few days ago but it didn't have any effect on the startup time then. Thanks for your help. On 8 August 2017 at 22:03, Gilles Caulier-4 [via digiKam] <[hidden email]> wrote: Simon is right. Let's the database to be cleaned at least one time. |
In reply to this post by Simon Frei
Hey Simon,
Hey meku, Integrity checks are only done before and after vacuuming which is never done at startup. This is only done in maintenance. Nevertheless, database cleaning is done if configured in setup->misc. This can take some time at first startup as the stale image ids from the core database are removed. After the first start, no significant latency should occur. Looking at the trace, I think there was a similar problem in bugzilla some time ago. Search for slow startup. I think there was a solution. You should find it. The trace implies a slow process in loading album tree views. There are multiple of them. One in the main view, one in the searches sidebar (the album selection combobox), and multiple in the fuzzy sidebar. In the digikamrc the selected albums are stored the name of the configuration keys is always something containing AlbumSelectCombobox. Remove the values of these configuration. In the load state phase, the last selected albums are selected. There, a time latency can occur. How many albums and images do you have? Hope this helps. Cheers Mario Am 8. August 2017 13:29:55 MESZ schrieb
Simon Frei [hidden email]:
This is likely due to the new database integrity checks. As far as I remember parts of it happen on startup. So first advice is to let it run once - it may take a (long) while, but it should be only this one time. I Cced Mario who worked on this, so he can give more relevant information or correct me if necessary. On 08/08/17 02:32, meku wrote:In v5.6+ the splash screen pauses at "Reading Database..." for almost 4 minutes where previously the entire program would load in under a minute. This is using mysql backend and it does not appear to be waiting for database - nothing is reported in the slow query log. The following backtrace is from v5.7 pre-release appbundle: digikam.database: " ( 1 ) " digikam.database: 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, ImagePositions.latitudeNumber, ImagePositions.longitudeNumber FROM Images LEFT JOIN ImageInformation ON Images.id=ImageInformation.imageid LEFT JOIN ImageMetadata ON Images.id=ImageMetadata.imageid LEFT JOIN VideoMetadata ON Images.id=VideoMetadata.imageid LEFT JOIN ImagePositions ON Images.id=ImagePositions.imageid INNER JOIN Albums ON Albums.id=Images.album WHERE Images.status=1 AND ( ( 1 ) );" () digikam.database: Search result: 916804 digikam.geoiface: "ROADMAP" ^C Thread 1 "digikam" received signal SIGINT, Interrupt. syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38 38 ../sysdeps/unix/sysv/linux/x86_64/syscall.S: No such file or directory. (gdb) bt #0 syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38 #1 0x00007fffec9aa7c5 in QBasicMutex::lockInternal() () from /tmp/.mount_MPSbUb/usr/lib/libQt5Core.so.5 #2 0x00007fffec9aa856 in QMutex::lock() () from /tmp/.mount_MPSbUb/usr/lib/libQt5Core.so.5 #3 0x00007fffec0c2332 in Digikam::CoreDbAccess::CoreDbAccess (this=<optimised out>) at /b/dktemp/digikam-master/core/libs/database/coredb/coredbaccess.cpp:116 #4 0x00007ffff7729375 in Digikam::AbstractAlbumTreeView::doLoadState (this=this@entry=0x13c39b0) at /b/dktemp/digikam-master/core/libs/album/albumtreeview.cpp:773 #5 0x00007ffff772a4b9 in Digikam::AbstractCheckableAlbumTreeView::doLoadState (this=0x13c39b0) at /b/dktemp/digikam-master/core/libs/album/albumtreeview.cpp:1368 #6 0x00007ffff685721a in Digikam::StateSavingObject::loadState (this=0x13c39e0) at /b/dktemp/digikam-master/core/libs/widgets/common/statesavingobject.cpp:184 #7 0x00007ffff798c537 in Digikam::GPSSearchView::doLoadState (this=0x13b0940) at /b/dktemp/digikam-master/core/utilities/geolocation/mapsearches/gpssearchview.cpp:328 #8 0x00007ffff685721a in Digikam::StateSavingObject::loadState (this=0x13b0970) at /b/dktemp/digikam-master/core/libs/widgets/common/statesavingobject.cpp:184 #9 0x00007ffff685721a in Digikam::StateSavingObject::loadState (this=0x13b05f0) at /b/dktemp/digikam-master/core/libs/widgets/common/statesavingobject.cpp:184 #10 0x00007ffff75f3047 in Digikam::DigikamView::loadViewState (this=this@entry=0xd6b090) at /b/dktemp/digikam-master/core/app/views/digikamview.cpp:724 #11 0x00007ffff75f343a in Digikam::DigikamView::slotAllAlbumsLoaded (this=0xd6b090) at /b/dktemp/digikam-master/core/app/views/digikamview.cpp:945 #12 0x00007ffff7605ab8 in Digikam::DigikamView::qt_static_metacall (_o=0xd6b090, _c=<optimised out>, _id=<optimised out>, _a=<optimised out>) at /b/dktemp/digikam-master/build/core/app/moc_digikamview.cpp:712 #13 0x00007fffecbb9fd8 in QMetaObject::activate(QObject*, int, int, void**) () from /tmp/.mount_MPSbUb/usr/lib/libQt5Core.so.5 #14 0x00007ffff7747146 in Digikam::AlbumManager::startScan ( this=0x7ffff7dd6230 <_ZZN7Digikam12_GLOBAL__N_113Q_QGS_creator13innerFunctionEvE6holder>) at /b/dktemp/digikam-master/core/libs/album/albummanager.cpp:1090 #15 0x00007ffff7554d50 in Digikam::DigikamApp::DigikamApp (this=0x78a3a0, __in_chrg=<optimised out>, __vtt_parm=<optimised out>) at /b/dktemp/digikam-master/core/app/main/digikamapp.cpp:276 #16 0x00000000004058c8 in main (argc=1, argv=<optimised out>) at /b/dktemp/digikam-master/core/app/main/main.cpp:236 (gdb) -- View this message in context: http://digikam.1695700.n4.nabble.com/Startup-takes-4-minutes-tp4703585.html Sent from the digikam-users mailing list archive at Nabble.com. -- Diese Nachricht wurde von meinem Android-Mobiltelefon mit K-9 Mail gesendet. |
Free forum by Nabble | Edit this page |