Bug 242816

Summary: digikam gets stuck when moving and renaming a lot of albums
Product: [Applications] digikam Reporter: S. Burmeister <sven.burmeister>
Component: Database-SqliteAssignee: Digikam Developers <digikam-bugs-null>
Status: RESOLVED FIXED    
Severity: normal CC: caulier.gilles, swatilodha27
Priority: NOR    
Version: 1.4.0   
Target Milestone: ---   
Platform: openSUSE   
OS: Linux   
Latest Commit: Version Fixed In: 5.0.0
Sentry Crash Report:

Description S. Burmeister 2010-06-25 20:31:32 UTC
Version:           1.4.0 (using KDE 4.4.3) 
OS:                Linux

I started to rename albums from within digikam and noticed that hard disk I/O increased a lot. Then I moved an album within the collection, yet from outside i.e. via dolphin while digikam was open. This made digikam respond very slowly yet I could rename another album.

After clicking "ok" to rename the album the album tree was not re-sorted but digikam was stuck, not causing CPU or hard disk usage.

I attached gdb to it and got the following backtrace.

(gdb) bt
#0  0x00007f50466c7afe in __lll_lock_wait_private () from /lib64/libc.so.6
#1  0x00007f5046663930 in _L_lock_6455 () from /lib64/libc.so.6
#2  0x00007f504665fe57 in malloc_check () from /lib64/libc.so.6
#3  0x00007f5046657bf4 in __libc_message () from /lib64/libc.so.6
#4  0x00007f504665d226 in malloc_printerr () from /lib64/libc.so.6
#5  0x00007f504665f8cf in _int_malloc () from /lib64/libc.so.6
#6  0x00007f504665fe72 in malloc_check () from /lib64/libc.so.6
#7  0x00007f504760dccb in QString::QString(QChar const*, int) () from /usr/lib64/libQtCore.so.4
#8  0x00007f5035040caa in ?? () from /usr/lib64/qt4/plugins/sqldrivers/libqsqlite.so
#9  0x00007f50350416ef in ?? () from /usr/lib64/qt4/plugins/sqldrivers/libqsqlite.so
#10 0x00007f504bea2866 in QSqlQuery::exec() () from /usr/lib64/libQtSql.so.4
#11 0x00007f504ae47922 in Digikam::DatabaseCoreBackend::exec (this=0xc162c0, query=...)
    at /home/kde-branch/kde/src/digikam/libs/database/databasecorebackend.cpp:1032
#12 0x00007f504ae46604 in Digikam::DatabaseCoreBackend::execQuery (this=0xc162c0, sql=..., 
    boundValue1=...)
    at /home/kde-branch/kde/src/digikam/libs/database/databasecorebackend.cpp:769
#13 0x00007f504ae46276 in Digikam::DatabaseCoreBackend::execSql (this=0xc162c0, sql=..., 
    boundValue1=..., values=0x7fff4d7e2970, lastInsertId=0x0)
    at /home/kde-branch/kde/src/digikam/libs/database/databasecorebackend.cpp:718
#14 0x00007f504a88a970 in Digikam::AlbumDB::getItemShortInfo (this=0xcb5390, imageID=7354)
    at /home/kde-branch/kde/src/digikam/libs/database/albumdb.cpp:1016
#15 0x00007f504a8ce441 in Digikam::ImageInfo::ImageInfo (this=0x7fff4d7e2a70, ID=7354)
    at /home/kde-branch/kde/src/digikam/libs/database/imageinfo.cpp:109
#16 0x00000000006a8806 in Digikam::ScanControllerLoadingCacheFileWatch::slotImageChanged (this=
    0xe3c540, changeset=...) at /home/kde-branch/kde/src/digikam/digikam/scancontroller.cpp:838
#17 0x00000000006a54b1 in Digikam::ScanControllerLoadingCacheFileWatch::qt_metacall (this=
    0xe3c540, _c=QMetaObject::InvokeMetaMethod, _id=0, _a=0x3019ab0)
    at /home/kde-branch/kde/build/digikam/digikam/scancontroller.moc:72
#18 0x00007f50476c4509 in QObject::event(QEvent*) () from /usr/lib64/libQtCore.so.4
#19 0x00007f50482394d4 in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
   from /usr/lib64/libQtGui.so.4
#20 0x00007f5048241aca in QApplication::notify(QObject*, QEvent*) ()
   from /usr/lib64/libQtGui.so.4
#21 0x00007f5048e5d9e6 in KApplication::notify(QObject*, QEvent*) ()
   from /usr/lib64/libkdeui.so.5
---Type <return> to continue, or q <return> to quit---m
#22 0x00007f50476b2e4c in QCoreApplication::notifyInternal(QObject*, QEvent*) ()
   from /usr/lib64/libQtCore.so.4
#23 0x00007f50476b65ba in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*)
    () from /usr/lib64/libQtCore.so.4
#24 0x00007f50476db173 in ?? () from /usr/lib64/libQtCore.so.4
#25 0x00007f5042abaa93 in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0
#26 0x00007f5042abb270 in ?? () from /usr/lib64/libglib-2.0.so.0
#27 0x00007f5042abb510 in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#28 0x00007f50476db67f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQtCore.so.4
#29 0x00007f50482da14e in ?? () from /usr/lib64/libQtGui.so.4
#30 0x00007f50476b2292 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /usr/lib64/libQtCore.so.4
#31 0x00007f50476b2495 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /usr/lib64/libQtCore.so.4
#32 0x00007f50476b688b in QCoreApplication::exec() () from /usr/lib64/libQtCore.so.4
#33 0x000000000070ea6a in main (argc=5, argv=0x7fff4d7e3d28)
    at /home/kde-branch/kde/src/digikam/digikam/main.cpp:195

/usr/bin/nepomukservicestub digikamnepomukservice:

(gdb) bt
#0  0x00007ffe05633678 in poll () from /lib64/libc.so.6
#1  0x00007ffe04aa0fd4 in ?? () from /usr/lib64/libglib-2.0.so.0
#2  0x00007ffe04aa1510 in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#3  0x00007ffe0754067f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQtCore.so.4
#4  0x00007ffe05e3714e in ?? () from /usr/lib64/libQtGui.so.4
#5  0x00007ffe07517292 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /usr/lib64/libQtCore.so.4
#6  0x00007ffe07517495 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /usr/lib64/libQtCore.so.4
#7  0x00007ffe0751b88b in QCoreApplication::exec() () from /usr/lib64/libQtCore.so.4
#8  0x0000000000403aa9 in main (argc=2, argv=0x7fffef100578)
    at /usr/src/debug/kdebase-runtime-4.4.3/nepomuk/servicestub/main.cpp:152




Reproducible: Didn't try
Comment 1 Marcel Wiesweg 2010-06-28 18:46:57 UTC
Looks like memory corruption somewhere (error message from glibc pasted on the console), probably not at the place pointed to by the backtrace, which looks like innocent code just allocating some memory.
No idea at the moment.
Comment 2 caulier.gilles 2011-12-15 09:02:19 UTC
Sven,

This file still valid using digiKam 2.x serie ?

Gilles Caulier
Comment 3 caulier.gilles 2014-08-07 06:42:23 UTC
We need a fresh feedback using digiKAm 4.2.0 release

Gilles Caulier
Comment 4 caulier.gilles 2015-06-29 17:45:34 UTC
New digiKam 4.11.0 is available with official PKG installer for OSX.

https://www.digikam.org/node/740

Can you reproduce the problem with this release ?

Gilles Caulier
Comment 5 swatilodha27 2016-07-02 17:01:40 UTC
digiKam 5.0.0 version is available. 

If you think the report is still valid, feel free to re-open.