Bug 353295

Summary: digiKam repeatedly crashes whilst importing pictures
Product: [Applications] digikam Reporter: poloking
Component: Metadata-VideoAssignee: Digikam Developers <digikam-bugs-null>
Status: RESOLVED FIXED    
Severity: crash CC: caulier.gilles
Priority: NOR Keywords: drkonqi
Version: 4.7.0   
Target Milestone: ---   
Platform: Ubuntu   
OS: Linux   
Latest Commit: Version Fixed In: 6.0.0
Sentry Crash Report:

Description poloking 2015-09-28 22:01:28 UTC
Application: digikam (4.7.0)
KDE Platform Version: 4.14.6
Qt Version: 4.8.6
Operating System: Linux 3.19.0-15-generic x86_64
Distribution: Ubuntu 15.04

-- Information about the crash:
- What I was doing when the application crashed:

Importing my whole picture and video library, I had digiKam running in the background

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".
pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
[Current thread is 1 (Thread 0x7f207e375ac0 (LWP 24801))]

Thread 10 (Thread 0x7f2057618700 (LWP 24802)):
#0  0x00007f20772fb8dd in poll () at ../sysdeps/unix/syscall-template.S:81
#1  0x00007f205e3fb12c in ?? () from /lib/x86_64-linux-gnu/libusb-1.0.so.0
#2  0x00007f207444b6aa in start_thread (arg=0x7f2057618700) at pthread_create.c:333
#3  0x00007f2077306eed in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 9 (Thread 0x7f2052fdb700 (LWP 24803)):
[KCrash Handler]
#6  0x00007f2077235267 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:55
#7  0x00007f2077236eca in __GI_abort () at abort.c:89
#8  0x00007f2077278c53 in __libc_message (do_abort=do_abort@entry=1, fmt=fmt@entry=0x7f20773911a8 "*** Error in `%s': %s: 0x%s ***\n") at ../sysdeps/posix/libc_fatal.c:175
#9  0x00007f2077280c69 in malloc_printerr (ptr=<optimized out>, str=0x7f20773912d8 "double free or corruption (!prev)", action=1) at malloc.c:4965
#10 _int_free (av=<optimized out>, p=<optimized out>, have_lock=0) at malloc.c:3834
#11 0x00007f207728489c in __GI___libc_free (mem=<optimized out>) at malloc.c:2950
#12 0x00007f20753c725a in Exiv2::RiffVideo::infoTagsHandler() () from /usr/lib/x86_64-linux-gnu/libexiv2.so.13
#13 0x00007f20753cb195 in Exiv2::RiffVideo::decodeBlock() () from /usr/lib/x86_64-linux-gnu/libexiv2.so.13
#14 0x00007f20753cadc8 in Exiv2::RiffVideo::tagDecoder(Exiv2::DataBuf&, unsigned long) () from /usr/lib/x86_64-linux-gnu/libexiv2.so.13
#15 0x00007f20753cb195 in Exiv2::RiffVideo::decodeBlock() () from /usr/lib/x86_64-linux-gnu/libexiv2.so.13
#16 0x00007f20753cb548 in Exiv2::RiffVideo::readMetadata() () from /usr/lib/x86_64-linux-gnu/libexiv2.so.13
#17 0x00007f207c6d9c7d in KExiv2Iface::KExiv2::load(QString const&) const () from /usr/lib/libkexiv2.so.11
#18 0x00007f207bfcbab6 in Digikam::DMetadata::load(QString const&) const () from /usr/lib/digikam/libdigikamcore.so.4.7.0
#19 0x00007f207ba054c7 in Digikam::ImageScanner::loadFromDisk() () from /usr/lib/digikam/libdigikamdatabase.so.4.7.0
#20 0x00007f207ba056b0 in Digikam::ImageScanner::newFile(int) () from /usr/lib/digikam/libdigikamdatabase.so.4.7.0
#21 0x00007f207b9960e6 in Digikam::CollectionScanner::scanNewFile(QFileInfo const&, int) () from /usr/lib/digikam/libdigikamdatabase.so.4.7.0
#22 0x00007f207b9997c2 in Digikam::CollectionScanner::scanAlbum(Digikam::CollectionLocation const&, QString const&) () from /usr/lib/digikam/libdigikamdatabase.so.4.7.0
#23 0x00007f207b99967f in Digikam::CollectionScanner::scanAlbum(Digikam::CollectionLocation const&, QString const&) () from /usr/lib/digikam/libdigikamdatabase.so.4.7.0
#24 0x00007f207b99967f in Digikam::CollectionScanner::scanAlbum(Digikam::CollectionLocation const&, QString const&) () from /usr/lib/digikam/libdigikamdatabase.so.4.7.0
#25 0x00007f207b99967f in Digikam::CollectionScanner::scanAlbum(Digikam::CollectionLocation const&, QString const&) () from /usr/lib/digikam/libdigikamdatabase.so.4.7.0
#26 0x00007f207b99967f in Digikam::CollectionScanner::scanAlbum(Digikam::CollectionLocation const&, QString const&) () from /usr/lib/digikam/libdigikamdatabase.so.4.7.0
#27 0x00007f207b99967f in Digikam::CollectionScanner::scanAlbum(Digikam::CollectionLocation const&, QString const&) () from /usr/lib/digikam/libdigikamdatabase.so.4.7.0
#28 0x00007f207b99a013 in Digikam::CollectionScanner::scanAlbumRoot(Digikam::CollectionLocation const&) () from /usr/lib/digikam/libdigikamdatabase.so.4.7.0
#29 0x00007f207b99b875 in Digikam::CollectionScanner::completeScan() () from /usr/lib/digikam/libdigikamdatabase.so.4.7.0
#30 0x00000000005e9300 in ?? ()
#31 0x00007f2077de86ff in ?? () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#32 0x00007f207444b6aa in start_thread (arg=0x7f2052fdb700) at pthread_create.c:333
#33 0x00007f2077306eed in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 8 (Thread 0x7f20527da700 (LWP 24804)):
#0  0x00007f2070507780 in g_mutex_lock () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#1  0x00007f20704c2dbd in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f20704c2fcc in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f2077f2287e in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#4  0x00007f2077ef1d21 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#5  0x00007f2077ef2085 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#6  0x00007f2077de5e89 in QThread::exec() () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#7  0x00007f2077ed2493 in ?? () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#8  0x00007f2077de86ff in ?? () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#9  0x00007f207444b6aa in start_thread (arg=0x7f20527da700) at pthread_create.c:333
#10 0x00007f2077306eed in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 7 (Thread 0x7f203d3fc700 (LWP 24810)):
#0  0x00007f20704c2e7e in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#1  0x00007f20704c2fcc in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f2077f2287e in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#3  0x00007f2077ef1d21 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#4  0x00007f2077ef2085 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#5  0x00007f207c0427f3 in ?? () from /usr/lib/digikam/libdigikamcore.so.4.7.0
#6  0x00007f2077ddbb70 in ?? () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#7  0x00007f2077de86ff in ?? () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#8  0x00007f207444b6aa in start_thread (arg=0x7f203d3fc700) at pthread_create.c:333
#9  0x00007f2077306eed in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 6 (Thread 0x7f2037d7e700 (LWP 24812)):
#0  0x00007f20772fb8dd in poll () at ../sysdeps/unix/syscall-template.S:81
#1  0x00007f20704c2ebc in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f20704c2fcc in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f2077f2287e in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#4  0x00007f2077ef1d21 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#5  0x00007f2077ef2085 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#6  0x00007f207c0427f3 in ?? () from /usr/lib/digikam/libdigikamcore.so.4.7.0
#7  0x00007f2077ddbb70 in ?? () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#8  0x00007f2077de86ff in ?? () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#9  0x00007f207444b6aa in start_thread (arg=0x7f2037d7e700) at pthread_create.c:333
#10 0x00007f2077306eed in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 5 (Thread 0x7f1fbe7fc700 (LWP 24886)):
#0  0x00007f2077f21ee0 in ?? () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#1  0x00007f2077f22005 in ?? () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#2  0x00007f20704c23fd in g_main_context_prepare () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f20704c2de8 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007f20704c2fcc in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007f2077f2287e in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#6  0x00007f2077ef1d21 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#7  0x00007f2077ef2085 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#8  0x00007f2077de5e89 in QThread::exec() () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#9  0x00007f2077ed2493 in ?? () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#10 0x00007f2077de86ff in ?? () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#11 0x00007f207444b6aa in start_thread (arg=0x7f1fbe7fc700) at pthread_create.c:333
#12 0x00007f2077306eed in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 4 (Thread 0x7f1fbdffb700 (LWP 24887)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007f206a48b81d in ?? () from /usr/lib/x86_64-linux-gnu/libQtWebKit.so.4
#2  0x00007f206a48b859 in ?? () from /usr/lib/x86_64-linux-gnu/libQtWebKit.so.4
#3  0x00007f207444b6aa in start_thread (arg=0x7f1fbdffb700) at pthread_create.c:333
#4  0x00007f2077306eed in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 3 (Thread 0x7f203657b700 (LWP 24888)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007f206a1cc20d in ?? () from /usr/lib/x86_64-linux-gnu/libQtWebKit.so.4
#2  0x00007f206a4bafd6 in ?? () from /usr/lib/x86_64-linux-gnu/libQtWebKit.so.4
#3  0x00007f207444b6aa in start_thread (arg=0x7f203657b700) at pthread_create.c:333
#4  0x00007f2077306eed in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 2 (Thread 0x7f1fbf7fe700 (LWP 24915)):
#0  0x00007f20704c2444 in g_main_context_prepare () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#1  0x00007f20704c2de8 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f20704c2fcc in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f2077f2287e in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#4  0x00007f2077ef1d21 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#5  0x00007f2077ef2085 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#6  0x00007f2077de5e89 in QThread::exec() () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#7  0x00007f2077de86ff in ?? () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#8  0x00007f207444b6aa in start_thread (arg=0x7f1fbf7fe700) at pthread_create.c:333
#9  0x00007f2077306eed in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 1 (Thread 0x7f207e375ac0 (LWP 24801)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007f2077de8c56 in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#2  0x00007f2077ddae62 in ?? () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#3  0x00007f2077ddc2d5 in QThreadPool::~QThreadPool() () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#4  0x00007f2077ddc309 in QThreadPool::~QThreadPool() () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#5  0x00007f2077f0ad18 in QObjectPrivate::deleteChildren() () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#6  0x00007f2077f0d465 in QObject::~QObject() () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#7  0x00007f207c0420d7 in ?? () from /usr/lib/digikam/libdigikamcore.so.4.7.0
#8  0x00007f2077239d32 in __run_exit_handlers (status=1, listp=0x7f20775c4698 <__exit_funcs>, run_list_atexit=run_list_atexit@entry=true) at exit.c:82
#9  0x00007f2077239d85 in __GI_exit (status=<optimized out>) at exit.c:104
#10 0x00007f2078bb2488 in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#11 0x00007f20798a75a0 in KApplication::xioErrhandler(_XDisplay*) () from /usr/lib/libkdeui.so.5
#12 0x00007f2075ce788e in _XIOError () from /usr/lib/x86_64-linux-gnu/libX11.so.6
#13 0x00007f2075ce51fd in _XEventsQueued () from /usr/lib/x86_64-linux-gnu/libX11.so.6
#14 0x00007f2075cd7190 in XEventsQueued () from /usr/lib/x86_64-linux-gnu/libX11.so.6
#15 0x00007f2078bee6cc in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#16 0x00007f20704c28c1 in g_main_context_check () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#17 0x00007f20704c2e60 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#18 0x00007f20704c2fcc in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#19 0x00007f2077f2285e in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#20 0x00007f2078beec66 in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#21 0x00007f2077ef1d21 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#22 0x00007f2077ef2085 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#23 0x00000000005e4d21 in ?? ()
#24 0x000000000052a307 in ?? ()
#25 0x00007f2077f0c8e1 in QObject::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#26 0x00007f2078b469bc in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#27 0x00007f2078b4d4d8 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#28 0x00007f20798a8b4a in KApplication::notify(QObject*, QEvent*) () from /usr/lib/libkdeui.so.5
#29 0x00007f2077ef31cd in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#30 0x00007f2077ef6a71 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#31 0x00007f2077f226ee in ?? () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#32 0x00007f20704c2c3d in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#33 0x00007f20704c2f20 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#34 0x00007f20704c2fcc in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#35 0x00007f2077f2285e in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#36 0x00007f2078beec66 in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#37 0x00007f2077ef1d21 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#38 0x00007f2077ef2085 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#39 0x00007f2077ef7b09 in QCoreApplication::exec() () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#40 0x00000000004967a6 in ?? ()
#41 0x00007f2077220a40 in __libc_start_main (main=0x495660, argc=1, argv=0x7ffd5cd1dc98, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffd5cd1dc88) at libc-start.c:289
#42 0x0000000000499069 in _start ()

The reporter indicates this bug may be a duplicate of or related to bug 340373.

Possible duplicates by query: bug 351689, bug 348699, bug 348173, bug 347139, bug 347134.

Reported using DrKonqi
Comment 1 caulier.gilles 2015-09-29 04:43:18 UTC

*** This bug has been marked as a duplicate of bug 340373 ***
Comment 2 caulier.gilles 2018-02-28 12:37:36 UTC
With 6.0.0, we have now a FFMpeg low level metadata parser based on libav C API
for video files database registration.

The Exiv2 video support is not used anymore as this code is buggous and nobody
sound motivated in Exiv2 to finalize the code.

The original post for this file must be fixed now and video metadata support
with ffmpeg must be enough to populate database entries.

Gilles Caulier