Summary: | Crash when reading one particular image (possibly libexiv2 related) | ||
---|---|---|---|
Product: | [Applications] digikam | Reporter: | Davide Orlandi <davide> |
Component: | Metadata-Engine | Assignee: | Digikam Developers <digikam-bugs-null> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | ahuggel, caulier.gilles |
Priority: | NOR | ||
Version: | 1.6.0 | ||
Target Milestone: | --- | ||
Platform: | Ubuntu | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | 7.3.0 | |
Sentry Crash Report: | |||
Attachments: | Image causing the crash |
Description
Davide Orlandi
2010-12-06 22:18:24 UTC
I'm not sure if libexiv2 is the problem here. Please, try to reproduce again the crash and post the new backtrace there. Try also to run digiKam into GDB like it's explained here : http://www.digikam.org/drupal/contrib Gilles Caulier The backtrace was taken using gdb, following the procedure indicated by http://techbase.kde.org/Development/Tutorials/Debugging/How_to_create_useful_crash_reports, a page linked by the resource you mentioned. The only difference between the two pages is in the use of "thread apply all backtrace" to get the backtrace instead of "bt". Should I try again using "bt" or is it essentially the same thing? Well, i'm not sure where digiKam crash (in thread i want mean) Run digikam normally and post KDE crash handler trace as well. Gilles Caulier Apparently the KDE crash on ubuntu is unable to detect the installed debug symbols for digikam. I used them with gdb so I'm sure they are there. :) Even clicking "install debug symbols" works for a few seconds, displays a succesful message but then hitting "reload" it says the debug symbols are still missing. Anyway, I ran digikam in gdb again, this time using "bt" instead of "thread apply all backtrace" to generate the backtrace, and it is indeed quite different, much shorter. I hope it may be helpful: Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 0xb5726b70 (LWP 3350)] 0x036b00a1 in ?? () from /usr/lib/libexiv2.so.6 (gdb) bt #0 0x036b00a1 in ?? () from /usr/lib/libexiv2.so.6 #1 0x0093e633 in KExiv2Iface::KExiv2::getImageOrientation() const () from /usr/lib/libkexiv2.so.8 #2 0x01001984 in Digikam::DMetadata::getMetadataField (this=0xb5726038, field=Digikam::MetadataInfo::Orientation) at /build/buildd/digikam-1.6.0/libs/dmetadata/dmetadata.cpp:1194 #3 0x0100390c in Digikam::DMetadata::getMetadataFields (this=0xb5726038, fields=...) at /build/buildd/digikam-1.6.0/libs/dmetadata/dmetadata.cpp:1393 #4 0x01314729 in Digikam::ImageScanner::scanImageInformation (this=0xb5726030) at /build/buildd/digikam-1.6.0/libs/database/imagescanner.cpp:275 #5 0x01318788 in Digikam::ImageScanner::scanFile (this=0xb5726030, mode=Digikam::ImageScanner::NewScan) at /build/buildd/digikam-1.6.0/libs/database/imagescanner.cpp:237 #6 0x0131899d in Digikam::ImageScanner::newFile (this=0xb5726030, albumId=1) at /build/buildd/digikam-1.6.0/libs/database/imagescanner.cpp:102 #7 0x012bf9c4 in Digikam::CollectionScanner::scanNewFile (this=0xb57262b0, info=..., albumId=1) at /build/buildd/digikam-1.6.0/libs/database/collectionscanner.cpp:830 #8 0x012c07a7 in Digikam::CollectionScanner::scanAlbum (this=0xb57262b0, location=..., album=...) at /build/buildd/digikam-1.6.0/libs/database/collectionscanner.cpp:720 #9 0x012c13d7 in Digikam::CollectionScanner::scanAlbumRoot (this=0xb57262b0, location=...) at /build/buildd/digikam-1.6.0/libs/database/collectionscanner.cpp:519 #10 0x012c1728 in Digikam::CollectionScanner::completeScan (this=0xb57262b0) at /build/buildd/digikam-1.6.0/libs/database/collectionscanner.cpp:273 #11 0x08266bce in Digikam::ScanController::run (this=0x86af7f0) at /build/buildd/digikam-1.6.0/digikam/scancontroller.cpp:544 #12 0x02c6ddf9 in QThreadPrivate::start (arg=0x86af7f0) at thread/qthread_unix.cpp:266 #13 0x02ea9cc9 in start_thread () from /lib/libpthread.so.0 #14 0x033976be in clone () from /lib/libc.so.6 Go to Help/Components Info dialog from digiKam and copy and paste the contents here. Are you sure to have only one libexiv2 installed on your computer ? Gilles Caulier (In reply to comment #5) > Go to Help/Components Info dialog from digiKam and copy and paste the contents > here. Here it is: digiKam version 1.6.0 Exiv2 can write to Jp2: Yes Exiv2 can write to Jpeg: Yes Exiv2 can write to Pgf: No Exiv2 can write to Png: Yes Exiv2 can write to Tiff: Yes Exiv2 supports XMP metadata: Yes LibCImg: 130 LibClapack: internal library LibExiv2: 0.19 LibJPEG: 62 LibJasper: 1.900.1 LibKDE: 4.5.1 (KDE 4.5.1) LibKExiv2: 1.1.0 LibKdcraw: 1.1.0 LibLCMS: 118 LibLensFun: external shared library LibLqr: internal library LibPGF: 6.09.44 - internal library LibPNG: 1.2.44 LibQt: 4.7.0 LibRaw: 0.10.0-Beta1 LibTIFF: LIBTIFF, Version 3.9.4 Copyright (c) 1988-1996 Sam Leffler Copyright (c) 1991-1996 Silicon Graphics, Inc. Marble widget: 0.10.1 Parallelized demosaicing: Yes Database backend: QSQLITE LibGphoto2: 2.4.8 LibKipi: 1.1.0 > Are you sure to have only one libexiv2 installed on your computer ? I'm never sure about anything :) This is the output of "find /usr/lib|grep libexiv|xargs ls -la": find /usr/lib|grep libexiv|xargs ls -l -rw-r--r-- 1 root root 62044 2010-09-04 02:45 /usr/lib/gthumb/extensions/libexiv2_tools.so lrwxrwxrwx 1 root root 17 2010-11-20 20:38 /usr/lib/libexiv2.so.6 -> libexiv2.so.6.0.0 -rw-r--r-- 1 root root 1707516 2010-06-15 11:26 /usr/lib/libexiv2.so.6.0.0 Is there a better way to check for additional copies? Exiv2 0.19 is old now 0.21 is out. Please update at least to 0.20 Gilles Caulier Sorry, I'm not experienced enough to switch a library. I installed 0.20 but digikam still uses 0.19.3. [by the way: in the main text of the bug I wrote "...but the crash happens with 0.20 too": I was *wrong*, I installed 0.20 but didn't know digikam was still using 0.19.3] I tried to remove 0.19.3 but the network of dependencies would uninstall almost everything else, including digikam. Finally I tried to change the symbolic link for libexiv2.so.6 pointing it to libexiv2.so.9.0.0 (the new one) but when I ran digikam I got an "undefined symbol" error. It seems I'll have to wait until the next ubuntu release in april. That picture is not really a problem for me (I can simply re-save it with gimp and after that digikam can read it); I opened the bug just to help improve the software. Anyway you can still check if the latest version crashes or works by saving the attached image and trying yourself. Thank you for your patience and great work. to use Exiv2 0.20, libkexiv2 need to be updated too. It's Exiv2 interface for KDE. digiKam do not play with Exiv2 API directly. It use libkexiv2. Gilles Caulier We need feedback using a recent version. 2.0.0 RC is out, please test... Thanks in advance Gilles Caulier digiKam 2.2.0 is out since few weeks. Crash still valid with this version ? Gilles Caulier I'm afraid I can't help anymore because I stopped using Digikam several months ago. I'm sorry. m(_ _)m Not reproducible with digiKam 7.3.0 and Exiv2 0.27.4 |