Bug 149267

Summary: digiKam crashes after finding avi and so on
Product: [Applications] digikam Reporter: Hartmut Krummrei <hartmut.krummrei>
Component: Metadata-VideoAssignee: Digikam Developers <digikam-bugs-null>
Status: RESOLVED FIXED    
Severity: crash CC: axel.braun, caulier.gilles
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: unspecified   
OS: Linux   
Latest Commit: Version Fixed In: 6.0.0
Sentry Crash Report:

Description Hartmut Krummrei 2007-08-27 18:20:23 UTC
Version:           0.9.2-final (using KDE 3.5.7 "release 69.1" , openSUSE )
Compiler:          Target: i586-suse-linux
OS:                Linux (i686) release 2.6.13-15-default

This version of digikam crashes on start, if anything like avi,gif,txt and so on is in any folder, that digikam tries to look through. The start from a konsole gives this:

hartmut@Mars:~> digikam
terminate called after throwing an instance of 'Exiv2::Error'
  what():  /home/hartmut/Bilder/Autobahn/pano.txt: The file contains data of an unknown image type
KCrash: Application 'digikam' crashing...
hartmut@Mars:~> digikam
hartmut@Mars:~> digikam
terminate called after throwing an instance of 'Exiv2::Error'
  what():  /home/hartmut/Bilder/Buero/vorher/pano.txt: The file contains data of an unknown image type
KCrash: Application 'digikam' crashing...
hartmut@Mars:~> digikam
terminate called after throwing an instance of 'Exiv2::Error'
  what():  /home/hartmut/Bilder/Comics/dick.gif: The file contains data of an unknown image type
KCrash: Application 'digikam' crashing...
hartmut@Mars:~> digikam
terminate called after throwing an instance of 'Exiv2::Error'
  what():  /home/hartmut/Bilder/familie/mutti-letzter tag.doc: The file contains data of an unknown image type
KCrash: Application 'digikam' crashing...
hartmut@Mars:~> digikam
terminate called after throwing an instance of 'Exiv2::Error'
  what():  /home/hartmut/Bilder/familie/mvi_1439.avi: The file contains data of an unknown image type
KCrash: Application 'digikam' crashing...
hartmut@Mars:~> digikam
hartmut@Mars:~> digikam
terminate called after throwing an instance of 'Exiv2::Error'
  what():  /home/hartmut/Bilder/familie/mvi_1439.avi: The file contains data of an unknown image type
KCrash: Application 'digikam' crashing...

The KDE-Crashreport:

Using host libthread_db library "/lib/tls/libthread_db.so.1".
`system-supplied DSO at 0xffffe000' has disappeared; keeping its symbols.
[Thread debugging using libthread_db enabled]
[New Thread 1110628032 (LWP 8808)]
[KCrash handler]
#6  0xffffe410 in __kernel_vsyscall ()
#7  0x414dd541 in raise () from /lib/tls/libc.so.6
#8  0x414dedbb in abort () from /lib/tls/libc.so.6
#9  0x4148c4f1 in __gnu_cxx::__verbose_terminate_handler ()
   from /usr/lib/libstdc++.so.6
#10 0x41489e15 in __gxx_personality_v0 () from /usr/lib/libstdc++.so.6
#11 0x41489e52 in std::terminate () from /usr/lib/libstdc++.so.6
#12 0x41489fba in __cxa_throw () from /usr/lib/libstdc++.so.6
#13 0x41fde2db in Exiv2::ImageFactory::open () from /usr/lib/libexiv2.so.0
#14 0x403b13e7 in KExiv2Iface::KExiv2::load ()
   from /opt/kde3/lib/libkexiv2.so.1
#15 0x40227d9c in Digikam::DMetadata::load ()
   from /opt/kde3/lib/libdigikam.so.0
#16 0x40227e1c in Digikam::DMetadata::DMetadata ()
   from /opt/kde3/lib/libdigikam.so.0
#17 0x401595d8 in Digikam::ScanLib::storeItemInDatabase ()
   from /opt/kde3/lib/libdigikam.so.0
#18 0x4015a0bf in Digikam::ScanLib::allFiles ()
   from /opt/kde3/lib/libdigikam.so.0
#19 0x4015a599 in Digikam::ScanLib::findMissingItems ()
   from /opt/kde3/lib/libdigikam.so.0
#20 0x4015ad27 in Digikam::ScanLib::startScan ()
   from /opt/kde3/lib/libdigikam.so.0
#21 0x40114dcf in Digikam::AlbumManager::setLibraryPath ()
   from /opt/kde3/lib/libdigikam.so.0
#22 0x0804a8c8 in main ()

The previous versions of digikam had no difficulties with that. If the startupfolder has only jpg, everything is ok. My opensuse can handle any picture- or videotype.

Hartmut
Comment 1 Arnd Baecker 2007-08-27 18:52:49 UTC
Hmm, I don't see these kind of problems...
Which version of exiv2 (`exiv2 -V`) are you using?

(Would you be able to compile current svn, there have been
some improvements on crash handling in the connnection
with exiv2?)

Best, Arnd
Comment 2 Hartmut Krummrei 2007-08-27 22:28:12 UTC
Hallo Arnd,

exiv2 -V ergibt 0.14. Ich habe keine Ahnung, ob ich das Programm
compilieren kann, ich habe es noch nie gemacht. War bisher nicht
notwendig. Gibt es noch andere "Fehlerfinde-Hilfen", die ich Dir geben kann?

Gruß

Hartmut

Arnd Baecker schrieb:
[bugs.kde.org quoted mail]
Comment 3 Arnd Baecker 2007-08-27 23:19:01 UTC
Hi Hartmut,

better stick with English here, so that the real experts can help out ...

Googling for "terminate called after throwing an instance of 'Exiv2::Error' "
gives a couple of hits, it might be some inconsistent update of the components...
What Kipi and KExiv2 and Exiv2 are listed under "Help"/"About" in digikam?

Another shot in the dark: you could try to run kdeinit (just once)
before starting digikam - sometimes it helps (though I am sceptical here ...)

Does anyone else on OpenSuse see this problem?
Comment 4 Hartmut Krummrei 2007-08-28 16:53:25 UTC
Hi Arnd, I will stick in english, did not know, that this is part of a
discussion.

"run  kdeinit": no need for, becasuse digikam starts without problem, if
there are now files ore only JPGs in its startfolder. For Exif2 GIFs and
AVIs and anything else are unknown files, so there might be the reason
for the crash. If digikam advises Exif2 to search for Exifdata in every
file, the hole thing crashes. If there are only JPGs, Exif2 can respond
with success and everything is OK. So to solve the problem digikam
should first sort out all files and give Exif2 only those, which Exif2
knows. Perhaps one way araound ...

Hartmut

Arnd Baecker schrieb:
[bugs.kde.org quoted mail]
Comment 5 Arnd Baecker 2007-08-28 17:06:52 UTC
Well, for me everything works fine and I do have non-image files as well.

To help you further, let me repeat my question above:
"What Kipi and KExiv2 and Exiv2 are listed under "Help"/"About" in
digikam?"

Also, please try to run kdeinit just once. Sometimes it does help.

While it is not the origin of the problem,
in principle it would make sense to only use exiv2
on files it can handle, Gilles, what do you think?
(Also note the related wish
http://bugs.kde.org/show_bug.cgi?id=145743
)
Comment 6 caulier.gilles 2007-08-28 17:16:50 UTC
Arnd, Hartmut

We have found a problem with libkexiv2 if gcc -enable-visibility option is used during compilation. All Exiv2 C++ exception crash digiKam as well.

Code is fixed in KDE3 branch. patch is here :

http://websvn.kde.org/branches/extragear/kde3/libs/libkexiv2/libkexiv2/kexiv2.cpp?r1=704515&r2=704514&pathrev=704515

File to fix is kexiv2.cpp. patch is really simple. Binary compatibilty of libkexiv2 is preserved.

Hartmut, it will be great if you can recompile libkexiv2 on your computer with this patch apply to confirm.

Gilles
Comment 7 Hartmut Krummrei 2007-08-28 18:44:43 UTC
Hi Gilles, I'll give it a try.

The first try: configure output was

checking for vsnprintf... yes
checking for snprintf... yes
checking for X... configure: error: Can't find X includes. Please check
your installation and add the correct paths!

Can anyone please tell me, what i have to install. I did a short check,
but that did not help ...

Hartmut


Gilles Caulier schrieb:
[bugs.kde.org quoted mail]
Comment 8 caulier.gilles 2007-08-28 19:13:41 UTC
Hartmut,

You must recompile libkexiv2, not digiKam. libkexiv2 is a separate package used by digiKam. Look which version is installed on your computer, download the right tarball from sf, apply the patch, and compile/install it.

https://sourceforge.net/project/showfiles.php?group_id=149779&package_id=221579

Gilles
Comment 9 caulier.gilles 2007-08-28 19:14:46 UTC
Hartmut,

>checking for X... configure: error: Can't find X includes. Please check
>your installation and add the correct paths! 

Are you installed X11 developement package ?

Gilles
Comment 10 Hartmut Krummrei 2007-08-28 19:37:34 UTC
I'm working with libexiv2. The sources are in the right directory and I
ran ./configure already. So the output you saw was from ./configure in
the folder "/usr/src/packages/SOURCES/libkexiv2-0.1.5". So, I think I
have to install a certain package, but I don't know the name of that
package(s). I searched for x-development, but found nothing and in
"development" there is to much ...

Hartmut
(I'm not used to compile, but am long enaugh in touch with Linux, so I
know something about configure, make, make install ...)

Hartmut

Gilles Caulier schrieb:
[bugs.kde.org quoted mail]
Comment 11 caulier.gilles 2007-08-28 19:51:48 UTC
Harmut,

developement package use generally a suffix like "devel". If others OpenSuse users are in this room please confirm this point.

Look in README file. There is a list of depencies to solve before to compile

Gilles

Comment 12 Hartmut Krummrei 2007-08-28 20:54:56 UTC
Gilles,

two questions: 1. Have I to download the hole QT 3.3.x-source from
Trolltech and compile it?
2. Or is it so, that I have to use the libkexiv-devel-packet?

With Yast I did not find any libqt (I have several servers as sources)

Hartmut

Gilles Caulier schrieb:
[bugs.kde.org quoted mail]
Comment 13 caulier.gilles 2007-08-28 21:03:14 UTC
Hartmut,

>1. Have I to download the hole QT 3.3.x-source from
>Trolltech and compile it? 

No. just install the Qt3-devel packages. No need to recompile all. smae way with KDE3-devel packages.

>2. Or is it so, that I have to use the libkexiv-devel-packet?
No.

Gilles
Comment 14 Hartmut Krummrei 2007-08-28 22:39:10 UTC
Gilles,

I made it, digikam is running!!!

Summary:

What I had to know was what I had to install. 1. QT3-devel was easy to
find. 2. KDE3-devel ist now kdelibs3-devel. And the configure-command
told me to 3. install exiv2-devel. That was it. ./configure, make, make
install, starting digikam and point it to my picture-folder with
everything like .avi., .gif, .txt, .doc and so on.And digikam read
everything and did not crash.

Guys, that was hard work for me, but I'm glad, Icould do somthing to you
and not only you for me ...

Hartmut

[bugs.kde.org quoted mail]
Comment 15 caulier.gilles 2007-08-28 22:42:01 UTC
Hartmut,

Great to hear...

And are you patched libkexiv2 ? gcc -enable-visibility option have been enable during compilation ?

Gilles 
Comment 16 Hartmut Krummrei 2007-08-28 22:50:49 UTC
Gilles,

I have patched the kexif2.cpp as advised, that was the idea ...

Hartmut
[bugs.kde.org quoted mail]
Comment 17 caulier.gilles 2007-08-28 22:55:54 UTC
Hartmut,

And about gcc visibility option, it have been used during compilation ? give me a trace of compilation messages here ? thanks in advance

Gilles
Comment 18 Hartmut Krummrei 2007-08-28 23:16:56 UTC
Gilles,

I don't know, wether or not the visibility-option has been used or not.
As I said, I'm not used to compiling, so when I entered the
make-command, I was just happy, that it ran without any errors. Fakt is,
that digikam is running, thats what I wanted. If you want, I do the same
thing tomorrow and send you the output. But you have to tell me, which
files I have to delete to get make running once again.

Hartmut

Have a good night!
[bugs.kde.org quoted mail]
Comment 19 Hartmut Krummrei 2007-08-29 16:38:13 UTC
Hallo Gilles,

I collected the output from make in an file. Do you want it and if, how?

Hartmut
[bugs.kde.org quoted mail]
Comment 20 caulier.gilles 2007-08-30 06:31:44 UTC
ok. it's fixed. i close this file now

Gilles
Comment 21 caulier.gilles 2007-09-04 08:56:01 UTC
*** Bug 145497 has been marked as a duplicate of this bug. ***
Comment 22 Arnd Baecker 2007-09-07 18:45:40 UTC
*** Bug has been marked as fixed ***.
Comment 23 caulier.gilles 2018-03-03 08:25:05 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