Bug 339909

Summary: digiKam Segmentation Fault on open
Product: [Applications] digikam Reporter: Cluey <cluadiacapella>
Component: Metadata-VideoAssignee: Digikam Developers <digikam-bugs-null>
Status: RESOLVED FIXED    
Severity: grave CC: caulier.gilles, reinhard.ingoland
Priority: NOR    
Version: 4.2.0   
Target Milestone: ---   
Platform: Ubuntu   
OS: Linux   
URL: https://www.youtube.com/watch?v=i3xORCE6ttc&feature=youtu.be
Latest Commit: Version Fixed In: 6.0.0

Description Cluey 2014-10-12 18:29:29 UTC
Hi!   KDE Crash Handler had an error when sending the report, so I will copy and paste it's information here.  


///////
Application: digikam (4.2.0)
KDE Platform Version: 4.14.1
Qt Version: 4.8.6
Operating System: Linux 3.16.0-22-generic x86_64
Distribution: Ubuntu Utopic Unicorn (development branch)

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

Digikam consistantly crashes when the "scanning for new files" bar reaches 100%.  I have included a video link to show the behavior.     Please note the bottom right, where you can see the bar climbing towards 100% before crashing.  The video shows 4 crashes.

https://www.youtube.com/watch?v=i3xORCE6ttc&feature=youtu.be

The only customizations I can think of:   Customizing which file types Digikam recognizes.  (Added a svg, svgz, xfc, various video formats, and a few other's which I can not remember.)    In addition, I have ~250,000-400,000+ files in my library.

I believe this behavior also happened with 4.3.0 while I was on 14.04 (4.2.0 worked fine at that point, from my memory.).   I am unable to test 4.4.3 on 14.10 due to not being able to find a working ppa and not exactly being technologically inclined to install otherwise.


Unlikely to be helpful clues:

Also, prior to this behavior, I would experience crashing when accessing certain folders.   (Presumably folders that contained a certain filetype Digikam was K.O.ing itself from.)   And Prior to this, I was experiencing crashing when working with tags (either renaming them, adding, deleting them..  Not sure).   Also, I would notice an odd behavior in renaming a folder causing all of my folders to open which were opened on the last shutdown (I'm guessing). 


Computer Specs:  

OS: Lubuntu 14.10
Processor: I5-3750k.   ...Or whatever the common K series I5 Ivy Bridge number is.
Ram: 16gbs ddr3
HDD: Root has 2GBs of free space, and the Digikam configuration files database and thumbnails database drive has 4.5 GBs of free space.  
Graphics: Intel HD 4000

The crash can be reproduced every time.

-- Backtrace:
Application: digiKam (digikam), signal: Segmentation fault
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
[Current thread is 1 (Thread 0x7f165b79cac0 (LWP 2683))]

Thread 4 (Thread 0x7f1636e68700 (LWP 3107)):
#0  0x00007f165477f39d in poll () at ../sysdeps/unix/syscall-template.S:81
#1  0x00007f163c549248 in ?? () from /lib/x86_64-linux-gnu/libusb-1.0.so.0
#2  0x00007f1650bcf0a5 in start_thread (arg=0x7f1636e68700) at pthread_create.c:309
#3  0x00007f165478984d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111

Thread 3 (Thread 0x7f1630656700 (LWP 3137)):
[KCrash Handler]
#5  0x00007f1651b498f8 in Exiv2::MatroskaVideo::decodeBlock() () from /usr/lib/x86_64-linux-gnu/libexiv2.so.13
#6  0x00007f1651b4a30d in Exiv2::MatroskaVideo::readMetadata() () from /usr/lib/x86_64-linux-gnu/libexiv2.so.13
#7  0x00007f16593ffbcd in KExiv2Iface::KExiv2::load(QString const&) const () from /usr/lib/libkexiv2.so.11
#8  0x00007f1658d02e06 in Digikam::DMetadata::load(QString const&) const () from /usr/lib/digikam/libdigikamcore.so.4.2.0
#9  0x00007f1658747817 in Digikam::ImageScanner::loadFromDisk() () from /usr/lib/digikam/libdigikamdatabase.so.4.2.0
#10 0x00007f1658747a00 in Digikam::ImageScanner::newFile(int) () from /usr/lib/digikam/libdigikamdatabase.so.4.2.0
#11 0x00007f16586d9806 in Digikam::CollectionScanner::scanNewFile(QFileInfo const&, int) () from /usr/lib/digikam/libdigikamdatabase.so.4.2.0
#12 0x00007f16586dcef2 in Digikam::CollectionScanner::scanAlbum(Digikam::CollectionLocation const&, QString const&) () from /usr/lib/digikam/libdigikamdatabase.so.4.2.0
#13 0x00007f16586dcdac in Digikam::CollectionScanner::scanAlbum(Digikam::CollectionLocation const&, QString const&) () from /usr/lib/digikam/libdigikamdatabase.so.4.2.0
#14 0x00007f16586dd743 in Digikam::CollectionScanner::scanAlbumRoot(Digikam::CollectionLocation const&) () from /usr/lib/digikam/libdigikamdatabase.so.4.2.0
#15 0x00007f16586def85 in Digikam::CollectionScanner::completeScan() () from /usr/lib/digikam/libdigikamdatabase.so.4.2.0
#16 0x00000000006031a0 in ?? ()
#17 0x00007f165647c39f in ?? () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#18 0x00007f1650bcf0a5 in start_thread (arg=0x7f1630656700) at pthread_create.c:309
#19 0x00007f165478984d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111

Thread 2 (Thread 0x7f162fe55700 (LWP 3138)):
#0  0x00007f164d708369 in g_mutex_lock () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#1  0x00007f164d6c3479 in g_main_context_prepare () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f164d6c3e0b in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f164d6c3ffc in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007f16565aa04e in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#5  0x00007f165657b4f1 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#6  0x00007f165657b805 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#7  0x00007f1656479c39 in QThread::exec() () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#8  0x00007f165655d033 in ?? () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#9  0x00007f165647c39f in ?? () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#10 0x00007f1650bcf0a5 in start_thread (arg=0x7f162fe55700) at pthread_create.c:309
#11 0x00007f165478984d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111

Thread 1 (Thread 0x7f165b79cac0 (LWP 2683)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007f165647c894 in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#2  0x00007f165647bf6e in QThread::wait(unsigned long) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#3  0x000000000060175b in ?? ()
#4  0x0000000000601a27 in ?? ()
#5  0x00007f16546c9599 in __run_exit_handlers (status=1, listp=0x7f1654a4d6c8 <__exit_funcs>, run_list_atexit=run_list_atexit@entry=true) at exit.c:82
#6  0x00007f16546c95e5 in __GI_exit (status=<optimized out>) at exit.c:104
#7  0x00007f16556f4818 in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#8  0x00007f1656fecfd0 in KApplication::xioErrhandler(_XDisplay*) () from /usr/lib/libkdeui.so.5
#9  0x00007f165317888e in _XIOError () from /usr/lib/x86_64-linux-gnu/libX11.so.6
#10 0x00007f16531761fd in _XEventsQueued () from /usr/lib/x86_64-linux-gnu/libX11.so.6
#11 0x00007f1653168190 in XEventsQueued () from /usr/lib/x86_64-linux-gnu/libX11.so.6
#12 0x00007f165572ff5c in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#13 0x00007f164d6c38c1 in g_main_context_check () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#14 0x00007f164d6c3e83 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#15 0x00007f164d6c3ffc in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#16 0x00007f16565aa04e in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#17 0x00007f16557304e6 in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#18 0x00007f165657b4f1 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#19 0x00007f165657b805 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#20 0x00000000005feb81 in ?? ()
#21 0x0000000000525f37 in ?? ()
#22 0x00007f1656594f41 in QObject::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#23 0x00007f165568d11c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#24 0x00007f1655693870 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#25 0x00007f1656fee57a in KApplication::notify(QObject*, QEvent*) () from /usr/lib/libkdeui.so.5
#26 0x00007f165657c86d in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#27 0x00007f165657ff41 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#28 0x00007f16565a9ed3 in ?? () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#29 0x00007f164d6c3c5d in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#30 0x00007f164d6c3f48 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#31 0x00007f164d6c3ffc in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#32 0x00007f16565aa031 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#33 0x00007f16557304e6 in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#34 0x00007f165657b4f1 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#35 0x00007f165657b805 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#36 0x00007f1656580f67 in QCoreApplication::exec() () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#37 0x0000000000494246 in ?? ()
#38 0x00007f16546b0ec5 in __libc_start_main (main=0x493100, argc=1, argv=0x7fff40b47d08, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fff40b47cf8) at libc-start.c:287
#39 0x000000000049683f in _start ()

Reproducible: Always

Steps to Reproduce:
1. Open Digikam
2. *Kablamoo!!*
3. Cry

Actual Results:  
Digikam will crash when opened

Expected Results:  
Digikam will not crash when opened
Comment 1 caulier.gilles 2014-10-12 19:16:52 UTC
This crash appear in Exiv2 shared library.

Please report this crash into Exiv2 bugzilla.

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

Gilles Caulier
Comment 2 caulier.gilles 2015-01-24 09:33:22 UTC
*** Bug 343231 has been marked as a duplicate of this bug. ***
Comment 3 caulier.gilles 2015-02-20 22:10:57 UTC
*** Bug 344406 has been marked as a duplicate of this bug. ***
Comment 4 caulier.gilles 2018-03-04 09:18:45 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