Bug 340696

Summary: Digikam crash
Product: digikam Reporter: Kenneth Ingham <kdebugs>
Component: Metadata-EngineAssignee: Digikam Developers <digikam-bugs-null>
Status: RESOLVED FIXED    
Severity: crash CC: caulier.gilles
Priority: NOR Keywords: drkonqi
Version: 4.4.0   
Target Milestone: ---   
Platform: openSUSE RPMs   
OS: Linux   
Latest Commit: Version Fixed In: 7.3.0
Attachments: gdb of crash

Description Kenneth Ingham 2014-11-06 20:25:10 UTC
Application: digikam (4.4.0)
KDE Platform Version: 4.14.2
Qt Version: 4.8.6
Operating System: Linux 3.16.6-2-desktop x86_64
Distribution: "openSUSE 13.2 (Harlequin) (x86_64)"

-- Information about the crash:
Entered a new directory and it crashed as displaying the images in it.

The crash can be reproduced sometimes.

-- Backtrace:
Application: digiKam (digikam), signal: Aborted
Using host libthread_db library "/lib64/libthread_db.so.1".
[Current thread is 1 (Thread 0x7f9c3af50880 (LWP 11715))]

Thread 6 (Thread 0x7f9c1b874700 (LWP 11716)):
#0  0x00007f9c33a2f3cd in poll () at /lib64/libc.so.6
#1  0x00007f9c1c2e4268 in  () at /usr/lib64/libusb-1.0.so.0
#2  0x00007f9c319850a4 in start_thread () at /lib64/libpthread.so.0
#3  0x00007f9c33a377fd in clone () at /lib64/libc.so.6

Thread 5 (Thread 0x7f9c1502b700 (LWP 11717)):
#0  0x00007f9c3198905f in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0
#1  0x00007f9c34818c86 in QWaitCondition::wait(QMutex*, unsigned long) (time=18446744073709551615, this=0x11cc6a0) at thread/qwaitcondition_unix.cpp:86
#2  0x00007f9c34818c86 in QWaitCondition::wait(QMutex*, unsigned long) (this=this@entry=0x11cc5b0, mutex=mutex@entry=0x11cc5a8, time=time@entry=18446744073709551615) at thread/qwaitcondition_unix.cpp:158
#3  0x0000000000602f2e in Digikam::ScanController::run() (this=0x1282e70) at /usr/src/debug/digikam-4.4.0/core/app/database/scancontroller.cpp:725
#4  0x00007f9c3481879f in QThreadPrivate::start(void*) (arg=0x1282e70) at thread/qthread_unix.cpp:349
#5  0x00007f9c319850a4 in start_thread () at /lib64/libpthread.so.0
#6  0x00007f9c33a377fd in clone () at /lib64/libc.so.6

Thread 4 (Thread 0x7f9c1482a700 (LWP 11718)):
#0  0x00007f9c33a2b49d in read () at /lib64/libc.so.6
#1  0x00007f9c2bad0750 in  () at /usr/lib64/libglib-2.0.so.0
#2  0x00007f9c2ba8f714 in g_main_context_check () at /usr/lib64/libglib-2.0.so.0
#3  0x00007f9c2ba8fb7b in  () at /usr/lib64/libglib-2.0.so.0
#4  0x00007f9c2ba8fcec in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0
#5  0x00007f9c349470de in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7f9c080008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:452
#6  0x00007f9c34918e6f in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7f9c14829d20, flags=...) at kernel/qeventloop.cpp:149
#7  0x00007f9c34919165 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7f9c14829d20, flags=...) at kernel/qeventloop.cpp:204
#8  0x00007f9c348160bf in QThread::exec() (this=this@entry=0x12c51b0) at thread/qthread.cpp:538
#9  0x00007f9c348fa783 in QInotifyFileSystemWatcherEngine::run() (this=0x12c51b0) at io/qfilesystemwatcher_inotify.cpp:265
#10 0x00007f9c3481879f in QThreadPrivate::start(void*) (arg=0x12c51b0) at thread/qthread_unix.cpp:349
#11 0x00007f9c319850a4 in start_thread () at /lib64/libpthread.so.0
#12 0x00007f9c33a377fd in clone () at /lib64/libc.so.6

Thread 3 (Thread 0x7f9c0dfeb700 (LWP 11730)):
#0  0x00007f9c33a2f3cd in poll () at /lib64/libc.so.6
#1  0x00007f9c2ba8fbe4 in  () at /usr/lib64/libglib-2.0.so.0
#2  0x00007f9c2ba8fcec in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0
#3  0x00007f9c349470de in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7f9bfc0008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:452
#4  0x00007f9c34918e6f in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7f9c0dfead20, flags=...) at kernel/qeventloop.cpp:149
#5  0x00007f9c34919165 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7f9c0dfead20, flags=...) at kernel/qeventloop.cpp:204
#6  0x00007f9c348160bf in QThread::exec() (this=this@entry=0x14b2e80) at thread/qthread.cpp:538
#7  0x00007f9c348fa783 in QInotifyFileSystemWatcherEngine::run() (this=0x14b2e80) at io/qfilesystemwatcher_inotify.cpp:265
#8  0x00007f9c3481879f in QThreadPrivate::start(void*) (arg=0x14b2e80) at thread/qthread_unix.cpp:349
#9  0x00007f9c319850a4 in start_thread () at /lib64/libpthread.so.0
#10 0x00007f9c33a377fd in clone () at /lib64/libc.so.6

Thread 2 (Thread 0x7f9bf77fd700 (LWP 13168)):
[KCrash Handler]
#4  0x00007f9c33987187 in raise () at /lib64/libc.so.6
#5  0x00007f9c33988538 in abort () at /lib64/libc.so.6
#6  0x00007f9c33980126 in __assert_fail_base () at /lib64/libc.so.6
#7  0x00007f9c339801d2 in  () at /lib64/libc.so.6
#8  0x00007f9c31f2261c in  () at /usr/lib64/libX11.so.6
#9  0x00007f9c31f09056 in XGetWindowProperty () at /usr/lib64/libX11.so.6
#10 0x00007f9c31f07f3e in XGetWMHints () at /usr/lib64/libX11.so.6
#11 0x00007f9c353b989c in QWidgetPrivate::setWindowIcon_sys(bool) () at /usr/lib64/libQtGui.so.4
#12 0x00007f9c3536eaf5 in QWidget::create(unsigned long, bool, bool) () at /usr/lib64/libQtGui.so.4
#13 0x00007f9c3536f20b in QWidget::winId() const () at /usr/lib64/libQtGui.so.4
#14 0x00007f9c35fa52ef in KDialog::setPlainCaption(QString const&) () at /usr/lib64/libkdeui.so.5
#15 0x00007f9c35fa4692 in  () at /usr/lib64/libkdeui.so.5
#16 0x00007f9c35fa47f2 in KDialog::KDialog(QWidget*, QFlags<Qt::WindowType>) () at /usr/lib64/libkdeui.so.5
#17 0x00007f9c35fb8295 in KMessageBox::informationListWId(unsigned long, QString const&, QStringList const&, QString const&, QString const&, QFlags<KMessageBox::Option>) () at /usr/lib64/libkdeui.so.5
#18 0x00007f9c35fb8564 in KMessageBox::informationWId(unsigned long, QString const&, QString const&, QString const&, QFlags<KMessageBox::Option>) () at /usr/lib64/libkdeui.so.5
#19 0x00007f9c35fb8851 in KMessageBox::messageBoxWId(unsigned long, KMessageBox::DialogType, QString const&, QString const&, KGuiItem const&, KGuiItem const&, KGuiItem const&, QString const&, QFlags<KMessageBox::Option>) () at /usr/lib64/libkdeui.so.5
#20 0x00007f9c35fb8ab5 in KMessageBox::queuedMessageBoxWId(unsigned long, KMessageBox::DialogType, QString const&, QString const&) () at /usr/lib64/libkdeui.so.5
#21 0x00007f9c34d9624a in KMessage::message(KMessage::MessageType, QString const&, QString const&) () at /usr/lib64/libkdecore.so.5
#22 0x00007f9c34d89bdc in  () at /usr/lib64/libkdecore.so.5
#23 0x00007f9c348a85b0 in QIODevice::write(char const*, long long) (this=0x7f9bd40c8760, data=0x7f9bd416a048 "digikam(11715)/KEXIV2: Cannot load metadata using Exiv2   (Error # 11 :  /home/ingham/Photos/Models-need-processing/Samantha-2014-06-03/img_67665.cr2: The file contains data of an unknown image type ", maxSize=<optimized out>) at io/qiodevice.cpp:1371
#24 0x00007f9c348b7bdd in QTextStreamPrivate::flushWriteBuffer() (data=..., this=<optimized out>) at ../../src/corelib/io/qiodevice.h:127
#25 0x00007f9c348b7bdd in QTextStreamPrivate::flushWriteBuffer() (this=this@entry=0x7f9bd4168ae0) at io/qtextstream.cpp:681
#26 0x00007f9c348c07c1 in QTextStream::~QTextStream() (this=0x7f9bd416e250, __in_chrg=<optimized out>) at io/qtextstream.cpp:1149
#27 0x00007f9c38c83866 in KExiv2Iface::KExiv2::Private::printExiv2ExceptionError(QString const&, Exiv2::BasicError<char>&) () at /usr/lib64/libkexiv2.so.11
#28 0x00007f9c38cb8a21 in KExiv2Iface::KExiv2Previews::KExiv2Previews(QString const&) () at /usr/lib64/libkexiv2.so.11
#29 0x00007f9c385f1861 in Digikam::ThumbnailCreator::createThumbnail(Digikam::ThumbnailInfo const&, QRect const&) const (this=this@entry=0x16b8000, info=..., detailRect=...) at /usr/src/debug/digikam-4.4.0/core/libs/threadimageio/thumbnailcreator.cpp:531
#30 0x00007f9c385f4506 in Digikam::ThumbnailCreator::load(QString const&, QRect const&, bool) const (this=0x16b8000, path=..., rect=..., pregenerate=pregenerate@entry=true) at /usr/src/debug/digikam-4.4.0/core/libs/threadimageio/thumbnailcreator.cpp:262
#31 0x00007f9c385f4e50 in Digikam::ThumbnailCreator::pregenerate(QString const&) const (this=<optimized out>, path=...) at /usr/src/debug/digikam-4.4.0/core/libs/threadimageio/thumbnailcreator.cpp:185
#32 0x00007f9c38603830 in Digikam::ThumbnailLoadingTask::execute() (this=0x66f04d0) at /usr/src/debug/digikam-4.4.0/core/libs/threadimageio/thumbnailtask.cpp:82
#33 0x00007f9c385dbab6 in Digikam::LoadSaveThread::run() (this=0x14f0770) at /usr/src/debug/digikam-4.4.0/core/libs/threadimageio/loadsavethread.cpp:136
#34 0x00007f9c38609a4e in Digikam::DynamicThread::DynamicThreadPriv::run() (this=0x16a5810) at /usr/src/debug/digikam-4.4.0/core/libs/threads/dynamicthread.cpp:186
#35 0x00007f9c3480c6ae in QThreadPoolThread::run() (this=0x2d090b0) at concurrent/qthreadpool.cpp:108
#36 0x00007f9c3481879f in QThreadPrivate::start(void*) (arg=0x2d090b0) at thread/qthread_unix.cpp:349
#37 0x00007f9c319850a4 in start_thread () at /lib64/libpthread.so.0
#38 0x00007f9c33a377fd in clone () at /lib64/libc.so.6

Thread 1 (Thread 0x7f9c3af50880 (LWP 11715)):
#0  0x00007f9c3198905f in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0
#1  0x00007f9c34818c86 in QWaitCondition::wait(QMutex*, unsigned long) (time=18446744073709551615, this=0x1501610) at thread/qwaitcondition_unix.cpp:86
#2  0x00007f9c34818c86 in QWaitCondition::wait(QMutex*, unsigned long) (this=this@entry=0x14b1ea0, mutex=mutex@entry=0x14b1e78, time=time@entry=18446744073709551615) at thread/qwaitcondition_unix.cpp:158
#3  0x00007f9c3480b912 in QThreadPoolPrivate::waitForDone(int) (this=0x14b1df0, msecs=msecs@entry=-1) at concurrent/qthreadpool.cpp:295
#4  0x00007f9c3480cd75 in QThreadPool::~QThreadPool() (this=0x16e38a0, __in_chrg=<optimized out>) at concurrent/qthreadpool.cpp:438
#5  0x00007f9c3480cda9 in QThreadPool::~QThreadPool() (this=0x16e38a0, __in_chrg=<optimized out>) at concurrent/qthreadpool.cpp:440
#6  0x00007f9c34930ae8 in QObjectPrivate::deleteChildren() (this=this@entry=0x169d310) at kernel/qobject.cpp:1944
#7  0x00007f9c3493307f in QObject::~QObject() (this=0x1664be0, __in_chrg=<optimized out>) at kernel/qobject.cpp:954
#8  0x00007f9c38606bd7 in destroy() (this=0x1664be0, __in_chrg=<optimized out>) at /usr/src/debug/digikam-4.4.0/core/libs/threads/threadmanager.cpp:236
#9  0x00007f9c38606bd7 in destroy() () at /usr/src/debug/digikam-4.4.0/core/libs/threads/threadmanager.cpp:241
#10 0x00007f9c33989bf9 in __run_exit_handlers () at /lib64/libc.so.6
#11 0x00007f9c33989c45 in  () at /lib64/libc.so.6
#12 0x00007f9c3538efc8 in  () at /usr/lib64/libQtGui.so.4
#13 0x00007f9c3603f790 in KApplication::xioErrhandler(_XDisplay*) () at /usr/lib64/libkdeui.so.5
#14 0x00007f9c31f243be in _XIOError () at /usr/lib64/libX11.so.6
#15 0x00007f9c31f2253a in _XReply () at /usr/lib64/libX11.so.6
#16 0x00007f9c31f1f6b3 in XTranslateCoordinates () at /usr/lib64/libX11.so.6
#17 0x00007f9c353b3452 in QWidgetPrivate::mapFromGlobal(QPoint const&) const () at /usr/lib64/libQtGui.so.4
#18 0x00007f9c353b33d9 in QWidgetPrivate::mapFromGlobal(QPoint const&) const () at /usr/lib64/libQtGui.so.4
#19 0x00007f9c353b33d9 in QWidgetPrivate::mapFromGlobal(QPoint const&) const () at /usr/lib64/libQtGui.so.4
#20 0x00007f9c353b33d9 in QWidgetPrivate::mapFromGlobal(QPoint const&) const () at /usr/lib64/libQtGui.so.4
#21 0x00007f9c353b34ad in QWidget::mapFromGlobal(QPoint const&) const () at /usr/lib64/libQtGui.so.4
#22 0x00007f9c353286a2 in QApplicationPrivate::pickMouseReceiver(QWidget*, QPoint const&, QPoint&, QEvent::Type, QFlags<Qt::MouseButton>, QWidget*, QWidget*) () at /usr/lib64/libQtGui.so.4
#23 0x00007f9c3539fc1c in  () at /usr/lib64/libQtGui.so.4
#24 0x00007f9c3539e70c in QApplication::x11ProcessEvent(_XEvent*) () at /usr/lib64/libQtGui.so.4
#25 0x00007f9c353c55c2 in  () at /usr/lib64/libQtGui.so.4
#26 0x00007f9c2ba8fa04 in g_main_context_dispatch () at /usr/lib64/libglib-2.0.so.0
#27 0x00007f9c2ba8fc48 in  () at /usr/lib64/libglib-2.0.so.0
#28 0x00007f9c2ba8fcec in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0
#29 0x00007f9c349470de in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0xfd6e40, flags=...) at kernel/qeventdispatcher_glib.cpp:452
#30 0x00007f9c353c5676 in  () at /usr/lib64/libQtGui.so.4
#31 0x00007f9c34918e6f in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fffc0569890, flags=...) at kernel/qeventloop.cpp:149
#32 0x00007f9c34919165 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fffc0569890, flags=...) at kernel/qeventloop.cpp:204
#33 0x00007f9c3491e5b9 in QCoreApplication::exec() () at kernel/qcoreapplication.cpp:1225
#34 0x00000000004a0710 in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/digikam-4.4.0/core/app/main/main.cpp:236

Reported using DrKonqi
Comment 1 caulier.gilles 2014-11-06 21:34:05 UTC
It crash due to an exception generated by Exiv2 shared library.

Run digiKam through GDB as explained here :

https://www.digikam.org/contrib

... and report a better backtrace.

Gilles Caulier
Comment 2 Kenneth Ingham 2014-11-07 02:17:19 UTC
Created attachment 89486 [details]
gdb of crash
Comment 3 caulier.gilles 2014-11-07 07:48:46 UTC
Comment on attachment 89486 [details]
gdb of crash

Yes, there is an exception from Exiv2 which crash libkexiv2 and digiKam

The origin of exception is unknown. Probably a file which is not yet well supported by Exiv2 (a video file for ex.)

Please report this problem in Exiv2 bugzilla : 

http://dev.exiv2.org/projects/exiv2/issues

Gilles Caulier
Comment 4 caulier.gilles 2021-05-04 05:50:43 UTC
Not reproducible with digiKam 7.3.0 and Exiv2 0.27.4