Version: SVN r1115586 (using KDE 4.4.2) Compiler: gcc version 4.3.4 (Gentoo 4.3.4 p1.0, pie-10.1.5) OS: Linux Installed from: Gentoo Packages Digikam crashes at start when scanning for new images, or if there is some modifications on the hdd. I traced it back to "libs/database/tagscache.cpp" l77 I noted the existance of some booleans like "needUpdateInfos" and "needUpdateHash" that where never put to false, even after an update. So i added "needUpdateInfos = false;" line 79 and "needUpdateHash = false;" line 94. Anyway the crash moved to an other function. Here is the backrace : #0 0xb5211095 in QMutex::lock() () from /usr/lib/qt4/libQtCore.so.4 #1 0xb5211f70 in QReadWriteLock::lockForRead() () from /usr/lib/qt4/libQtCore.so.4 #2 0xb6d50164 in QReadLocker::relock (this=0xb15b8b38) at /usr/include/qt4/QtCore/qreadwritelock.h:111 #3 0xb6d501dc in QReadLocker (this=0xb15b8b38, areadWriteLock=0x86951d4) at /usr/include/qt4/QtCore/qreadwritelock.h:133 #4 0xb6d4e579 in Digikam::TagsCache::tagForPath (this=0x8688ab0, tagPath=...) at /home/build/graphics/digikam/libs/database/tagscache.cpp:232 #5 0xb6d4e8f6 in Digikam::TagsCache::getOrCreateTag (this=0x8688ab0, tagPath=...) at /home/build/graphics/digikam/libs/database/tagscache.cpp:388 #6 0xb6d4e974 in Digikam::TagsCache::getOrCreateTags (this=0x8688ab0, tagPaths=...) at /home/build/graphics/digikam/libs/database/tagscache.cpp:381 #7 0xb6d2d6ec in Digikam::ImageScanner::scanTags (this=0xb15b8cbc) at /home/build/graphics/digikam/libs/database/imagescanner.cpp:479 #8 0xb6d2eee2 in Digikam::ImageScanner::scanFile (this=0xb15b8cbc, mode=Digikam::ImageScanner::NewScan) at /home/build/graphics/digikam/libs/database/imagescanner.cpp:247 #9 0xb6d2faa0 in Digikam::ImageScanner::newFile (this=0xb15b8cbc, albumId=21) at /home/build/graphics/digikam/libs/database/imagescanner.cpp:102 #10 0xb6cd67f5 in Digikam::CollectionScanner::scanNewFile (this=0xb15b9304, info=..., albumId=21) at /home/build/graphics/digikam/libs/database/collectionscanner.cpp:756 #11 0xb6cd9cd6 in Digikam::CollectionScanner::scanAlbum (this=0xb15b9304, location=..., album=...) at /home/build/graphics/digikam/libs/database/collectionscanner.cpp:665 #12 0xb6cda013 in Digikam::CollectionScanner::scanAlbum (this=0xb15b9304, location=..., album=...) at /home/build/graphics/digikam/libs/database/collectionscanner.cpp:683 #13 0xb6cda013 in Digikam::CollectionScanner::scanAlbum (this=0xb15b9304, location=..., album=...) at /home/build/graphics/digikam/libs/database/collectionscanner.cpp:683 #14 0xb6cda013 in Digikam::CollectionScanner::scanAlbum (this=0xb15b9304, location=..., album=...) at /home/build/graphics/digikam/libs/database/collectionscanner.cpp:683 #15 0xb6cda618 in Digikam::CollectionScanner::scanAlbumRoot (this=0xb15b9304, location=...) at /home/build/graphics/digikam/libs/database/collectionscanner.cpp:479 #16 0xb6cdaf88 in Digikam::CollectionScanner::completeScan (this=0xb15b9304) at /home/build/graphics/digikam/libs/database/collectionscanner.cpp:250 #17 0x0838dd9f in Digikam::ScanController::run (this=0x866e178) at /home/build/graphics/digikam/digikam/scancontroller.cpp:541 #18 0xb521673f in ?? () from /usr/lib/qt4/libQtCore.so.4 #19 0xb51748df in start_thread () from /lib/libpthread.so.0
SVN commit 1115784 by mwiesweg: Set flags to false when info is updated. Some restructuring, disentangle locks. CCBUG: 234594 M +45 -43 tagscache.cpp WebSVN link: http://websvn.kde.org/?view=rev&revision=1115784
I have changed a bit here and there, but I'm not sure about this crash. Is any other thread involved as well? Is this really the thread where the crash hit?
I only have 2 threads : * 2 Thread 0xb15b9b70 (LWP 13709) 0xb5211095 in QMutex::lock() () from /usr/lib/qt4/libQtCore.so.4 1 Thread 0xb2cde720 (LWP 13705) 0xffffe424 in __kernel_vsyscall () The second one : #0 0xffffe424 in __kernel_vsyscall () #1 0xb4f45ca7 in poll () from /lib/libc.so.6 #2 0xb4998cbb in g_poll () from /usr/lib/libglib-2.0.so.0 #3 0x0000000a in ?? () #4 0x000062af in ?? () #5 0xb4a24ff4 in ?? () from /usr/lib/libglib-2.0.so.0 #6 0xb4a253b8 in ?? () from /usr/lib/libglib-2.0.so.0 #7 0xb4998c96 in g_poll () from /usr/lib/libglib-2.0.so.0 #8 0xb498b9c6 in ?? () from /usr/lib/libglib-2.0.so.0 #9 0x08db0530 in ?? () #10 0x0000000a in ?? () #11 0x000062af in ?? () #12 0x08db0530 in ?? () #13 0x0000000b in ?? () #14 0x00000002 in ?? () #15 0x086d3700 in ?? () #16 0xb4a253b8 in ?? () from /usr/lib/libglib-2.0.so.0 #17 0xb4a253e0 in ?? () from /usr/lib/libglib-2.0.so.0 #18 0xbfffcb24 in ?? () #19 0xb4a253e0 in ?? () from /usr/lib/libglib-2.0.so.0 #20 0x08595644 in ?? () #21 0x00000001 in ?? () #22 0x000062af in ?? () #23 0x08db0530 in ?? () #24 0xb4998c90 in g_pattern_match_string () from /usr/lib/libglib-2.0.so.0 #25 0xb51789c0 in ?? () from /lib/libpthread.so.0 #26 0xb5177410 in ?? () from /lib/libpthread.so.0 #27 0x08595644 in ?? () #28 0xb49b1b12 in g_thread_self () from /usr/lib/libglib-2.0.so.0 #29 0x08593538 in ?? () #30 0x000062af in ?? () #31 0x7fffffff in ?? () #32 0xb4a24ff4 in ?? () from /usr/lib/libglib-2.0.so.0 #33 0x08595640 in ?? () #34 0xb5177410 in ?? () from /lib/libpthread.so.0 #35 0xb4a25788 in ?? () from /usr/lib/libglib-2.0.so.0 #36 0xb498bc5f in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0 #37 0x00000001 in ?? () #38 0x085934b8 in ?? () #39 0x00000000 in ?? () Your patch fixed the crash.
It's slightly unsatisfactory not to know what really caused the crash, but when it's apparently fixed I close the report.