[digikam] [Bug 367853] Digikam hangs on 'Reading database' when stumbling across MacOS' Photos Library of a huge size (>20GB)

via KDE Bugzilla bugzilla_noreply at kde.org
Sat Aug 27 14:24:06 BST 2016


https://bugs.kde.org/show_bug.cgi?id=367853

--- Comment #6 from caulier.gilles at gmail.com ---
2016-08-27 13:50 GMT+02:00 Lars Van Casteren via KDE Bugzilla <
bugzilla_noreply at kde.org>:

> https://bugs.kde.org/show_bug.cgi?id=367853
>
> --- Comment #5 from Lars Van Casteren <larsvancasteren at gmail.com> ---
> I think the scanning actually went ok when seeing the console msg output.
> The problem seems to appear after the folder scan, or during consequent
> startup
> if you killed it.
>
> This is the console after it finished scanning Photos, it seemed to
> actually
> have finished.
>
> digikam.database: Complete scan took: 1339440 msecs.
> digikam.general: total scan value :  569565
> digikam.database: Complete scan (file scanning deferred) took: 203521
> msecs.
> digikam.general: Event is dispatched to OSX desktop notifier
> digikam.general: Camera XML data:  "/Users/wowbagger/Library/Application
> Support/digikam/cameras.xml"
> digikam.facedb: FaceDB SelectFaceSetting val ret =  0
> digikam.facedb: FaceDB SelectFaceSetting val ret =  0
> digikam.facedb: Face database: have a structure version  "2"
> digikam.facesengine: Face database ready for use
> digikam.facesengine: Face database ready for use
> digikam.geoiface: "setting backend marble"
> digikam.general: Stacked View Mode :  0
> digikam.geoiface: "setting backend marble"
> digikam.general: "browse_album"
> digikam.general: "browse_tag"
> digikam.general: "browse_labels"
> digikam.general: "browse_date"
> digikam.general: "browse_timeline"
> digikam.general: "browse_search"
> digikam.general: "browse_fuzzysearch"
> digikam.general: "browse_gpssearch"
> digikam.general: "browse_people"
> digikam.widgets: Paths to color scheme :
> ("/opt/digikam/Applications/KF5/digikam.app/Contents/Resources//digikam/
> colorschemes")
> digikam.widgets: ""  ::  ""
> QFSFileEngine::open: No file name specified
> digikam.dimg: Invalid variant value for device!
> digikam.dimg: updating data
> digikam.dimg: updating data
> digikam.general: Using  4  CPU core to run threads
> digikam.general: new search text settings:  "" : hasResult =  false ,
> validRows
> =  0
> QFSFileEngine::open: No file name specified
> digikam.geoiface: ----
> digikam.geoiface: ----
> digikam.general: Added root album called:  "Pictures"
>
> This is a lldb bt:
>
> * thread #1: tid = 0xd0980, 0x00000001065714ff QtCore`QHash<QString,
> QHashDummyValue>::insert(QString const&, QHashDummyValue const&) + 207,
> stop
> reason = signal SIGSTOP
>   * frame #0: 0x00000001065714ff QtCore`QHash<QString,
> QHashDummyValue>::insert(QString const&, QHashDummyValue const&) + 207
>     frame #1: 0x000000010656f64b
> QtCore`QtPrivate::QStringList_removeDuplicates(QStringList*) + 251
>     frame #2: 0x0000000100df7a7d
> libdigikamcore.5.2.0.dylib`___lldb_unnamed_function10472$$
> libdigikamcore.5.2.0.dylib
> + 29
>     frame #3: 0x0000000100df7408
> libdigikamcore.5.2.0.dylib`Digikam::ModelCompleter::
> slotDataChanged(QModelIndex
> const&, QModelIndex const&) + 1560
>     frame #4: 0x0000000100ea5e3f
> libdigikamcore.5.2.0.dylib`___lldb_unnamed_function12112$$
> libdigikamcore.5.2.0.dylib
> + 207
>     frame #5: 0x00000001066c5796 QtCore`QMetaObject::activate(QObject*,
> int,
> int, void**) + 742
>     frame #6: 0x000000010675c69d
> QtCore`QAbstractItemModel::dataChanged(QModelIndex const&, QModelIndex
> const&,
> QVector<int> const&) + 61
>     frame #7: 0x0000000100326621
> libdigikamgui.5.2.0.dylib`Digikam::AbstractCountingAlbumModel::
> updateCount(Digikam::Album*)
> + 753
>     frame #8: 0x00000001003266e5
> libdigikamgui.5.2.0.dylib`Digikam::AbstractCountingAlbumModel::
> includeChildrenCount(QModelIndex
> const&) + 117
>     frame #9: 0x00000001003555bd
> libdigikamgui.5.2.0.dylib`___lldb_unnamed_function13361$$
> libdigikamgui.5.2.0.dylib
> + 61
>     frame #10: 0x000000010035548a
> libdigikamgui.5.2.0.dylib`___lldb_unnamed_function13359$$
> libdigikamgui.5.2.0.dylib
> + 90
>     frame #11: 0x0000000100355655
> libdigikamgui.5.2.0.dylib`___lldb_unnamed_function13362$$
> libdigikamgui.5.2.0.dylib
> + 133
>     frame #12: 0x00000001003562c3
> libdigikamgui.5.2.0.dylib`___lldb_unnamed_function13381$$
> libdigikamgui.5.2.0.dylib
> + 51
>     frame #13: 0x00000001066c5796 QtCore`QMetaObject::activate(QObject*,
> int,
> int, void**) + 742
>     frame #14: 0x000000010675c88e
> QtCore`QAbstractItemModel::rowsInserted(QModelIndex const&, int, int,
> QAbstractItemModel::QPrivateSignal) + 78
>     frame #15: 0x000000010663b740 QtCore`QAbstractItemModel::endInsertRows()
> +
> 80
>     frame #16: 0x00000001066590b6
> QtCore`QSortFilterProxyModelPrivate::insert_source_items(QVector<int>&,
> QVector<int>&, QVector<int> const&, QModelIndex const&, Qt::Orientation,
> bool)
> + 1430
>     frame #17: 0x0000000106659b06
> QtCore`QSortFilterProxyModelPrivate::source_items_inserted(QModelIndex
> const&,
> int, int, Qt::Orientation) + 2070
>     frame #18: 0x0000000106661d03
> QtCore`QSortFilterProxyModel::qt_static_metacall(QObject*,
> QMetaObject::Call,
> int, void**) + 1443
>     frame #19: 0x00000001066c5796 QtCore`QMetaObject::activate(QObject*,
> int,
> int, void**) + 742
>     frame #20: 0x000000010675c88e
> QtCore`QAbstractItemModel::rowsInserted(QModelIndex const&, int, int,
> QAbstractItemModel::QPrivateSignal) + 78
>     frame #21: 0x000000010663b740 QtCore`QAbstractItemModel::endInsertRows()
> +
> 80
>     frame #22: 0x00000001003258ad
> libdigikamgui.5.2.0.dylib`Digikam::AbstractAlbumModel::
> slotAlbumAdded(Digikam::Album*)
> + 93
>     frame #23: 0x0000000100334cd7
> libdigikamgui.5.2.0.dylib`___lldb_unnamed_function12637$$
> libdigikamgui.5.2.0.dylib
> + 167
>     frame #24: 0x00000001066c5796 QtCore`QMetaObject::activate(QObject*,
> int,
> int, void**) + 742
>     frame #25: 0x000000010039174d
> libdigikamgui.5.2.0.dylib`Digikam::AlbumManager::
> signalAlbumAdded(Digikam::Album*)
> + 77
>     frame #26: 0x00000001003743b8
> libdigikamgui.5.2.0.dylib`Digikam::AlbumManager::
> insertPAlbum(Digikam::PAlbum*,
> Digikam::PAlbum*) + 328
>     frame #27: 0x0000000100375782
> libdigikamgui.5.2.0.dylib`Digikam::AlbumManager::scanPAlbums() + 4034
>     frame #28: 0x0000000100374739
> libdigikamgui.5.2.0.dylib`Digikam::AlbumManager::refresh() + 25
>     frame #29: 0x000000010037402a
> libdigikamgui.5.2.0.dylib`Digikam::AlbumManager::startScan() + 1578
>     frame #30: 0x00000001000e8d71
> libdigikamgui.5.2.0.dylib`Digikam::DigikamApp::DigikamApp() + 3953
>     frame #31: 0x0000000100011b7f digikam`main + 7343
>     frame #32: 0x00007fff9221b5ad libdyld.dylib`start + 1
>     frame #33: 0x00007fff9221b5ad libdyld.dylib`start + 1
>
> And this is the sqlite db:
>
> sqlite> select count (*) from images;
> 120444
>
> sqlite> select count(*) from albums;
> 106600
>
> Maybe the Album parsing to create the tree make it hang/unresponsive due
> to the
> very high amount of albums?
>

If it's the case, this can be a sqlite internal settings problem.

This will give the same result with Mysql internal to replace sqlite ? (not
a remote Mysql server).

Mysql must be better to handle big set of data. Does it pass until the end
of scan in this situation ?

Gilles Caulier

-- 
You are receiving this mail because:
You are the assignee for the bug.



More information about the Digikam-devel mailing list