Bug 340925

Summary: Digikam crash when start it
Product: [Applications] digikam Reporter: Mengz You <mengz.you>
Component: Metadata-VideoAssignee: Digikam Developers <digikam-bugs-null>
Status: RESOLVED FIXED    
Severity: crash CC: caulier.gilles, mengz.you
Priority: NOR Keywords: drkonqi
Version: 4.3.0   
Target Milestone: ---   
Platform: openSUSE   
OS: Linux   
Latest Commit: Version Fixed In: 6.0.0
Sentry Crash Report:

Description Mengz You 2014-11-13 14:22:56 UTC
Application: digikam (4.3.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:
- What I was doing when the application crashed:
After reinstall the system, when start the digikam, it crash every time when loading the photos.

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 0x7f273d7f7880 (LWP 5842))]

Thread 5 (Thread 0x7f271e1fa700 (LWP 5844)):
#0  0x00007f27362c43cd in poll () at /lib64/libc.so.6
#1  0x00007f271eb79268 in  () at /usr/lib64/libusb-1.0.so.0
#2  0x00007f273421a0a4 in start_thread () at /lib64/libpthread.so.0
#3  0x00007f27362cc7fd in clone () at /lib64/libc.so.6

Thread 4 (Thread 0x7f2717c10700 (LWP 5845)):
[KCrash Handler]
#5  0x00007f273621c187 in raise () at /lib64/libc.so.6
#6  0x00007f273621d538 in abort () at /lib64/libc.so.6
#7  0x00007f273625a0c4 in  () at /lib64/libc.so.6
#8  0x00007f273625f92e in malloc_printerr () at /lib64/libc.so.6
#9  0x00007f2736260636 in _int_free () at /lib64/libc.so.6
#10 0x00007f27331ad273 in Exiv2::RiffVideo::nikonTagsHandler() () at /usr/lib64/libexiv2.so.13
#11 0x00007f27331b1025 in Exiv2::RiffVideo::decodeBlock() () at /usr/lib64/libexiv2.so.13
#12 0x00007f27331b0c78 in Exiv2::RiffVideo::tagDecoder(Exiv2::DataBuf&, unsigned long) () at /usr/lib64/libexiv2.so.13
#13 0x00007f27331b1025 in Exiv2::RiffVideo::decodeBlock() () at /usr/lib64/libexiv2.so.13
#14 0x00007f27331b1398 in Exiv2::RiffVideo::readMetadata() () at /usr/lib64/libexiv2.so.13
#15 0x00007f273b50c0a5 in KExiv2Iface::KExiv2::load(QString const&) const () at /usr/lib64/libkexiv2.so.11
#16 0x00007f273ae2da76 in Digikam::DMetadata::load(QString const&) const () at /usr/lib64/libdigikamcore.so.4.3.0
#17 0x00007f273a8858ff in Digikam::ImageScanner::loadFromDisk() () at /usr/lib64/libdigikamdatabase.so.4.3.0
#18 0x00007f273a885ae0 in Digikam::ImageScanner::newFile(int) () at /usr/lib64/libdigikamdatabase.so.4.3.0
#19 0x00007f273a81dab6 in Digikam::CollectionScanner::scanNewFile(QFileInfo const&, int) () at /usr/lib64/libdigikamdatabase.so.4.3.0
#20 0x00007f273a820c1f in Digikam::CollectionScanner::scanAlbum(Digikam::CollectionLocation const&, QString const&) () at /usr/lib64/libdigikamdatabase.so.4.3.0
#21 0x00007f273a820ad7 in Digikam::CollectionScanner::scanAlbum(Digikam::CollectionLocation const&, QString const&) () at /usr/lib64/libdigikamdatabase.so.4.3.0
#22 0x00007f273a8214e3 in Digikam::CollectionScanner::scanAlbumRoot(Digikam::CollectionLocation const&) () at /usr/lib64/libdigikamdatabase.so.4.3.0
#23 0x00007f273a8220bd in Digikam::CollectionScanner::completeScan() () at /usr/lib64/libdigikamdatabase.so.4.3.0
#24 0x00000000005ff3ef in  ()
#25 0x00007f27370ad79f in  () at /usr/lib64/libQtCore.so.4
#26 0x00007f273421a0a4 in start_thread () at /lib64/libpthread.so.0
#27 0x00007f27362cc7fd in clone () at /lib64/libc.so.6

Thread 3 (Thread 0x7f271740f700 (LWP 5846)):
#0  0x00007f27362c43cd in poll () at /lib64/libc.so.6
#1  0x00007f272e324be4 in  () at /usr/lib64/libglib-2.0.so.0
#2  0x00007f272e324cec in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0
#3  0x00007f27371dc0de in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQtCore.so.4
#4  0x00007f27371ade6f in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQtCore.so.4
#5  0x00007f27371ae165 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQtCore.so.4
#6  0x00007f27370ab0bf in QThread::exec() () at /usr/lib64/libQtCore.so.4
#7  0x00007f273718f783 in  () at /usr/lib64/libQtCore.so.4
#8  0x00007f27370ad79f in  () at /usr/lib64/libQtCore.so.4
#9  0x00007f273421a0a4 in start_thread () at /lib64/libpthread.so.0
#10 0x00007f27362cc7fd in clone () at /lib64/libc.so.6

Thread 2 (Thread 0x7f2714ed5700 (LWP 5850)):
#0  0x00007f27362c43cd in poll () at /lib64/libc.so.6
#1  0x00007f272e324be4 in  () at /usr/lib64/libglib-2.0.so.0
#2  0x00007f272e324cec in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0
#3  0x00007f27371dc0de in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQtCore.so.4
#4  0x00007f27371ade6f in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQtCore.so.4
#5  0x00007f27371ae165 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQtCore.so.4
#6  0x00007f27370ab0bf in QThread::exec() () at /usr/lib64/libQtCore.so.4
#7  0x00007f273718f783 in  () at /usr/lib64/libQtCore.so.4
#8  0x00007f27370ad79f in  () at /usr/lib64/libQtCore.so.4
#9  0x00007f273421a0a4 in start_thread () at /lib64/libpthread.so.0
#10 0x00007f27362cc7fd in clone () at /lib64/libc.so.6

Thread 1 (Thread 0x7f273d7f7880 (LWP 5842)):
#0  0x00007f273421e05f in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0
#1  0x00007f27370adc86 in QWaitCondition::wait(QMutex*, unsigned long) () at /usr/lib64/libQtCore.so.4
#2  0x00007f27370ad36e in QThread::wait(unsigned long) () at /usr/lib64/libQtCore.so.4
#3  0x00000000005fdaab in  ()
#4  0x00000000005fdc27 in  ()
#5  0x00007f273621ebf9 in __run_exit_handlers () at /lib64/libc.so.6
#6  0x00007f273621ec45 in  () at /lib64/libc.so.6
#7  0x00007f2737c23fc8 in  () at /usr/lib64/libQtGui.so.4
#8  0x00007f27388d4790 in KApplication::xioErrhandler(_XDisplay*) () at /usr/lib64/libkdeui.so.5
#9  0x00007f27347b93be in _XIOError () at /usr/lib64/libX11.so.6
#10 0x00007f27347b6dbd in _XEventsQueued () at /usr/lib64/libX11.so.6
#11 0x00007f27347a8deb in XEventsQueued () at /usr/lib64/libX11.so.6
#12 0x00007f2737c5a0ec in  () at /usr/lib64/libQtGui.so.4
#13 0x00007f272e324661 in g_main_context_check () at /usr/lib64/libglib-2.0.so.0
#14 0x00007f272e324b7b in  () at /usr/lib64/libglib-2.0.so.0
#15 0x00007f272e324cec in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0
#16 0x00007f27371dc0be in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQtCore.so.4
#17 0x00007f2737c5a676 in  () at /usr/lib64/libQtGui.so.4
#18 0x00007f27371ade6f in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQtCore.so.4
#19 0x00007f27371ae165 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQtCore.so.4
#20 0x00000000005fb139 in  ()
#21 0x000000000052caa7 in  ()
#22 0x00007f27371c759e in QObject::event(QEvent*) () at /usr/lib64/libQtCore.so.4
#23 0x00007f2737bbd76c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib64/libQtGui.so.4
#24 0x00007f2737bc3cad in QApplication::notify(QObject*, QEvent*) () at /usr/lib64/libQtGui.so.4
#25 0x00007f27388d5bda in KApplication::notify(QObject*, QEvent*) () at /usr/lib64/libkdeui.so.5
#26 0x00007f27371af2ad in QCoreApplication::notifyInternal(QObject*, QEvent*) () at /usr/lib64/libQtCore.so.4
#27 0x00007f27371b257d in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /usr/lib64/libQtCore.so.4
#28 0x00007f27371dc8fe in  () at /usr/lib64/libQtCore.so.4
#29 0x00007f272e324a04 in g_main_context_dispatch () at /usr/lib64/libglib-2.0.so.0
#30 0x00007f272e324c48 in  () at /usr/lib64/libglib-2.0.so.0
#31 0x00007f272e324cec in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0
#32 0x00007f27371dc0be in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQtCore.so.4
#33 0x00007f2737c5a676 in  () at /usr/lib64/libQtGui.so.4
#34 0x00007f27371ade6f in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQtCore.so.4
#35 0x00007f27371ae165 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQtCore.so.4
#36 0x00007f27371b35b9 in QCoreApplication::exec() () at /usr/lib64/libQtCore.so.4
#37 0x000000000049fb10 in  ()
#38 0x00007f2736208b05 in __libc_start_main () at /lib64/libc.so.6
#39 0x00000000004a215f in _start ()

Reported using DrKonqi
Comment 1 caulier.gilles 2014-12-10 17:53:15 UTC
digiKam 4.5.0 have been released.

Crash still reproducible with this release ?

Gilles Caulier
Comment 2 Mengz You 2014-12-11 00:59:28 UTC
(In reply to Gilles Caulier from comment #1)
> digiKam 4.5.0 have been released.
> 
> Crash still reproducible with this release ?
> 
> Gilles Caulier

Hi, Gilles

I have not updated to 4.5.0, I will reply here after I update.

And, for this crash issue, seems it's caused by one of photos folder in my album repository. If I move out that folder, it will not crash. But I checked the file format in that folder, it's same as others, I do not know what's caused the crash, it's strange.
Comment 3 Mengz You 2014-12-15 12:54:18 UTC
(In reply to Gilles Caulier from comment #1)
> digiKam 4.5.0 have been released.
> 
> Crash still reproducible with this release ?
> 
> Gilles Caulier

Hi, Gilles

I found the root cause of the crash, it's caused by a .avi file in my one of album folder.
But it's strange, I used the 3.x version for that folder, but there was no crash.

Whatever, should not put the avi video files in an album folder, right?

Thanks!

------------------------------
Mengz You
Comment 4 caulier.gilles 2018-02-28 11:03:18 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.