[Digikam-devel] Strange crashes

Andi Clemens andi.clemens at gmx.net
Wed May 20 20:01:19 BST 2009


Hi,

I just watched a folder, closed digiKam and it crashed.
As I closed it, thumbs were still generated. Unfortunately I have my /tmp 
folder in a different partition as my home folder, so the rename macro we are 
using is not working here.
Anyway after closing the app, I get the following backtrace:

rogram received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xa70ffb90 (LWP 18442)]
0xb6f2480b in QString (this=0xa8708430, other=@0x8) at 
/usr/include/QtCore/qstring.h:711
711     inline QString::QString(const QString &other) : d(other.d)
(gdb) bt
#0  0xb6f2480b in QString (this=0xa8708430, other=@0x8) at 
/usr/include/QtCore/qstring.h:711
#1  0xb6ffefa9 in QHashNode (this=0xa8708428, key0=@0x8, value0=@0xc) at 
/usr/include/QtCore/qhash.h:217
#2  0xb70001db in QHash<QString, Digikam::LoadingProcess*>::duplicateNode 
(node=0x0, newNode=0xa8708428) at /usr/include/QtCore/qhash.h:506
#3  0xb5307e58 in QHashData::detach_helper () from /usr/lib/libQtCore.so.4
#4  0xb6ffef09 in QHash<QString, Digikam::LoadingProcess*>::detach_helper 
(this=0x96a5890) at /usr/include/QtCore/qhash.h:568
#5  0xb6ffd667 in QHash<QString, Digikam::LoadingProcess*>::detach 
(this=0x96a5890) at /usr/include/QtCore/qhash.h:284
#6  0xb6ffc099 in QHash<QString, Digikam::LoadingProcess*>::remove 
(this=0x96a5890, akey=@0xa70ff18c) at /usr/include/QtCore/qhash.h:766
#7  0xb6ff99b6 in Digikam::LoadingCache::removeLoadingProcess (this=0x96a5830, 
process=0xbd60174) at 
/home/andi/Programmieren/KDE/digiKam/digikam_KDE4/digikam/libs/threadimageio/loadingcache.cpp:162
#8  0xb700ba35 in Digikam::ThumbnailLoadingTask::execute (this=0xbd600a8) at 
/home/andi/Programmieren/KDE/digiKam/digikam_KDE4/digikam/libs/threadimageio/thumbnailtask.cpp:143
#9  0xb6ff391c in Digikam::LoadSaveThread::run (this=0xbceb378) at 
/home/andi/Programmieren/KDE/digiKam/digikam_KDE4/digikam/libs/threadimageio/loadsavethread.cpp:139
#10 0xb52e53be in ?? () from /usr/lib/libQtCore.so.4
#11 0xb52604c5 in start_thread () from /lib/libpthread.so.0
#12 0xb50acf9e in clone () from /lib/libc.so.6





I fixed the bug by checking if the process pointer in loadingcache.cpp:162 is 
valid, but then I get more errors in different places. For example here:


#0  0xb52dbf57 in QMutex::lock () from /usr/lib/libQtCore.so.4
#1  0xb6ff7405 in CacheLock (this=0xa78ff1d0, cache=0x9649318) at 
/home/andi/Programmieren/KDE/digiKam/digikam_KDE4/digikam/libs/threadimageio/loadingcache.cpp:447
#2  0xb70079b1 in Digikam::ThumbnailLoadingTask::execute (this=0xbfd23f0) at 
/home/andi/Programmieren/KDE/digiKam/digikam_KDE4/digikam/libs/threadimageio/thumbnailtask.cpp:138
#3  0xb6fef91c in Digikam::LoadSaveThread::run (this=0xbf5d650) at 
/home/andi/Programmieren/KDE/digiKam/digikam_KDE4/digikam/libs/threadimageio/loadsavethread.cpp:139
#4  0xb52e13be in ?? () from /usr/lib/libQtCore.so.4
#5  0xb525c4c5 in start_thread () from /lib/libpthread.so.0
#6  0xb50a8f9e in clone () from /lib/libc.so.6




It looks like some locking problem? But why? Could it be my system?

Andi




More information about the Digikam-devel mailing list