Bug 339152

Summary: Crash when adding XCF file to Digikam collection
Product: [Applications] digikam Reporter: vato <vato12003>
Component: Setup-CollectionsAssignee: Digikam Developers <digikam-bugs-null>
Status: RESOLVED FIXED    
Severity: critical CC: caulier.gilles
Priority: NOR    
Version: 4.3.0   
Target Milestone: ---   
Platform: openSUSE   
OS: Linux   
Latest Commit: Version Fixed In: 7.3.0
Sentry Crash Report:

Description vato 2014-09-17 18:02:52 UTC
The following behavior started after upgrade to Digikam 4.3.0. Earlier version did not show this behavior.

Variant A
1. Start Digikam
2. Add an XCF file created with GIMP 2.9 to any folder within your Digikam collection
3. Digikam crashes

Variant B
1. Place an XCF fiel created with GIMP 2.9 in any folder within your Digikam collection
2. Start Digikam
3. Digikam starts and then crashes immediately


Reproducible: Always




-- Backtrace:
Application: digiKam (digikam), signal: Segmentation fault
Using host libthread_db library "/lib64/libthread_db.so.1".
gobject.py: gdb was not built with custom backtrace support, disabling.
[Current thread is 1 (Thread 0x7f502cf6d900 (LWP 3916))]

Thread 10 (Thread 0x7f5007701700 (LWP 3917)):
#0  0x00007f50236180af in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f50264aeb66 in wait (time=18446744073709551615, this=0x15662f0) at thread/qwaitcondition_unix.cpp:86
#2  QWaitCondition::wait (this=<optimized out>, mutex=0x1566228, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:158
#3  0x00000000005fe6ae in ?? ()
#4  0x00007f50264ae68f in QThreadPrivate::start (arg=0x14dad20) at thread/qthread_unix.cpp:338
#5  0x00007f50236140db in start_thread () from /lib64/libpthread.so.0
#6  0x00007f50256c690d in clone () from /lib64/libc.so.6

Thread 9 (Thread 0x7f5006f00700 (LWP 3918)):
#0  0x00007f5023617560 in __pthread_mutex_unlock_usercnt () from /lib64/libpthread.so.0
#1  0x00007f501d526a11 in g_mutex_unlock () from /usr/lib64/libglib-2.0.so.0
#2  0x00007f501d4e4690 in g_main_context_prepare () from /usr/lib64/libglib-2.0.so.0
#3  0x00007f501d4e4f23 in ?? () from /usr/lib64/libglib-2.0.so.0
#4  0x00007f501d4e510c in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#5  0x00007f50265dad76 in QEventDispatcherGlib::processEvents (this=0x7f4ff80008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:427
#6  0x00007f50265acd0f in QEventLoop::processEvents (this=this@entry=0x7f5006effca0, flags=...) at kernel/qeventloop.cpp:149
#7  0x00007f50265ad005 in QEventLoop::exec (this=this@entry=0x7f5006effca0, flags=...) at kernel/qeventloop.cpp:204
#8  0x00007f50264abfef in QThread::exec (this=this@entry=0x15f15e0) at thread/qthread.cpp:536
#9  0x00007f502658e513 in QInotifyFileSystemWatcherEngine::run (this=0x15f15e0) at io/qfilesystemwatcher_inotify.cpp:256
#10 0x00007f50264ae68f in QThreadPrivate::start (arg=0x15f15e0) at thread/qthread_unix.cpp:338
#11 0x00007f50236140db in start_thread () from /lib64/libpthread.so.0
#12 0x00007f50256c690d in clone () from /lib64/libc.so.6

Thread 8 (Thread 0x7f50066ff700 (LWP 3921)):
#0  0x00007f50236180af in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f50264aeb66 in wait (time=18446744073709551615, this=0x1855db0) at thread/qwaitcondition_unix.cpp:86
#2  QWaitCondition::wait (this=this@entry=0x178e090, mutex=mutex@entry=0x178e088, time=time@entry=18446744073709551615) at thread/qwaitcondition_unix.cpp:158
#3  0x00007f502a28f87a in Digikam::ParkingThread::run (this=0x178e070) at /usr/src/debug/digikam-4.3.0/core/libs/threads/threadmanager.cpp:119
#4  0x00007f50264ae68f in QThreadPrivate::start (arg=0x178e070) at thread/qthread_unix.cpp:338
#5  0x00007f50236140db in start_thread () from /lib64/libpthread.so.0
#6  0x00007f50256c690d in clone () from /lib64/libc.so.6

Thread 7 (Thread 0x7f4ff1e2f700 (LWP 3922)):
#0  0x00007f5023618458 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f50264aeb44 in wait (time=30000, this=0x15cf520) at thread/qwaitcondition_unix.cpp:84
#2  QWaitCondition::wait (this=<optimized out>, mutex=mutex@entry=0x18b5468, time=30000) at thread/qwaitcondition_unix.cpp:158
#3  0x00007f50264a2235 in QThreadPoolThread::run (this=0x45f7270) at concurrent/qthreadpool.cpp:141
#4  0x00007f50264ae68f in QThreadPrivate::start (arg=0x45f7270) at thread/qthread_unix.cpp:338
#5  0x00007f50236140db in start_thread () from /lib64/libpthread.so.0
#6  0x00007f50256c690d in clone () from /lib64/libc.so.6

Thread 6 (Thread 0x7f4ff13ad700 (LWP 3923)):
#0  0x00007f5023618458 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f50264aeb44 in wait (time=30000, this=0x15cf520) at thread/qwaitcondition_unix.cpp:84
#2  QWaitCondition::wait (this=<optimized out>, mutex=mutex@entry=0x18b5468, time=30000) at thread/qwaitcondition_unix.cpp:158
#3  0x00007f50264a2235 in QThreadPoolThread::run (this=0x466f5a0) at concurrent/qthreadpool.cpp:141
#4  0x00007f50264ae68f in QThreadPrivate::start (arg=0x466f5a0) at thread/qthread_unix.cpp:338
#5  0x00007f50236140db in start_thread () from /lib64/libpthread.so.0
#6  0x00007f50256c690d in clone () from /lib64/libc.so.6

Thread 5 (Thread 0x7f4ff0bac700 (LWP 3924)):
#0  0x00007f5023618458 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f50264aeb44 in wait (time=30000, this=0x15cf520) at thread/qwaitcondition_unix.cpp:84
#2  QWaitCondition::wait (this=<optimized out>, mutex=mutex@entry=0x18b5468, time=30000) at thread/qwaitcondition_unix.cpp:158
#3  0x00007f50264a2235 in QThreadPoolThread::run (this=0x466f9d0) at concurrent/qthreadpool.cpp:141
#4  0x00007f50264ae68f in QThreadPrivate::start (arg=0x466f9d0) at thread/qthread_unix.cpp:338
#5  0x00007f50236140db in start_thread () from /lib64/libpthread.so.0
#6  0x00007f50256c690d in clone () from /lib64/libc.so.6

Thread 4 (Thread 0x7f4feb7fe700 (LWP 3926)):
#0  0x00007f5023618458 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f50264aeb44 in wait (time=30000, this=0x15cf520) at thread/qwaitcondition_unix.cpp:84
#2  QWaitCondition::wait (this=<optimized out>, mutex=mutex@entry=0x18b5468, time=30000) at thread/qwaitcondition_unix.cpp:158
#3  0x00007f50264a2235 in QThreadPoolThread::run (this=0x466fcd0) at concurrent/qthreadpool.cpp:141
#4  0x00007f50264ae68f in QThreadPrivate::start (arg=0x466fcd0) at thread/qthread_unix.cpp:338
#5  0x00007f50236140db in start_thread () from /lib64/libpthread.so.0
#6  0x00007f50256c690d in clone () from /lib64/libc.so.6

Thread 3 (Thread 0x7f4fea7fc700 (LWP 3928)):
#0  0x00007f5023618458 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f50264aeb44 in wait (time=30000, this=0x15cf520) at thread/qwaitcondition_unix.cpp:84
#2  QWaitCondition::wait (this=<optimized out>, mutex=mutex@entry=0x18b5468, time=30000) at thread/qwaitcondition_unix.cpp:158
#3  0x00007f50264a2235 in QThreadPoolThread::run (this=0x46743c0) at concurrent/qthreadpool.cpp:141
#4  0x00007f50264ae68f in QThreadPrivate::start (arg=0x46743c0) at thread/qthread_unix.cpp:338
#5  0x00007f50236140db in start_thread () from /lib64/libpthread.so.0
#6  0x00007f50256c690d in clone () from /lib64/libc.so.6

Thread 2 (Thread 0x7f4fe2ffd700 (LWP 3934)):
[KCrash Handler]
#5  Exiv2::PreviewManager::getPreviewImage (this=0x0, properties=...) at preview.cpp:1157
#6  0x00007f502ac83e72 in KExiv2Iface::KExiv2Previews::data(int) () from /usr/lib64/libkexiv2.so.11
#7  0x00007f502ac83fdb in KExiv2Iface::KExiv2Previews::image(int) () from /usr/lib64/libkexiv2.so.11
#8  0x00007f502a27950d in Digikam::ThumbnailCreator::createThumbnail (this=this@entry=0x3902030, info=..., detailRect=...) at /usr/src/debug/digikam-4.3.0/core/libs/threadimageio/thumbnailcreator.cpp:528
#9  0x00007f502a27c1a6 in Digikam::ThumbnailCreator::load (this=0x3902030, path=..., rect=..., pregenerate=pregenerate@entry=false) at /usr/src/debug/digikam-4.3.0/core/libs/threadimageio/thumbnailcreator.cpp:261
#10 0x00007f502a27cff2 in Digikam::ThumbnailCreator::load (this=<optimized out>, path=...) at /usr/src/debug/digikam-4.3.0/core/libs/threadimageio/thumbnailcreator.cpp:200
#11 0x00007f502a28b447 in Digikam::ThumbnailLoadingTask::execute (this=0x4994550) at /usr/src/debug/digikam-4.3.0/core/libs/threadimageio/thumbnailtask.cpp:172
#12 0x00007f502a2636c6 in Digikam::LoadSaveThread::run (this=0x3901fc0) at /usr/src/debug/digikam-4.3.0/core/libs/threadimageio/loadsavethread.cpp:136
#13 0x00007f502a2916be in Digikam::DynamicThread::DynamicThreadPriv::run (this=0x3902370) at /usr/src/debug/digikam-4.3.0/core/libs/threads/dynamicthread.cpp:186
#14 0x00007f50264a213e in QThreadPoolThread::run (this=0x4675da0) at concurrent/qthreadpool.cpp:107
#15 0x00007f50264ae68f in QThreadPrivate::start (arg=0x4675da0) at thread/qthread_unix.cpp:338
#16 0x00007f50236140db in start_thread () from /lib64/libpthread.so.0
#17 0x00007f50256c690d in clone () from /lib64/libc.so.6

Thread 1 (Thread 0x7f502cf6d900 (LWP 3916)):
#0  0x00007f50236180af in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f50264aeb66 in wait (time=18446744073709551615, this=0x39023f0) at thread/qwaitcondition_unix.cpp:86
#2  QWaitCondition::wait (this=<optimized out>, mutex=0x39023a0, time=time@entry=18446744073709551615) at thread/qwaitcondition_unix.cpp:158
#3  0x00007f502a290d28 in Digikam::DynamicThread::wait (this=this@entry=0x3901fc0, locker=...) at /usr/src/debug/digikam-4.3.0/core/libs/threads/dynamicthread.cpp:351
#4  0x00007f502a290da4 in Digikam::DynamicThread::shutDown (this=this@entry=0x3901fc0) at /usr/src/debug/digikam-4.3.0/core/libs/threads/dynamicthread.cpp:222
#5  0x00007f502a266cd1 in Digikam::ManagedLoadSaveThread::shutDown (this=this@entry=0x3901fc0) at /usr/src/debug/digikam-4.3.0/core/libs/threadimageio/managedloadsavethread.cpp:94
#6  0x00007f502a27efdf in Digikam::ThumbnailLoadThread::~ThumbnailLoadThread (this=0x3901fc0, __in_chrg=<optimized out>) at /usr/src/debug/digikam-4.3.0/core/libs/threadimageio/thumbnailloadthread.cpp:177
#7  0x00007f502a27f119 in Digikam::ThumbnailLoadThread::~ThumbnailLoadThread (this=0x3901fc0, __in_chrg=<optimized out>) at /usr/src/debug/digikam-4.3.0/core/libs/threadimageio/thumbnailloadthread.cpp:180
#8  0x00007f50256173d9 in __run_exit_handlers () from /lib64/libc.so.6
#9  0x00007f5025617425 in exit () from /lib64/libc.so.6
#10 0x00007f5027023298 in ?? () from /usr/lib64/libQtGui.so.4
#11 0x00007f5027cd21a0 in KApplication::xioErrhandler(_XDisplay*) () from /usr/lib64/libkdeui.so.5
#12 0x00007f5023bb53fe in _XIOError () from /usr/lib64/libX11.so.6
#13 0x00007f5023bb2ded in _XEventsQueued () from /usr/lib64/libX11.so.6
#14 0x00007f5023ba4ddb in XEventsQueued () from /usr/lib64/libX11.so.6
#15 0x00007f50270593ac in ?? () from /usr/lib64/libQtGui.so.4
#16 0x00007f501d4e4a71 in g_main_context_check () from /usr/lib64/libglib-2.0.so.0
#17 0x00007f501d4e4f9b in ?? () from /usr/lib64/libglib-2.0.so.0
#18 0x00007f501d4e510c in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#19 0x00007f50265dad55 in QEventDispatcherGlib::processEvents (this=0x1325d20, flags=...) at kernel/qeventdispatcher_glib.cpp:425
#20 0x00007f5027059936 in ?? () from /usr/lib64/libQtGui.so.4
#21 0x00007f50265acd0f in QEventLoop::processEvents (this=this@entry=0x7fffae56b020, flags=...) at kernel/qeventloop.cpp:149
#22 0x00007f50265ad005 in QEventLoop::exec (this=this@entry=0x7fffae56b020, flags=...) at kernel/qeventloop.cpp:204
#23 0x00007f50265b213b in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1221
#24 0x000000000049f870 in ?? ()
#25 0x00007f5025600be5 in __libc_start_main () from /lib64/libc.so.6
#26 0x00000000004a1ec1 in _start ()

Possible duplicates by query: bug 339088.
Comment 1 Christoph Feck 2014-09-17 22:46:22 UTC

*** This bug has been marked as a duplicate of bug 339144 ***
Comment 2 caulier.gilles 2020-05-09 12:35:29 UTC
Git commit d9a57550ee4d08f1ab612723b315348af9bab9da by Gilles Caulier.
Committed on 09/05/2020 at 12:31.
Pushed by cgilles into branch 'master'.

Switch all digiKam bundles to last 5.70 which now support new Gimp XCF file format.
See KF5 release announcement : https://kde.org/announcements/kde-frameworks-5.70.0.php
"KImageFormats: Add support for modern Gimp images/XCF files"
This will permit to digiKam and Showfoto to show XCF thumbnail and load preview/full image (read only)
Related: bug 309465, bug 186641, bug 224697, bug 250003, bug 368444, bug 412339

M  +3    -3    project/bundles/3rdparty/ext_kf5_frameworks/CMakeLists.txt

https://invent.kde.org/kde/digikam/commit/d9a57550ee4d08f1ab612723b315348af9bab9da
Comment 3 caulier.gilles 2021-05-09 14:52:53 UTC
Not reproducible with digiKam 7.3.0 and Exiv2 0.27.4