Created attachment 54224 [details] Image causing the crash Version: 1.6.0 OS: Linux Just adding this image (attached) to a collection causes the crash. Tested with 1.4.0 (official ubuntu 10.10 repositories) and 1.6.0 (from http://ppa.launchpad.net/ferramroberto/digikam/ubuntu). Maybe related to bug 242109? I'm not able to understand a backtrace, but I can see libexiv2 is mentioned. The backtrace was taken using exiv2 0.19.3, but the crash happens with 0.20 (from http://ppa.launchpad.net/pmjdebruijn/darktable-release-plus/ubuntu) too. Dumping exif metadata of the image from commandline with exiv2 executable seems to be unaffected. gthumb is unaffected, too. Backtrace follows: Starting program: /usr/bin/digikam [Thread debugging using libthread_db enabled] [New Thread 0xb7d65b70 (LWP 4928)] [New Thread 0xb5726b70 (LWP 4929)] [New Thread 0xb4f25b70 (LWP 4930)] QSqlDatabasePrivate::removeDatabase: connection 'ConnectionTest' is still in use, all queries will cease to work. [Thread 0xb4f25b70 (LWP 4930) exited] [New Thread 0xb4f25b70 (LWP 4931)] [New Thread 0xb45fab70 (LWP 4932)] QLayout: Cannot add null widget to QVBoxLayout/ digikam(4924)/kdecore (services) KMimeTypeFactory::parseMagic: Now parsing "/usr/share/mime/magic" digikam(4924)/kdecore (services) KMimeTypeFactory::parseMagic: Now parsing "/home/davide/.local/share/mime/magic" kio_trash(4933)/kdecore (services) KMimeTypeFactory::parseMagic: Now parsing "/usr/share/mime/magic" kio_trash(4933)/kdecore (services) KMimeTypeFactory::parseMagic: Now parsing "/home/davide/.local/share/mime/magic" [Thread 0xb45fab70 (LWP 4932) exited] klauncher(3774)/kio (KLauncher): SlavePool: No communication with slave. Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 0xb5726b70 (LWP 4929)] 0x036b00a1 in ?? () from /usr/lib/libexiv2.so.6 (gdb) thread apply all backtrace Thread 5 (Thread 0xb4f25b70 (LWP 4931)): #0 0x0012e416 in __kernel_vsyscall () #1 0x02eae4dc in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0 #2 0x02c6e9c7 in wait (this=0x8950bd0, mutex=0x8950bcc, time=4294967295) at thread/qwaitcondition_unix.cpp:88 #3 QWaitCondition::wait (this=0x8950bd0, mutex=0x8950bcc, time=4294967295) at thread/qwaitcondition_unix.cpp:160 #4 0x0107d4ba in Digikam::ParkingThread::run (this=0x8950bc0) at /build/buildd/digikam-1.6.0/libs/threads/threadmanager.cpp:112 #5 0x02c6ddf9 in QThreadPrivate::start (arg=0x8950bc0) at thread/qthread_unix.cpp:266 #6 0x02ea9cc9 in start_thread () from /lib/libpthread.so.0 #7 0x033976be in clone () from /lib/libc.so.6 Thread 3 (Thread 0xb5726b70 (LWP 4929)): #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=0x86af970) at /build/buildd/digikam-1.6.0/digikam/scancontroller.cpp:544 #12 0x02c6ddf9 in QThreadPrivate::start (arg=0x86af970) 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 Thread 2 (Thread 0xb7d65b70 (LWP 4928)): #0 0x0012e416 in __kernel_vsyscall () #1 0x03388df6 in poll () from /lib/libc.so.6 #2 0x039e8a1b in g_poll () from /lib/libglib-2.0.so.0 #3 0x039db43c in ?? () from /lib/libglib-2.0.so.0 #4 0x039dbba7 in g_main_loop_run () from /lib/libglib-2.0.so.0 #5 0x055ec6b4 in ?? () from /usr/lib/libgio-2.0.so.0 #6 0x03a0248f in ?? () from /lib/libglib-2.0.so.0 #7 0x02ea9cc9 in start_thread () from /lib/libpthread.so.0 #8 0x033976be in clone () from /lib/libc.so.6 Thread 1 (Thread 0xb7fca740 (LWP 4924)): #0 0x0012e416 in __kernel_vsyscall () #1 0x03388df6 in poll () from /lib/libc.so.6 #2 0x039e8a1b in g_poll () from /lib/libglib-2.0.so.0 #3 0x039db43c in ?? () from /lib/libglib-2.0.so.0 #4 0x039db848 in g_main_context_iteration () from /lib/libglib-2.0.so.0 #5 0x02d9e565 in QEventDispatcherGlib::processEvents (this=0x8516e70, flags=...) at kernel/qeventdispatcher_glib.cpp:415 #6 0x02052be5 in QGuiEventDispatcherGlib::processEvents (this=0x8516e70, flags=...) at kernel/qguieventdispatcher_glib.cpp:204 #7 0x02d6e609 in QEventLoop::processEvents (this=0x86ac050, flags=DWARF-2 expression error: DW_OP_reg operations must be used either alone or in conjuction with DW_OP_piece or DW_OP_bit_piece. ) at kernel/qeventloop.cpp:149 #8 0x02d6ea8a in QEventLoop::exec (this=0x86ac050, flags=...) at kernel/qeventloop.cpp:201 #9 0x0826a0ec in Digikam::ScanController::completeCollectionScan (this=0x86af970, splash=0x0) at /build/buildd/digikam-1.6.0/digikam/scancontroller.cpp:381 #10 0x080dbd63 in Digikam::SetupCollectionModel::apply (this=0x87f8710) at /build/buildd/digikam-1.6.0/utilities/setup/setupcollectionview.cpp:477 #11 0x080e74a0 in Digikam::Setup::slotOkClicked (this=0x86573a8) at /build/buildd/digikam-1.6.0/utilities/setup/setup.cpp:387 #12 0x080e7803 in Digikam::Setup::qt_metacall (this=0x86573a8, _c=QMetaObject::InvokeMetaMethod, _id=75, _a=0xbfffd5cc) at /build/buildd/digikam-1.6.0/obj-i686-linux-gnu/digikam/setup.moc:72 #13 0x02d758ca in QMetaObject::metacall (object=0x86573a8, cl=14, idx=75, argv=0xbfffd5cc) at kernel/qmetaobject.cpp:237 #14 0x02d886ad in QMetaObject::activate (sender=0x86573a8, m=0x84df1ac, local_signal_index=9, argv=0xfffffdfc) at kernel/qobject.cpp:3280 #15 0x01bcf4b7 in KDialog::okClicked (this=0x86573a8) at ./kdialog.moc:258 #16 0x01bd1a60 in KDialog::slotButtonClicked (this=0x86573a8, button=4) at ../../kdeui/dialogs/kdialog.cpp:871 #17 0x01bd3b79 in KDialog::qt_metacall (this=0x86573a8, _c=QMetaObject::InvokeMetaMethod, _id=33, _a=0xbfffd7e8) at ./kdialog.moc:190 #18 0x01cc785a in KPageDialog::qt_metacall (this=0x86573a8, _c=QMetaObject::InvokeMetaMethod, _id=69, _a=0xbfffd7e8) at ./kpagedialog.moc:70 #19 0x080e77ec in Digikam::Setup::qt_metacall (this=0x86573a8, _c=QMetaObject::InvokeMetaMethod, _id=69, _a=0xbfffd7e8) at /build/buildd/digikam-1.6.0/obj-i686-linux-gnu/digikam/setup.moc:67 #20 0x02d758ca in QMetaObject::metacall (object=0x86573a8, cl=14, idx=69, argv=0xbfffd7e8) at kernel/qmetaobject.cpp:237 #21 0x02d886ad in QMetaObject::activate (sender=0x877f518, m=0x2ea10f8, local_signal_index=0, argv=0xfffffdfc) at kernel/qobject.cpp:3280 #22 0x02d8b5a3 in QSignalMapper::mapped (this=0x877f518, _t1=4) at .moc/release-shared/moc_qsignalmapper.cpp:101 #23 0x02d8c7ed in QSignalMapper::map (this=0x877f518, sender=0x8746b48) at kernel/qsignalmapper.cpp:266 #24 0x02d8c9ce in QSignalMapper::map (this=0x877f518) at kernel/qsignalmapper.cpp:257 #25 0x02d8ca9b in QSignalMapper::qt_metacall (this=0x877f518, _c=QMetaObject::InvokeMetaMethod, _id=4, _a=0xbfffd988) at .moc/release-shared/moc_qsignalmapper.cpp:87 #26 0x02d758ca in QMetaObject::metacall (object=0x877f518, cl=14, idx=8, argv=0xbfffd988) at kernel/qmetaobject.cpp:237 #27 0x02d886ad in QMetaObject::activate (sender=0x8746b48, m=0x2922704, local_signal_index=2, argv=0xfffffdfc) at kernel/qobject.cpp:3280 #28 0x026ff019 in QAbstractButton::clicked (this=0x8746b48, _t1=false) at .moc/release-shared/moc_qabstractbutton.cpp:206 #29 0x023beff9 in QAbstractButtonPrivate::emitClicked (this=0x874e5f0) at widgets/qabstractbutton.cpp:546 #30 0x023c06f4 in QAbstractButtonPrivate::click (this=0x874e5f0) at widgets/qabstractbutton.cpp:539 #31 0x023c09ae in QAbstractButton::mouseReleaseEvent (this=0x8746b48, e=0xbfffe0d0) at widgets/qabstractbutton.cpp:1121 #32 0x01feee08 in QWidget::event (this=0x8746b48, event=0xbfffe0d0) at kernel/qwidget.cpp:8187 #33 0x023bee9e in QAbstractButton::event (this=0x8746b48, e=0x114) at widgets/qabstractbutton.cpp:1080 #34 0x0246cc22 in QPushButton::event (this=0x8746b48, e=0xbfffe0d0) at widgets/qpushbutton.cpp:683 #35 0x01f90fdc in QApplicationPrivate::notify_helper (this=0x8517190, receiver=0x8746b48, e=0xbfffe0d0) at kernel/qapplication.cpp:4396 #36 0x01f97c2e in QApplication::notify (this=0xbfffeec4, receiver=0x8746b48, e=0xbfffe0d0) at kernel/qapplication.cpp:3959 #37 0x01c8668a in KApplication::notify (this=0xbfffeec4, receiver=0x8746b48, event=0xbfffe0d0) at ../../kdeui/kernel/kapplication.cpp:310 #38 0x02d6fb3b in QCoreApplication::notifyInternal (this=0xbfffeec4, receiver=0x8746b48, event=0xbfffe0d0) at kernel/qcoreapplication.cpp:732 #39 0x01f96094 in sendEvent (receiver=0x8746b48, event=0xbfffe0d0, alienWidget=0x8746b48, nativeWidget=0x8744e50, buttonDown=0x292b3c0, lastMouseReceiver=..., spontaneous=true) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215 #40 QApplicationPrivate::sendMouseEvent (receiver=0x8746b48, event=0xbfffe0d0, alienWidget=0x8746b48, nativeWidget=0x8744e50, buttonDown=0x292b3c0, lastMouseReceiver=..., spontaneous=true) at kernel/qapplication.cpp:3058 #41 0x02024d10 in QETWidget::translateMouseEvent (this=0x8744e50, event=0xbfffe5ec) at kernel/qapplication_x11.cpp:4403 #42 0x02024151 in QApplication::x11ProcessEvent (this=0xbfffeec4, event=0xbfffe5ec) at kernel/qapplication_x11.cpp:3414 #43 0x0205336a in x11EventSourceDispatch (s=0x851a400, callback=0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146 #44 0x039d7855 in g_main_context_dispatch () from /lib/libglib-2.0.so.0 #45 0x039db668 in ?? () from /lib/libglib-2.0.so.0 #46 0x039db848 in g_main_context_iteration () from /lib/libglib-2.0.so.0 #47 0x02d9e565 in QEventDispatcherGlib::processEvents (this=0x8516e70, flags=...) at kernel/qeventdispatcher_glib.cpp:415 #48 0x02052be5 in QGuiEventDispatcherGlib::processEvents (this=0x8516e70, flags=...) at kernel/qguieventdispatcher_glib.cpp:204 #49 0x02d6e609 in QEventLoop::processEvents (this=0xbfffe8e0, flags=DWARF-2 expression error: DW_OP_reg operations must be used either alone or in conjuction with DW_OP_piece or DW_OP_bit_piece. ) at kernel/qeventloop.cpp:149 #50 0x02d6ea8a in QEventLoop::exec (this=0xbfffe8e0, flags=...) at kernel/qeventloop.cpp:201 #51 0x024fb873 in QDialog::exec (this=0x86573a8) at dialogs/qdialog.cpp:552 #52 0x080e9f43 in Digikam::Setup::execSinglePage (parent=0x0, page=Digikam::Setup::CollectionsPage) at /build/buildd/digikam-1.6.0/utilities/setup/setup.cpp:366 #53 0x080e9fa9 in Digikam::Setup::execSinglePage (page=Digikam::Setup::CollectionsPage) at /build/buildd/digikam-1.6.0/utilities/setup/setup.cpp:358 #54 0x081beb09 in Digikam::AlbumManager::setDatabase (this=0x8665d30, params=..., priority=false, suggestedAlbumRoot=...) at /build/buildd/digikam-1.6.0/digikam/albummanager.cpp:906 #55 0x082ba63f in main (argc=1, argv=0xbffff334) at /build/buildd/digikam-1.6.0/digikam/main.cpp:171 Reproducible: Always Steps to Reproduce: Just add the attached image to a collection. Actual Results: Digikam crashes Expected Results: It should either read the image or display an error. Tested without a full KDE, just gnome and the minimal dependencies pulled by apt-get.
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