Bug 353447

Summary: digiKam crashes when scanning files
Product: [Applications] digikam Reporter: Kirill <kirill-dunko>
Component: Metadata-VideoAssignee: Digikam Developers <digikam-bugs-null>
Status: RESOLVED FIXED    
Severity: crash CC: caulier.gilles
Priority: NOR Keywords: drkonqi
Version: 4.6.0   
Target Milestone: ---   
Platform: openSUSE   
OS: Linux   
Latest Commit: Version Fixed In: 6.0.0

Description Kirill 2015-10-02 11:14:05 UTC
Application: digikam (4.6.0)
KDE Platform Version: 4.14.9
Qt Version: 4.8.6
Operating System: Linux 4.2.1-1.g9c7cacf-desktop x86_64
Distribution: "openSUSE 13.2 (Harlequin) (x86_64)"

-- Information about the crash:
digiKam crashes when scanning files

The crash can be reproduced every time.

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

Thread 4 (Thread 0x7f14c12d7700 (LWP 9292)):
#0  0x00007f14dab18c5d in poll () at /lib64/libc.so.6
#1  0x00007f14c1c56268 in  () at /usr/lib64/libusb-1.0.so.0
#2  0x00007f14d8a6f0a4 in start_thread () at /lib64/libpthread.so.0
#3  0x00007f14dab2108d in clone () at /lib64/libc.so.6

Thread 3 (Thread 0x7f14b61cf700 (LWP 9293)):
#0  0x00007f14dab18c5d in poll () at /lib64/libc.so.6
#1  0x00007f14d2bb0be4 in  () at /usr/lib64/libglib-2.0.so.0
#2  0x00007f14d2bb0cec in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0
#3  0x00007f14db72f0de in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQtCore.so.4
#4  0x00007f14db700e6f in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQtCore.so.4
#5  0x00007f14db701165 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQtCore.so.4
#6  0x00007f14db5fe0bf in QThread::exec() () at /usr/lib64/libQtCore.so.4
#7  0x00007f14db6e2783 in  () at /usr/lib64/libQtCore.so.4
#8  0x00007f14db60079f in  () at /usr/lib64/libQtCore.so.4
#9  0x00007f14d8a6f0a4 in start_thread () at /lib64/libpthread.so.0
#10 0x00007f14dab2108d in clone () at /lib64/libc.so.6

Thread 2 (Thread 0x7f14b4fd6700 (LWP 9304)):
[KCrash Handler]
#5  0x00007f14daa71187 in raise () at /lib64/libc.so.6
#6  0x00007f14daa72538 in abort () at /lib64/libc.so.6
#7  0x00007f14daaae844 in  () at /lib64/libc.so.6
#8  0x00007f14daab40ae in malloc_printerr () at /lib64/libc.so.6
#9  0x00007f14daab4db6 in _int_free () at /lib64/libc.so.6
#10 0x00007f14d86f9197 in Exiv2::RiffVideo::infoTagsHandler() () at /usr/lib64/libexiv2.so.13
#11 0x00007f14d86fe025 in Exiv2::RiffVideo::decodeBlock() () at /usr/lib64/libexiv2.so.13
#12 0x00007f14d86fdc78 in Exiv2::RiffVideo::tagDecoder(Exiv2::DataBuf&, unsigned long) () at /usr/lib64/libexiv2.so.13
#13 0x00007f14d86fe025 in Exiv2::RiffVideo::decodeBlock() () at /usr/lib64/libexiv2.so.13
#14 0x00007f14d86fe398 in Exiv2::RiffVideo::readMetadata() () at /usr/lib64/libexiv2.so.13
#15 0x00007f14e04771a5 in KExiv2Iface::KExiv2::load(QString const&) const () at /usr/lib64/libkexiv2.so.11
#16 0x00007f14dfd92f56 in Digikam::DMetadata::load(QString const&) const () at /usr/lib64/libdigikamcore.so.4.6.0
#17 0x00007f14df7e5a7f in Digikam::ImageScanner::loadFromDisk() () at /usr/lib64/libdigikamdatabase.so.4.6.0
#18 0x00007f14df7e5c70 in Digikam::ImageScanner::newFile(int) () at /usr/lib64/libdigikamdatabase.so.4.6.0
#19 0x00007f14df77ee96 in Digikam::CollectionScanner::scanNewFile(QFileInfo const&, int) () at /usr/lib64/libdigikamdatabase.so.4.6.0
#20 0x00007f14df781fff in Digikam::CollectionScanner::scanAlbum(Digikam::CollectionLocation const&, QString const&) () at /usr/lib64/libdigikamdatabase.so.4.6.0
#21 0x00007f14df781eb7 in Digikam::CollectionScanner::scanAlbum(Digikam::CollectionLocation const&, QString const&) () at /usr/lib64/libdigikamdatabase.so.4.6.0
#22 0x00007f14df781eb7 in Digikam::CollectionScanner::scanAlbum(Digikam::CollectionLocation const&, QString const&) () at /usr/lib64/libdigikamdatabase.so.4.6.0
#23 0x00007f14df781eb7 in Digikam::CollectionScanner::scanAlbum(Digikam::CollectionLocation const&, QString const&) () at /usr/lib64/libdigikamdatabase.so.4.6.0
#24 0x00007f14df781eb7 in Digikam::CollectionScanner::scanAlbum(Digikam::CollectionLocation const&, QString const&) () at /usr/lib64/libdigikamdatabase.so.4.6.0
#25 0x00007f14df7828c3 in Digikam::CollectionScanner::scanAlbumRoot(Digikam::CollectionLocation const&) () at /usr/lib64/libdigikamdatabase.so.4.6.0
#26 0x00007f14df78349d in Digikam::CollectionScanner::completeScan() () at /usr/lib64/libdigikamdatabase.so.4.6.0
#27 0x00000000005e41ef in  ()
#28 0x00007f14db60079f in  () at /usr/lib64/libQtCore.so.4
#29 0x00007f14d8a6f0a4 in start_thread () at /lib64/libpthread.so.0
#30 0x00007f14dab2108d in clone () at /lib64/libc.so.6

Thread 1 (Thread 0x7f14e2053880 (LWP 9291)):
#0  0x00007f14d8a7305f in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0
#1  0x00007f14db600c86 in QWaitCondition::wait(QMutex*, unsigned long) () at /usr/lib64/libQtCore.so.4
#2  0x00007f14db60036e in QThread::wait(unsigned long) () at /usr/lib64/libQtCore.so.4
#3  0x00000000005e28eb in  ()
#4  0x00000000005e2a67 in  ()
#5  0x00007f14daa73bf9 in __run_exit_handlers () at /lib64/libc.so.6
#6  0x00007f14daa73c45 in  () at /lib64/libc.so.6
#7  0x00007f14dc176fc8 in  () at /usr/lib64/libQtGui.so.4
#8  0x00007f14dce279c0 in KApplication::xioErrhandler(_XDisplay*) () at /usr/lib64/libkdeui.so.5
#9  0x00007f14d900e3be in _XIOError () at /usr/lib64/libX11.so.6
#10 0x00007f14d900bdbd in _XEventsQueued () at /usr/lib64/libX11.so.6
#11 0x00007f14d8ffddeb in XEventsQueued () at /usr/lib64/libX11.so.6
#12 0x00007f14dc1ad0ec in  () at /usr/lib64/libQtGui.so.4
#13 0x00007f14d2bb0661 in g_main_context_check () at /usr/lib64/libglib-2.0.so.0
#14 0x00007f14d2bb0b7b in  () at /usr/lib64/libglib-2.0.so.0
#15 0x00007f14d2bb0cec in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0
#16 0x00007f14db72f0be in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQtCore.so.4
#17 0x00007f14dc1ad676 in  () at /usr/lib64/libQtGui.so.4
#18 0x00007f14db700e6f in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQtCore.so.4
#19 0x00007f14db701165 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQtCore.so.4
#20 0x00000000005dff79 in  ()
#21 0x000000000052fc27 in  ()
#22 0x00007f14db71a59e in QObject::event(QEvent*) () at /usr/lib64/libQtCore.so.4
#23 0x00007f14dc11076c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib64/libQtGui.so.4
#24 0x00007f14dc116cad in QApplication::notify(QObject*, QEvent*) () at /usr/lib64/libQtGui.so.4
#25 0x00007f14dce28e0a in KApplication::notify(QObject*, QEvent*) () at /usr/lib64/libkdeui.so.5
#26 0x00007f14db7022ad in QCoreApplication::notifyInternal(QObject*, QEvent*) () at /usr/lib64/libQtCore.so.4
#27 0x00007f14db70557d in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /usr/lib64/libQtCore.so.4
#28 0x00007f14db72f8fe in  () at /usr/lib64/libQtCore.so.4
#29 0x00007f14d2bb0a04 in g_main_context_dispatch () at /usr/lib64/libglib-2.0.so.0
#30 0x00007f14d2bb0c48 in  () at /usr/lib64/libglib-2.0.so.0
#31 0x00007f14d2bb0cec in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0
#32 0x00007f14db72f0be in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQtCore.so.4
#33 0x00007f14dc1ad676 in  () at /usr/lib64/libQtGui.so.4
#34 0x00007f14db700e6f in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQtCore.so.4
#35 0x00007f14db701165 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQtCore.so.4
#36 0x00007f14db7065b9 in QCoreApplication::exec() () at /usr/lib64/libQtCore.so.4
#37 0x00000000004a1250 in  ()
#38 0x00007f14daa5db05 in __libc_start_main () at /lib64/libc.so.6
#39 0x00000000004a3b4f in _start ()

Reported using DrKonqi
Comment 1 caulier.gilles 2015-10-02 11:41:54 UTC

*** This bug has been marked as a duplicate of bug 340373 ***
Comment 2 caulier.gilles 2018-02-28 12:39:26 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