Bug 341023

Summary: crash after startup during check for updated images
Product: [Applications] digikam Reporter: willem
Component: Metadata-VideoAssignee: Digikam Developers <digikam-bugs-null>
Status: RESOLVED FIXED    
Severity: crash CC: adrian.dziubek, caulier.gilles
Priority: NOR    
Version: 4.4.0   
Target Milestone: ---   
Platform: Other   
OS: Linux   
Latest Commit: Version Fixed In: 6.0.0

Description willem 2014-11-16 14:56:30 UTC
when I start digikam it infrequently crashes. it starts checking for updates but when it reaches 41% it crashes with the following output:

<code>
Object::connect: No such signal org::freedesktop::UPower::DeviceAdded(QString)
Object::connect: No such signal org::freedesktop::UPower::DeviceRemoved(QString)
KCrash: Application 'digikam' crashing...
KCrash: Attempting to start /usr/lib/kde4/libexec/drkonqi from kdeinit
KCrash: Connect sock_file=/home/willem/.kde4/socket-basedrum/kdeinit4__0
QSocketNotifier: Invalid socket 16 and type 'Read', disabling...
QSocketNotifier: Invalid socket 20 and type 'Exception', disabling...
QSocketNotifier: Invalid socket 25 and type 'Read', disabling...
QSocketNotifier: Invalid socket 70 and type 'Read', disabling...
QSocketNotifier: Invalid socket 92 and type 'Read', disabling...
QSocketNotifier: Invalid socket 69 and type 'Read', disabling...
QSocketNotifier: Invalid socket 67 and type 'Read', disabling...
digikam: Fatal IO error: client killed

(digikam:5311): GStreamer-CRITICAL **: gstsystemclock: write control failed in wakeup_async: 9:Bad file descriptor

QSocketNotifier: Invalid socket 19 and type 'Read', disabling...
</code>

Reproducible: Always

Steps to Reproduce:
1. start digikam
2. wait for the update to reach 41%
3. aploof
Comment 1 caulier.gilles 2014-11-16 16:56:08 UTC
We need a GDB backtrace to hack. Look below for details :

https://www.digikam.org/contrib
Comment 2 Adrian Dziubek 2014-12-08 21:31:39 UTC
I've got the same error, here is my backtrace:

#0  0x00007ffff12b3050 in __cxa_throw () from /usr/lib/libstdc++.so.6
#1  0x00007fffeebbee46 in Exiv2::ImageFactory::open(std::string const&) () from /usr/lib/libexiv2.so.13
#2  0x00007ffff62dd563 in KExiv2Iface::KExiv2::load(QString const&) const () from /usr/lib/libkexiv2.so.11
#3  0x00007ffff5bc6366 in Digikam::DMetadata::load(QString const&) const () from /usr/lib/libdigikamcore.so.4.5.0
#4  0x00007ffff55e78a7 in Digikam::ImageScanner::loadFromDisk() () from /usr/lib/libdigikamdatabase.so.4.5.0
#5  0x00007ffff55e7a90 in Digikam::ImageScanner::newFile(int) () from /usr/lib/libdigikamdatabase.so.4.5.0
#6  0x00007ffff5579006 in Digikam::CollectionScanner::scanNewFile(QFileInfo const&, int) () from /usr/lib/libdigikamdatabase.so.4.5.0
#7  0x00007ffff557c6e2 in Digikam::CollectionScanner::scanAlbum(Digikam::CollectionLocation const&, QString const&) () from /usr/lib/libdigikamdatabase.so.4.5.0
#8  0x00007ffff557c59f in Digikam::CollectionScanner::scanAlbum(Digikam::CollectionLocation const&, QString const&) () from /usr/lib/libdigikamdatabase.so.4.5.0
#9  0x00007ffff557c59f in Digikam::CollectionScanner::scanAlbum(Digikam::CollectionLocation const&, QString const&) () from /usr/lib/libdigikamdatabase.so.4.5.0
#10 0x00007ffff557cf33 in Digikam::CollectionScanner::scanAlbumRoot(Digikam::CollectionLocation const&) () from /usr/lib/libdigikamdatabase.so.4.5.0
#11 0x00007ffff557e785 in Digikam::CollectionScanner::completeScan() () from /usr/lib/libdigikamdatabase.so.4.5.0
#12 0x00000000005e8180 in ?? ()
#13 0x00007ffff185c05f in ?? () from /usr/lib/libQtCore.so.4
#14 0x00007fffeefa8314 in start_thread () from /usr/lib/libpthread.so.0
#15 0x00007ffff0d835bd in clone () from /usr/lib/libc.so.6
Comment 3 caulier.gilles 2014-12-08 21:52:25 UTC
Exiv2 problem with video files.

See bug #340373 for details...

Gilles Caulier

*** This bug has been marked as a duplicate of bug 340373 ***
Comment 4 Adrian Dziubek 2014-12-09 09:14:08 UTC
I tried downgrading exiv2 and libkexiv2, but that didn't help even after I matched one to the other. The workaround I used is to set MIME Type Filter to Image Files.
Comment 5 caulier.gilles 2018-02-28 12:37:50 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