Bug 297549

Summary: Digikam crashes during batch raw converting
Product: [Applications] digikam Reporter: Jan Kriho <Erbureth>
Component: Metadata-RawAssignee: Digikam Developers <digikam-bugs-null>
Status: RESOLVED FIXED    
Severity: crash CC: caulier.gilles
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Debian testing   
OS: Linux   
Latest Commit: Version Fixed In: 2.6.0
Sentry Crash Report:

Description Jan Kriho 2012-04-05 17:48:18 UTC
Application: digikam (2.6.0-beta2)
KDE Platform Version: 4.7.4 (4.7.4)
Qt Version: 4.8.0
Operating System: Linux 3.4.0-rc1 x86_64
Distribution: Debian GNU/Linux testing (wheezy)

-- Information about the crash:
- What I was doing when the application crashed:
Select images to process, start Tools->Batch RAW processing, hit "Start". 
Digikam crashes during processing of first image

The crash can be reproduced every time.

-- Backtrace:
Application: digiKam (digikam), signal: Aborted
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
__lll_lock_wait_private () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:97
[Current thread is 1 (Thread 0x7f17c3b75a00 (LWP 6918))]

Thread 7 (Thread 0x7f179e1b2700 (LWP 6919)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007f17bddcc83b in wait (time=18446744073709551615, this=0x171c7c0) at thread/qwaitcondition_unix.cpp:86
#2  QWaitCondition::wait (this=<optimized out>, mutex=0x171c6b8, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:158
#3  0x00000000005ef8cb in Digikam::ScanController::run() ()
#4  0x00007f17bddcc32b in QThreadPrivate::start (arg=0x1633650) at thread/qthread_unix.cpp:298
#5  0x00007f17b89dfb50 in start_thread (arg=<optimized out>) at pthread_create.c:304
#6  0x00007f17bd07c90d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#7  0x0000000000000000 in ?? ()

Thread 6 (Thread 0x7f179d9b1700 (LWP 6920)):
#0  0x00007fff1d1ff82f in clock_gettime ()
#1  0x00007f17b5013e86 in *__GI_clock_gettime (clock_id=1, tp=0x7f179d9b08c0) at ../sysdeps/unix/clock_gettime.c:116
#2  0x00007f17bde229a4 in do_gettime (frac=0x7f179d9b08d8, sec=0x7f179d9b08d0) at tools/qelapsedtimer_unix.cpp:123
#3  qt_gettime () at tools/qelapsedtimer_unix.cpp:140
#4  0x00007f17bdefa55d in QTimerInfoList::updateCurrentTime (this=0x173aa60) at kernel/qeventdispatcher_unix.cpp:343
#5  0x00007f17bdefa893 in QTimerInfoList::timerWait (this=0x173aa60, tm=...) at kernel/qeventdispatcher_unix.cpp:450
#6  0x00007f17bdef92dc in timerSourcePrepareHelper (src=<optimized out>, timeout=0x7f179d9b09bc) at kernel/qeventdispatcher_glib.cpp:136
#7  0x00007f17bdef9385 in timerSourcePrepare (source=<optimized out>, timeout=<optimized out>) at kernel/qeventdispatcher_glib.cpp:169
#8  0x00007f17b63a6672 in g_main_context_prepare () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#9  0x00007f17b63a746d in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#10 0x00007f17b63a7a99 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#11 0x00007f17bdef9df6 in QEventDispatcherGlib::processEvents (this=0x1739520, flags=...) at kernel/qeventdispatcher_glib.cpp:426
#12 0x00007f17bdec95f2 in QEventLoop::processEvents (this=<optimized out>, flags=...) at kernel/qeventloop.cpp:149
#13 0x00007f17bdec9847 in QEventLoop::exec (this=0x7f179d9b0b50, flags=...) at kernel/qeventloop.cpp:204
#14 0x00007f17bddc9307 in QThread::exec (this=<optimized out>) at thread/qthread.cpp:501
#15 0x00007f17bdea93af in QInotifyFileSystemWatcherEngine::run (this=0x1737920) at io/qfilesystemwatcher_inotify.cpp:248
#16 0x00007f17bddcc32b in QThreadPrivate::start (arg=0x1737920) at thread/qthread_unix.cpp:298
#17 0x00007f17b89dfb50 in start_thread (arg=<optimized out>) at pthread_create.c:304
#18 0x00007f17bd07c90d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#19 0x0000000000000000 in ?? ()

Thread 5 (Thread 0x7f179d1b0700 (LWP 6922)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007f17bddcc83b in wait (time=18446744073709551615, this=0x198c5e0) at thread/qwaitcondition_unix.cpp:86
#2  QWaitCondition::wait (this=<optimized out>, mutex=0x19900e8, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:158
#3  0x00007f17c134dda3 in Digikam::ParkingThread::run() () from /usr/lib/libdigikamcore.so.2
#4  0x00007f17bddcc32b in QThreadPrivate::start (arg=0x19900d0) at thread/qthread_unix.cpp:298
#5  0x00007f17b89dfb50 in start_thread (arg=<optimized out>) at pthread_create.c:304
#6  0x00007f17bd07c90d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#7  0x0000000000000000 in ?? ()

Thread 4 (Thread 0x7f17933fa700 (LWP 6948)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007f17bddcc83b in wait (time=18446744073709551615, this=0x4c39130) at thread/qwaitcondition_unix.cpp:86
#2  QWaitCondition::wait (this=<optimized out>, mutex=0x4c39258, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:158
#3  0x00007f1791982d44 in KIPIPlugins::KPRawThumbThread::run() () from /usr/lib/libkipiplugins.so.2
#4  0x00007f17bddcc32b in QThreadPrivate::start (arg=0x4089a10) at thread/qthread_unix.cpp:298
#5  0x00007f17b89dfb50 in start_thread (arg=<optimized out>) at pthread_create.c:304
#6  0x00007f17bd07c90d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#7  0x0000000000000000 in ?? ()

Thread 3 (Thread 0x7f177eec8700 (LWP 6960)):
[KCrash Handler]
#6  0x00007f17bcfd6475 in *__GI_raise (sig=<optimized out>) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#7  0x00007f17bcfd96f0 in *__GI_abort () at abort.c:92
#8  0x00007f17bd01026b in __libc_message (do_abort=<optimized out>, fmt=<optimized out>) at ../sysdeps/unix/sysv/linux/libc_fatal.c:189
#9  0x00007f17bd019ab6 in malloc_printerr (action=3, str=0x7f17bd0ed7cb "corrupted double-linked list", ptr=<optimized out>) at malloc.c:6283
#10 0x00007f17bd01b4b7 in _int_free (av=0x7f1798000020, p=0x7f17982e5ff0) at malloc.c:4964
#11 0x00007f17bd01e7ec in *__GI___libc_free (mem=<optimized out>) at malloc.c:3738
#12 0x00007f17b98b4f90 in deallocate (__p=<optimized out>, this=<optimized out>) at /usr/include/c++/4.6/ext/new_allocator.h:98
#13 _M_deallocate (__p=<optimized out>, this=<optimized out>, __n=<optimized out>) at /usr/include/c++/4.6/bits/stl_vector.h:156
#14 ~_Vector_base (this=<optimized out>, __in_chrg=<optimized out>) at /usr/include/c++/4.6/bits/stl_vector.h:142
#15 ~vector (this=0x7f17982d2780, __in_chrg=<optimized out>) at /usr/include/c++/4.6/bits/stl_vector.h:351
#16 Exiv2::DataValue::~DataValue (this=<optimized out>, __in_chrg=<optimized out>) at value.cpp:177
#17 0x00007f17b98b4fa9 in Exiv2::DataValue::~DataValue (this=0x7f17982d2770, __in_chrg=<optimized out>) at value.cpp:179
#18 0x00007f17b985c5f5 in ~auto_ptr (this=0x7f1798246310, __in_chrg=<optimized out>) at /usr/include/c++/4.6/backward/auto_ptr.h:170
#19 Exiv2::Iptcdatum::~Iptcdatum (this=0x7f1798246300, __in_chrg=<optimized out>) at iptc.cpp:105
#20 0x00007f17c1ae5588 in KExiv2Iface::KExiv2::KExiv2Priv::~KExiv2Priv() () from /usr/lib/libkexiv2.so.10
#21 0x00007f17c1ade3b0 in KExiv2Iface::KExiv2::~KExiv2() () from /usr/lib/libkexiv2.so.10
#22 0x00007f179197e848 in KIPIPlugins::KPMetadata::~KPMetadata() () from /usr/lib/libkipiplugins.so.2
#23 0x00007f1789ee491f in KIPIRawConverterPlugin::RawDecodingIface::loadedFromDcraw(QString const&, QString&, KIPIPlugins::KPSaveSettingsWidget::OutputFormat, QByteArray const&, int, int, int, KDcrawIface::RawDecodingSettings const&) () from /usr/lib/kde4/kipiplugin_rawconverter.so
#24 0x00007f1789ee3e39 in KIPIRawConverterPlugin::RawDecodingIface::decodeRAWImage(QString const&, QString&, KIPIPlugins::KPSaveSettingsWidget::OutputFormat, KDcrawIface::RawDecodingSettings const&) () from /usr/lib/kde4/kipiplugin_rawconverter.so
#25 0x00007f1789ee626e in KIPIRawConverterPlugin::ActionThread::run() () from /usr/lib/kde4/kipiplugin_rawconverter.so
#26 0x00007f17bddcc32b in QThreadPrivate::start (arg=0x45ef1e0) at thread/qthread_unix.cpp:298
#27 0x00007f17b89dfb50 in start_thread (arg=<optimized out>) at pthread_create.c:304
#28 0x00007f17bd07c90d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#29 0x0000000000000000 in ?? ()

Thread 2 (Thread 0x7f1788402700 (LWP 6962)):
#0  0x00007f17b936f7e6 in ?? () from /usr/lib/x86_64-linux-gnu/libgomp.so.1
#1  0x00007f17b936e07e in ?? () from /usr/lib/x86_64-linux-gnu/libgomp.so.1
#2  0x00007f17b89dfb50 in start_thread (arg=<optimized out>) at pthread_create.c:304
#3  0x00007f17bd07c90d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#4  0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7f17c3b75a00 (LWP 6918)):
#0  __lll_lock_wait_private () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:97
#1  0x00007f17bd0203f8 in _L_lock_9627 () from /lib/x86_64-linux-gnu/libc.so.6
#2  0x00007f17bd01e7e1 in *__GI___libc_free (mem=0x7f1798000020) at malloc.c:3736
#3  0x00007f17bdee31ed in QObject::~QObject (this=0x277d650, __in_chrg=<optimized out>) at kernel/qobject.cpp:891
#4  0x00007f17c134f925 in Digikam::DynamicThread::~DynamicThread() () from /usr/lib/libdigikamcore.so.2
#5  0x00007f17c1308639 in Digikam::LoadSaveThread::~LoadSaveThread() () from /usr/lib/libdigikamcore.so.2
#6  0x00007f17c130a045 in Digikam::ManagedLoadSaveThread::~ManagedLoadSaveThread() () from /usr/lib/libdigikamcore.so.2
#7  0x00007f17c13242f1 in Digikam::ThumbnailLoadThread::~ThumbnailLoadThread() () from /usr/lib/libdigikamcore.so.2
#8  0x00007f17c1324350 in Digikam::ThumbnailLoadThread::~ThumbnailLoadThread() () from /usr/lib/libdigikamcore.so.2
#9  0x00007f17c1323ed1 in Digikam::._241::destroy() () from /usr/lib/libdigikamcore.so.2
#10 0x00007f17c115c885 in KCleanUpGlobalStatic::~KCleanUpGlobalStatic() () from /usr/lib/libdigikamcore.so.2
#11 0x00007f17bcfdadf2 in __run_exit_handlers (status=1, listp=0x7f17bd3254c8, run_list_atexit=true) at exit.c:78
#12 0x00007f17bcfdae45 in *__GI_exit (status=-1744830432) at exit.c:100
#13 0x00007f17be9599c8 in qt_xio_errhandler () at kernel/qapplication_x11.cpp:770
#14 0x00007f17bf649e08 in KApplication::xioErrhandler (this=0x7fff1d18fd90, dpy=0x15a99e0) at ../../kdeui/kernel/kapplication.cpp:419
#15 0x00007f17bb5b731e in _XIOError () from /usr/lib/x86_64-linux-gnu/libX11.so.6
#16 0x00007f17bb5b4b9d in _XEventsQueued () from /usr/lib/x86_64-linux-gnu/libX11.so.6
#17 0x00007f17bb5a551f in XEventsQueued () from /usr/lib/x86_64-linux-gnu/libX11.so.6
#18 0x00007f17be99231c in x11EventSourceCheck (s=<optimized out>) at kernel/qguieventdispatcher_glib.cpp:85
#19 0x00007f17b63a6d7e in g_main_context_check () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#20 0x00007f17b63a75f2 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#21 0x00007f17b63a7a99 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#22 0x00007f17bdef9d8f in QEventDispatcherGlib::processEvents (this=0x152fb60, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#23 0x00007f17be9924de in QGuiEventDispatcherGlib::processEvents (this=<optimized out>, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#24 0x00007f17bdec95f2 in QEventLoop::processEvents (this=<optimized out>, flags=...) at kernel/qeventloop.cpp:149
#25 0x00007f17bdec9847 in QEventLoop::exec (this=0x7fff1d18fc00, flags=...) at kernel/qeventloop.cpp:204
#26 0x00007f17bdece8d7 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1148
#27 0x00000000006c7252 in main ()

Possible duplicates by query: bug 289341.

Reported using DrKonqi
Comment 1 caulier.gilles 2012-04-05 18:46:16 UTC
Crash is in Exiv2 shared library. Which version of libexiv2 you use ? Go to Help/Components Info dialog for details...

Gilles Caulier
Comment 2 Jan Kriho 2012-04-05 19:17:14 UTC
libexiv2-9 version is 0.20-2.1 (from Debian Wheezy/Sid)

Here is the listing of Help->Components:

digiKam version 2.6.0-beta2
Exiv2 can write to Jp2: Yes
Exiv2 can write to Jpeg: Yes
Exiv2 can write to Pgf: Yes
Exiv2 can write to Png: Yes
Exiv2 can write to Tiff: Yes
Exiv2 supports XMP metadata: Yes
LibCImg: 130
LibClapack: internal library
LibExiv2: 0.20
LibJPEG: 80
LibJasper: 1.900.1
LibKDE: 4.7.4 (4.7.4)
LibKExiv2: 2.0.0
LibKGeoMap: 2.0.0
LibKdcraw: 2.0.0
LibLCMS: 119
LibPGF: 6.11.42 - internal library
LibPNG: 1.2.47
LibQt: 4.8.0
LibRaw: 0.13.5
LibTIFF: LIBTIFF, Version 3.9.6 Copyright (c) 1988-1996 Sam Leffler Copyright (c) 1991-1996 Silicon Graphics, Inc.
Marble Widget: 0.12.2 (stable release)
Parallelized demosaicing: Yes
Database backend: QSQLITE
LibGphoto2: 2.4.13
LibKface: 2.0.0
LibKipi: 1.2.0
LibOpenCV: 2.3.1
Libface: 0.2
Comment 3 caulier.gilles 2012-04-05 19:35:33 UTC
Last Exiv2 stable is 0.21. PLease update and try again...

Gilles Caulier
Comment 4 Jan Kriho 2012-04-05 20:13:45 UTC
I'll try, however I am limitedy by http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=656829
Comment 5 Jan Kriho 2012-05-12 19:56:46 UTC
Version 0.23 of Exiv2 fixes the issue.