Bug 136855

Summary: Editing metadata on a few selected imagefiles and clicking forward or apply crashes digikam.
Product: [Applications] digikam Reporter: Caspar Maessen <cmaessen>
Component: Plugin-Generic-MetadataEditAssignee: Digikam Developers <digikam-bugs-null>
Status: RESOLVED FIXED    
Severity: crash CC: ahuggel
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: openSUSE   
OS: Linux   
Latest Commit: Version Fixed In: 0.1.0
Sentry Crash Report:
Attachments: imagefile
imagefile
imagefile
valgrind backtrace text
Exiv2Iface test-driver
Simple Makefile for the Exiv2Iface test-driver
Updated Exiv2Iface test driver

Description Caspar Maessen 2006-11-04 23:42:11 UTC
Version:           digikam svn-601980 / kipi-plugins svn-601979 (using KDE KDE 3.5.5)
Installed from:    SuSE RPMs
Compiler:          gcc-4.1.0-25 
OS:                Linux

Testing the new metadata/edit IPTC option. 
Selected a few images with <ctrl><a>. Edited Credits/Copyright/"Caspar".
Click [OK] -> Dialog quits. No result in the metadata tab.
Same procedure but click [Forward] -> Digikam crashes.
Same procedure but click [Apply] -> Digikam crashes.

BACKTRACE OF [Forward]:
caspar@casco:~> gdb digikam
GNU gdb 6.4
Copyright 2005 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i586-suse-linux"...(no debugging symbols found)
Using host libthread_db library "/lib/libthread_db.so.1".

(gdb) run
Starting program: /opt/kde3/bin/digikam
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
[Thread debugging using libthread_db enabled]
[New Thread -1239882064 (LWP 9687)]
[New Thread -1242555488 (LWP 9694)]
[Thread -1242555488 (LWP 9694) exited]
[New Thread -1250948192 (LWP 9695)]
[Thread -1250948192 (LWP 9695) exited]
digikam: ScanLib: Finding non-existing Albums: 4 ms
digikam: ScanLib: Finding items not in the database or disk: 252 ms
digikam: ScanLib: Updating items without date: 1 ms
digikam: Found dcraw version: 8.40
KIPI (loading): KIPI::PluginLoader: plugin KameraKlient is in the ignore list for host application
KIPI (loading): Plugin_CDArchiving plugin loaded
KIPI (loading): KIPI::PluginLoader: Loaded plugin CDArchiving
KIPI (loading): Plugin_SlideShow plugin loaded
KIPI (loading): KIPI::PluginLoader: Loaded plugin SlideShow
KIPI (loading): KIPI::PluginLoader: Loaded plugin HTMLExport
KIPI (loading): Plugin_SendImages plugin loaded
KIPI (loading): KIPI::PluginLoader: Loaded plugin SendImages
KIPI (loading): Plugin_GPSSync plugin loaded
KIPI (loading): KIPI::PluginLoader: Loaded plugin GPSSync
KIPI (loading): Plugin_JPEGLossless plugin loaded
KIPI (loading): KIPI::PluginLoader: Loaded plugin JPEGLossless
KIPI (loading): Plugin_WallPaper plugin loaded
KIPI (loading): KIPI::PluginLoader: Loaded plugin WallPaper
KIPI (loading): Plugin_FindImages plugin loaded
KIPI (loading): KIPI::PluginLoader: Loaded plugin FindImages
KIPI (loading): Plugin_SimpleViewer plugin loaded
KIPI (loading): KIPI::PluginLoader: Loaded plugin SimpleViewer
KIPI (loading): Plugin_MetadataEdit plugin loaded
KIPI (loading): KIPI::PluginLoader: Loaded plugin MetadataEdit
KIPI (loading): Plugin_TimeAdjust plugin loaded
KIPI (loading): KIPI::PluginLoader: Loaded plugin TimeAdjust
KIPI (loading): Plugin_PrintWizard plugin loaded
KIPI (loading): KIPI::PluginLoader: Loaded plugin PrintWizard
KIPI (loading): Plugin_Mpegencoder plugin loaded
KIPI (loading): KIPI::PluginLoader: Loaded plugin MPEGEncoder
KIPI (loading): Plugin_GalleryExport plugin loaded
KIPI (loading): KIPI::PluginLoader: Loaded plugin GalleryExport
KIPI (loading): Loaded RawConverter
KIPI (loading): KIPI::PluginLoader: Loaded plugin RawConverter
KIPI (loading): Loaded Plugin_Calendar
KIPI (loading): KIPI::PluginLoader: Loaded plugin Calendar
KIPI (loading): Plugin_BatchProcessImages plugin loaded
KIPI (loading): KIPI::PluginLoader: Loaded plugin BatchProcessImages
KIPI (loading): Plugin_AcquireImages plugin loaded
KIPI (loading): KIPI::PluginLoader: Loaded plugin AcquireImages
digikam: ImagePlugin_Core plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_Kern
digikam: ImagePlugin_ChannelMixer plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_KanaalMixer
digikam: ImagePlugin_LensDistortion plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_Lensafwijking
digikam: ImagePlugin_Emboss plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_Reliëf
digikam: ImagePlugin_BlurFX plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_VervaagFX
digikam: ImagePlugin_Solarize plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_Solarizeren
digikam: ImagePlugin_Texture plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_Textuur
digikam: ImagePlugin_AntiVignetting plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_AntiVignetting
digikam: ImagePlugin_OilPaint plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_Olieverf
digikam: ImagePlugin_WhiteBalance plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_Witbalans
digikam: ImagePlugin_Infrared plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_Infrarood
digikam: ImagePlugin_AdjustCurves plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_CurvesAanpassen
digikam: ImagePlugin_FreeRotation plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_VrijeRotatie
digikam: ImagePlugin_Border plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_Rand
digikam: ImagePlugin_Restoration plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_Restoratie
digikam: ImagePlugin_DistortionFX plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_vervormingseffect
digikam: ImagePlugin_Perspective plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_Perspectief
digikam: ImagePlugin_Unsharp plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_Onscherp
digikam: ImagePlugin_FilmGrain plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_filmkorrel
digikam: ImagePlugin_SuperImpose plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_SjabloonToevoegen
digikam: ImagePlugin_BlowUp plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_Opblazen
digikam: ImagePlugin_ShearTool plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_Schuintrekken
digikam: ImagePlugin_NoiseReduction plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_Ruisreductie
digikam: ImagePlugin_InPainting plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_Inkleuren
digikam: ImagePlugin_RainDrop plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_regendruppels
digikam: ImagePlugin_Charcoal plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_Houtskool
digikam: ImagePlugin_HotPixels plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_HotPixels
digikam: ImagePlugin_Refocus plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_OpnieuwFocussen
digikam: ImagePlugin_AdjustLevels plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_NiveausAanpassen
digikam: ImagePlugin_InsertText plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_TekstInvoegen
terminate called after throwing an instance of 'std::bad_alloc'
  what():  St9bad_alloc

Program received signal SIGABRT, Aborted.
[Switching to Thread -1239882064 (LWP 9687)]
0xffffe410 in __kernel_vsyscall ()
(gdb) bt
#0  0xffffe410 in __kernel_vsyscall ()
#1  0xb61bf7d0 in raise () from /lib/libc.so.6
#2  0xb61c0ea3 in abort () from /lib/libc.so.6
#3  0xb639d3a0 in __gnu_cxx::__verbose_terminate_handler ()
   from /usr/lib/libstdc++.so.6
#4  0xb639adc5 in std::set_unexpected () from /usr/lib/libstdc++.so.6
#5  0xb639ae02 in std::terminate () from /usr/lib/libstdc++.so.6
#6  0xb639af3a in __cxa_throw () from /usr/lib/libstdc++.so.6
#7  0xb639b37e in operator new () from /usr/lib/libstdc++.so.6
#8  0xb639b45d in operator new[] () from /usr/lib/libstdc++.so.6
#9  0xb793edde in Exiv2::ExifData::updateRange (this=0x867736c, begin=@0x0,
    end=@0xbf992208, byteOrder=Exiv2::littleEndian) at types.hpp:181
#10 0xb793f046 in Exiv2::ExifData::updateEntries (this=0x867736c)
    at exif.cpp:1019
#11 0xb79402c7 in Exiv2::ExifData::copy (this=0x867736c) at exif.cpp:611
#12 0xb7957d33 in Exiv2::JpegBase::doWriteMetadata (this=0x8677360,
    outIo=@0x86361e8) at jpgimage.cpp:482
#13 0xb7958624 in Exiv2::JpegBase::writeMetadata (this=0x8677360)
    at jpgimage.cpp:360
#14 0xb3950a00 in KIPIPlugins::Exiv2Iface::save ()
   from /opt/kde3/lib/kde3/kipiplugin_metadataedit.so
#15 0xb39217b7 in KIPIMetadataEditPlugin::IPTCEditDialog::slotApply ()
   from /opt/kde3/lib/kde3/kipiplugin_metadataedit.so
#16 0xb3921f10 in KIPIMetadataEditPlugin::IPTCEditDialog::slotUser1 ()
   from /opt/kde3/lib/kde3/kipiplugin_metadataedit.so
#17 0xb732931f in KDialogBase::qt_invoke () from /opt/kde3/lib/libkdeui.so.4
#18 0xb39241f0 in KIPIMetadataEditPlugin::IPTCEditDialog::qt_invoke ()
   from /opt/kde3/lib/kde3/kipiplugin_metadataedit.so
#19 0xb6981f1d in QObject::activate_signal ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#20 0xb6982b7d in QObject::activate_signal ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#21 0xb6cc25dc in QButton::clicked () from /usr/lib/qt3/lib/libqt-mt.so.3
#22 0xb6a15b13 in QButton::mouseReleaseEvent ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#23 0xb69bac40 in QWidget::event () from /usr/lib/qt3/lib/libqt-mt.so.3
#24 0xb6922f07 in QApplication::internalNotify ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#25 0xb6923e3b in QApplication::notify () from /usr/lib/qt3/lib/libqt-mt.so.3
#26 0xb7065bd3 in KApplication::notify () from /opt/kde3/lib/libkdecore.so.4
#27 0xb68c2e12 in QETWidget::translateMouseEvent ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#28 0xb68c1fe6 in QApplication::x11ProcessEvent ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#29 0xb68d262a in QEventLoop::processEvents ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#30 0xb6939d28 in QEventLoop::enterLoop () from /usr/lib/qt3/lib/libqt-mt.so.3
#31 0xb6922a2f in QApplication::enter_loop ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#32 0xb6b08515 in QDialog::exec () from /usr/lib/qt3/lib/libqt-mt.so.3
#33 0xb3903927 in Plugin_MetadataEdit::slotEditIptc ()
   from /opt/kde3/lib/kde3/kipiplugin_metadataedit.so
#34 0xb3904aba in Plugin_MetadataEdit::qt_invoke ()
   from /opt/kde3/lib/kde3/kipiplugin_metadataedit.so
#35 0xb6981f1d in QObject::activate_signal ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#36 0xb6982b7d in QObject::activate_signal ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#37 0xb724bde9 in KAction::activated () from /opt/kde3/lib/libkdeui.so.4
#38 0xb728e2c2 in KAction::slotActivated () from /opt/kde3/lib/libkdeui.so.4
#39 0xb7352e6f in KAction::qt_invoke () from /opt/kde3/lib/libkdeui.so.4
#40 0xb6981f1d in QObject::activate_signal ()
---Type <return> to continue, or q <return> to quit---
   from /usr/lib/qt3/lib/libqt-mt.so.3
#41 0xb6982b7d in QObject::activate_signal ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#42 0xb6f81769 in KAccelPrivate::menuItemActivated ()
   from /opt/kde3/lib/libkdecore.so.4
#43 0xb6fd2077 in KAccelPrivate::emitActivatedSignal ()
   from /opt/kde3/lib/libkdecore.so.4
#44 0xb7019439 in KAccelPrivate::eventFilter ()
   from /opt/kde3/lib/libkdecore.so.4
#45 0xb698181c in QObject::activate_filters ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#46 0xb698188b in QObject::event () from /usr/lib/qt3/lib/libqt-mt.so.3
#47 0xb69ba8cc in QWidget::event () from /usr/lib/qt3/lib/libqt-mt.so.3
#48 0xb6a759c2 in QMainWindow::event () from /usr/lib/qt3/lib/libqt-mt.so.3
#49 0xb6922f07 in QApplication::internalNotify ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#50 0xb6924262 in QApplication::notify () from /usr/lib/qt3/lib/libqt-mt.so.3
#51 0xb7065bd3 in KApplication::notify () from /opt/kde3/lib/libkdecore.so.4
#52 0xb6fde2f2 in KAccelEventHandler::x11Event ()
   from /opt/kde3/lib/libkdecore.so.4
#53 0xb706403b in KApplication::x11EventFilter ()
   from /opt/kde3/lib/libkdecore.so.4
#54 0xb68b1df4 in qt_x11EventFilter () from /usr/lib/qt3/lib/libqt-mt.so.3
#55 0xb68c1773 in QApplication::x11ProcessEvent ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#56 0xb68d262a in QEventLoop::processEvents ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#57 0xb6939d28 in QEventLoop::enterLoop () from /usr/lib/qt3/lib/libqt-mt.so.3
#58 0xb6939bbe in QEventLoop::exec () from /usr/lib/qt3/lib/libqt-mt.so.3
#59 0xb6922abf in QApplication::exec () from /usr/lib/qt3/lib/libqt-mt.so.3
#60 0x0804aa49 in main ()
(gdb)



BACKTRACE OF [Apply]
caspar@casco:~> gdb digikam
GNU gdb 6.4
Copyright 2005 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i586-suse-linux"...(no debugging symbols found)
Using host libthread_db library "/lib/libthread_db.so.1".

(gdb) run
Starting program: /opt/kde3/bin/digikam
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
[Thread debugging using libthread_db enabled]
[New Thread -1240185168 (LWP 11199)]
[New Thread -1242858592 (LWP 11206)]
[New Thread -1251251296 (LWP 11207)]
[Thread -1242858592 (LWP 11206) exited]
[Thread -1251251296 (LWP 11207) exited]
digikam: ScanLib: Finding non-existing Albums: 4 ms
digikam: ScanLib: Finding items not in the database or disk: 256 ms
digikam: ScanLib: Updating items without date: 2 ms
digikam: Found dcraw version: 8.40
KIPI (loading): KIPI::PluginLoader: plugin KameraKlient is in the ignore list for host application
KIPI (loading): Plugin_CDArchiving plugin loaded
KIPI (loading): KIPI::PluginLoader: Loaded plugin CDArchiving
KIPI (loading): Plugin_SlideShow plugin loaded
KIPI (loading): KIPI::PluginLoader: Loaded plugin SlideShow
KIPI (loading): KIPI::PluginLoader: Loaded plugin HTMLExport
KIPI (loading): Plugin_SendImages plugin loaded
KIPI (loading): KIPI::PluginLoader: Loaded plugin SendImages
KIPI (loading): Plugin_GPSSync plugin loaded
KIPI (loading): KIPI::PluginLoader: Loaded plugin GPSSync
KIPI (loading): Plugin_JPEGLossless plugin loaded
KIPI (loading): KIPI::PluginLoader: Loaded plugin JPEGLossless
KIPI (loading): Plugin_WallPaper plugin loaded
KIPI (loading): KIPI::PluginLoader: Loaded plugin WallPaper
KIPI (loading): Plugin_FindImages plugin loaded
KIPI (loading): KIPI::PluginLoader: Loaded plugin FindImages
KIPI (loading): Plugin_SimpleViewer plugin loaded
KIPI (loading): KIPI::PluginLoader: Loaded plugin SimpleViewer
KIPI (loading): Plugin_MetadataEdit plugin loaded
KIPI (loading): KIPI::PluginLoader: Loaded plugin MetadataEdit
KIPI (loading): Plugin_TimeAdjust plugin loaded
KIPI (loading): KIPI::PluginLoader: Loaded plugin TimeAdjust
KIPI (loading): Plugin_PrintWizard plugin loaded
KIPI (loading): KIPI::PluginLoader: Loaded plugin PrintWizard
KIPI (loading): Plugin_Mpegencoder plugin loaded
KIPI (loading): KIPI::PluginLoader: Loaded plugin MPEGEncoder
KIPI (loading): Plugin_GalleryExport plugin loaded
KIPI (loading): KIPI::PluginLoader: Loaded plugin GalleryExport
KIPI (loading): Loaded RawConverter
KIPI (loading): KIPI::PluginLoader: Loaded plugin RawConverter
KIPI (loading): Loaded Plugin_Calendar
KIPI (loading): KIPI::PluginLoader: Loaded plugin Calendar
KIPI (loading): Plugin_BatchProcessImages plugin loaded
KIPI (loading): KIPI::PluginLoader: Loaded plugin BatchProcessImages
KIPI (loading): Plugin_AcquireImages plugin loaded
KIPI (loading): KIPI::PluginLoader: Loaded plugin AcquireImages
digikam: ImagePlugin_Core plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_Kern
digikam: ImagePlugin_ChannelMixer plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_KanaalMixer
digikam: ImagePlugin_LensDistortion plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_Lensafwijking
digikam: ImagePlugin_Emboss plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_Reliëf
digikam: ImagePlugin_BlurFX plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_VervaagFX
digikam: ImagePlugin_Solarize plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_Solarizeren
digikam: ImagePlugin_Texture plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_Textuur
digikam: ImagePlugin_AntiVignetting plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_AntiVignetting
digikam: ImagePlugin_OilPaint plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_Olieverf
digikam: ImagePlugin_WhiteBalance plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_Witbalans
digikam: ImagePlugin_Infrared plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_Infrarood
digikam: ImagePlugin_AdjustCurves plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_CurvesAanpassen
digikam: ImagePlugin_FreeRotation plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_VrijeRotatie
digikam: ImagePlugin_Border plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_Rand
digikam: ImagePlugin_Restoration plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_Restoratie
digikam: ImagePlugin_DistortionFX plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_vervormingseffect
digikam: ImagePlugin_Perspective plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_Perspectief
digikam: ImagePlugin_Unsharp plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_Onscherp
digikam: ImagePlugin_FilmGrain plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_filmkorrel
digikam: ImagePlugin_SuperImpose plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_SjabloonToevoegen
digikam: ImagePlugin_BlowUp plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_Opblazen
digikam: ImagePlugin_ShearTool plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_Schuintrekken
digikam: ImagePlugin_NoiseReduction plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_Ruisreductie
digikam: ImagePlugin_InPainting plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_Inkleuren
digikam: ImagePlugin_RainDrop plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_regendruppels
digikam: ImagePlugin_Charcoal plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_Houtskool
digikam: ImagePlugin_HotPixels plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_HotPixels
digikam: ImagePlugin_Refocus plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_OpnieuwFocussen
digikam: ImagePlugin_AdjustLevels plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_NiveausAanpassen
digikam: ImagePlugin_InsertText plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_TekstInvoegen

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1240185168 (LWP 11199)]
0xb61b1f6e in free () from /lib/libc.so.6
(gdb) bt
#0  0xb61b1f6e in free () from /lib/libc.so.6
#1  0xb634fe51 in operator delete () from /usr/lib/libstdc++.so.6
#2  0xb632bfed in std::string::_Rep::_M_destroy () from /usr/lib/libstdc++.so.6
#3  0xb792b9e5 in ~ExifKey (this=0x0)
    at /usr/include/c++/4.0.3/bits/basic_string.h:228
#4  0xb78f4226 in ~Exifdatum (this=0x8273228)
    at /usr/include/c++/4.0.3/memory:260
#5  0xb78f451c in ~ExifData (this=0x867e2f4)
    at /usr/include/c++/4.0.3/bits/stl_construct.h:107
#6  0xb790eab6 in ~JpegImage (this=0x867e2e8) at jpgimage.hpp:123
#7  0xb7eb27d7 in std::auto_ptr<Exiv2::Image>::~auto_ptr ()
   from /opt/kde3/lib/libdigikam.so.0
#8  0xb3906a12 in KIPIPlugins::Exiv2Iface::save ()
   from /opt/kde3/lib/kde3/kipiplugin_metadataedit.so
#9  0xb38d77b7 in KIPIMetadataEditPlugin::IPTCEditDialog::slotApply ()
   from /opt/kde3/lib/kde3/kipiplugin_metadataedit.so
#10 0xb72df353 in KDialogBase::qt_invoke () from /opt/kde3/lib/libkdeui.so.4
#11 0xb38da1f0 in KIPIMetadataEditPlugin::IPTCEditDialog::qt_invoke ()
   from /opt/kde3/lib/kde3/kipiplugin_metadataedit.so
#12 0xb6937e81 in QObject::activate_signal ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#13 0xb6938b7d in QObject::activate_signal ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#14 0xb6c785dc in QButton::clicked () from /usr/lib/qt3/lib/libqt-mt.so.3
#15 0xb69cbb13 in QButton::mouseReleaseEvent ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#16 0xb6970c40 in QWidget::event () from /usr/lib/qt3/lib/libqt-mt.so.3
#17 0xb68d8f07 in QApplication::internalNotify ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#18 0xb68d9e3b in QApplication::notify () from /usr/lib/qt3/lib/libqt-mt.so.3
#19 0xb701bbd3 in KApplication::notify () from /opt/kde3/lib/libkdecore.so.4
#20 0xb6878e12 in QETWidget::translateMouseEvent ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#21 0xb6877fe6 in QApplication::x11ProcessEvent ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#22 0xb688862a in QEventLoop::processEvents ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#23 0xb68efd28 in QEventLoop::enterLoop () from /usr/lib/qt3/lib/libqt-mt.so.3
#24 0xb68d8a2f in QApplication::enter_loop ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#25 0xb6abe515 in QDialog::exec () from /usr/lib/qt3/lib/libqt-mt.so.3
#26 0xb38b9927 in Plugin_MetadataEdit::slotEditIptc ()
   from /opt/kde3/lib/kde3/kipiplugin_metadataedit.so
#27 0xb38baaba in Plugin_MetadataEdit::qt_invoke ()
   from /opt/kde3/lib/kde3/kipiplugin_metadataedit.so
#28 0xb6937f1d in QObject::activate_signal ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#29 0xb6938b7d in QObject::activate_signal ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#30 0xb7201de9 in KAction::activated () from /opt/kde3/lib/libkdeui.so.4
#31 0xb72442c2 in KAction::slotActivated () from /opt/kde3/lib/libkdeui.so.4
#32 0xb7308e6f in KAction::qt_invoke () from /opt/kde3/lib/libkdeui.so.4
#33 0xb6937f1d in QObject::activate_signal ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#34 0xb6938b7d in QObject::activate_signal ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#35 0xb6f37769 in KAccelPrivate::menuItemActivated ()
   from /opt/kde3/lib/libkdecore.so.4
#36 0xb6f88077 in KAccelPrivate::emitActivatedSignal ()
   from /opt/kde3/lib/libkdecore.so.4
#37 0xb6fcf439 in KAccelPrivate::eventFilter ()
   from /opt/kde3/lib/libkdecore.so.4
---Type <return> to continue, or q <return> to quit---
#38 0xb693781c in QObject::activate_filters ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#39 0xb693788b in QObject::event () from /usr/lib/qt3/lib/libqt-mt.so.3
#40 0xb69708cc in QWidget::event () from /usr/lib/qt3/lib/libqt-mt.so.3
#41 0xb6a2b9c2 in QMainWindow::event () from /usr/lib/qt3/lib/libqt-mt.so.3
#42 0xb68d8f07 in QApplication::internalNotify ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#43 0xb68da262 in QApplication::notify () from /usr/lib/qt3/lib/libqt-mt.so.3
#44 0xb701bbd3 in KApplication::notify () from /opt/kde3/lib/libkdecore.so.4
#45 0xb6f942f2 in KAccelEventHandler::x11Event ()
   from /opt/kde3/lib/libkdecore.so.4
#46 0xb701a03b in KApplication::x11EventFilter ()
   from /opt/kde3/lib/libkdecore.so.4
#47 0xb6867df4 in qt_x11EventFilter () from /usr/lib/qt3/lib/libqt-mt.so.3
#48 0xb6877773 in QApplication::x11ProcessEvent ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#49 0xb688862a in QEventLoop::processEvents ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#50 0xb68efd28 in QEventLoop::enterLoop () from /usr/lib/qt3/lib/libqt-mt.so.3
#51 0xb68efbbe in QEventLoop::exec () from /usr/lib/qt3/lib/libqt-mt.so.3
#52 0xb68d8abf in QApplication::exec () from /usr/lib/qt3/lib/libqt-mt.so.3
#53 0x0804aa49 in main ()
(gdb)
Comment 1 Caspar Maessen 2006-11-04 23:45:43 UTC
The version information apparantly got lost:
digikam svn-601980 / kipi-plugins 601979
Comment 2 caulier.gilles 2006-11-05 08:39:29 UTC
I cannot reproduce this crash on my computer. The cresh come from Exiv2 library.

Witch version of Exiv2 you use on your computer ? It's the last 0.11 release ?

Gilles Caulier
Comment 3 Caspar Maessen 2006-11-05 09:46:32 UTC
Op zondag 5 november 2006 08:39, schreef Gilles Caulier:

  > http://bugs.kde.org/show_bug.cgi?id=136855
  >
  > Witch version of Exiv2 you use on your computer ? It's the last
  > 0.11 release ?


caspar@casco:~> rpm -qa | grep exiv
exiv2-0.11-1


Caspar.
Comment 4 caulier.gilles 2006-11-05 10:12:46 UTC
Check if you have more than one Exiv2 library installed on you system, the current 0.11 and an old one.

Are you compiled yourself Exiv2 0.11 ? Are you used specific compilation options (optimizations) ?

Gilles Caulier
Comment 5 Caspar Maessen 2006-11-05 17:21:22 UTC
Op zondag 5 november 2006 10:12, schreef Gilles Caulier:
  > 2006-11-05 10:12 ------- Check if you have more than one Exiv2
  > library installed on you system, the current 0.11 and an old one.
  >
  > Are you compiled yourself Exiv2 0.11 ? Are you used specific
  > compilation options (optimizations) ?

Totally removed exiv2 from my system. 
Checked for remaining package-files with find. 
Downloaded the latest version from exiv2.org.
./configure --prefix=/usr
make
su checkinstall (I'm using this program to create RPM's)
su rpm -Uvh exiv2-0.11-1.i686.rpm
su SuSEconfig

Still the same problem. 

Caspar.
Comment 6 caulier.gilles 2006-11-05 21:19:53 UTC
Have you recompiled digikam and kipi-plugins after to have re-installed Exiv2 lib ?

Gilles
Comment 7 caulier.gilles 2006-11-05 21:22:20 UTC
Andreas,

And another Exiv2 crash using the new MetadataEdit kipi-plugin...

Gilles
Comment 8 caulier.gilles 2006-11-05 21:23:33 UTC
Caspar,

Can you post in this thread a copy of your JPEG files witch crash the plugin. Thanks in advance

Gilles
Comment 9 Caspar Maessen 2006-11-05 22:17:02 UTC
Created attachment 18426 [details]
imagefile
Comment 10 Caspar Maessen 2006-11-05 22:21:55 UTC
Created attachment 18427 [details]
imagefile
Comment 11 Caspar Maessen 2006-11-05 22:23:33 UTC
Created attachment 18428 [details]
imagefile
Comment 12 Caspar Maessen 2006-11-05 22:26:57 UTC
Added three of the imagefiles I was testing with.

Recompiled digikam and kip-plugins from svn as suggested. Serial 602374 and 602372 respectively.

A crash again on the forward-click. Didn't try the apply-click again. Following is the backtrace.

(gdb) run
Starting program: /opt/kde3/bin/digikam
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
[Thread debugging using libthread_db enabled]
[New Thread -1239714128 (LWP 28834)]
[New Thread -1242387552 (LWP 28841)]
[New Thread -1250780256 (LWP 28842)]
[Thread -1242387552 (LWP 28841) exited]
[Thread -1250780256 (LWP 28842) exited]
digikam: ScanLib: Finding non-existing Albums: 4 ms
digikam: ScanLib: Finding items not in the database or disk: 266 ms
digikam: ScanLib: Updating items without date: 2 ms
digikam: Found dcraw version: 8.40
KIPI (loading): KIPI::PluginLoader: plugin KameraKlient is in the ignore list for host application
KIPI (loading): Plugin_CDArchiving plugin loaded
KIPI (loading): KIPI::PluginLoader: Loaded plugin CDArchiving
KIPI (loading): Plugin_SlideShow plugin loaded
KIPI (loading): KIPI::PluginLoader: Loaded plugin SlideShow
KIPI (loading): KIPI::PluginLoader: Loaded plugin HTMLExport
KIPI (loading): Plugin_SendImages plugin loaded
KIPI (loading): KIPI::PluginLoader: Loaded plugin SendImages
KIPI (loading): Plugin_GPSSync plugin loaded
KIPI (loading): KIPI::PluginLoader: Loaded plugin GPSSync
KIPI (loading): Plugin_JPEGLossless plugin loaded
KIPI (loading): KIPI::PluginLoader: Loaded plugin JPEGLossless
KIPI (loading): Plugin_WallPaper plugin loaded
KIPI (loading): KIPI::PluginLoader: Loaded plugin WallPaper
KIPI (loading): Plugin_FindImages plugin loaded
KIPI (loading): KIPI::PluginLoader: Loaded plugin FindImages
KIPI (loading): Plugin_SimpleViewer plugin loaded
KIPI (loading): KIPI::PluginLoader: Loaded plugin SimpleViewer
KIPI (loading): Plugin_MetadataEdit plugin loaded
KIPI (loading): KIPI::PluginLoader: Loaded plugin MetadataEdit
KIPI (loading): Plugin_TimeAdjust plugin loaded
KIPI (loading): KIPI::PluginLoader: Loaded plugin TimeAdjust
KIPI (loading): Plugin_PrintWizard plugin loaded
KIPI (loading): KIPI::PluginLoader: Loaded plugin PrintWizard
KIPI (loading): Plugin_Mpegencoder plugin loaded
KIPI (loading): KIPI::PluginLoader: Loaded plugin MPEGEncoder
KIPI (loading): Plugin_GalleryExport plugin loaded
KIPI (loading): KIPI::PluginLoader: Loaded plugin GalleryExport
KIPI (loading): Loaded RawConverter
KIPI (loading): KIPI::PluginLoader: Loaded plugin RawConverter
KIPI (loading): Loaded Plugin_Calendar
KIPI (loading): KIPI::PluginLoader: Loaded plugin Calendar
KIPI (loading): Plugin_BatchProcessImages plugin loaded
KIPI (loading): KIPI::PluginLoader: Loaded plugin BatchProcessImages
KIPI (loading): Plugin_AcquireImages plugin loaded
KIPI (loading): KIPI::PluginLoader: Loaded plugin AcquireImages
digikam: ImagePlugin_Core plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_Kern
digikam: ImagePlugin_ChannelMixer plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_KanaalMixer
digikam: ImagePlugin_LensDistortion plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_Lensafwijking
digikam: ImagePlugin_Emboss plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_Reliëf
digikam: ImagePlugin_BlurFX plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_VervaagFX
digikam: ImagePlugin_Solarize plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_Solarizeren
digikam: ImagePlugin_Texture plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_Textuur
digikam: ImagePlugin_AntiVignetting plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_AntiVignetting
digikam: ImagePlugin_OilPaint plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_Olieverf
digikam: ImagePlugin_WhiteBalance plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_Witbalans
digikam: ImagePlugin_Infrared plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_Infrarood
digikam: ImagePlugin_AdjustCurves plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_CurvesAanpassen
digikam: ImagePlugin_FreeRotation plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_VrijeRotatie
digikam: ImagePlugin_Border plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_Rand
digikam: ImagePlugin_Restoration plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_Restoratie
digikam: ImagePlugin_DistortionFX plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_vervormingseffect
digikam: ImagePlugin_Perspective plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_Perspectief
digikam: ImagePlugin_Unsharp plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_Onscherp
digikam: ImagePlugin_FilmGrain plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_filmkorrel
digikam: ImagePlugin_SuperImpose plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_SjabloonToevoegen
digikam: ImagePlugin_BlowUp plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_Opblazen
digikam: ImagePlugin_ShearTool plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_Schuintrekken
digikam: ImagePlugin_NoiseReduction plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_Ruisreductie
digikam: ImagePlugin_InPainting plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_Inkleuren
digikam: ImagePlugin_RainDrop plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_regendruppels
digikam: ImagePlugin_Charcoal plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_Houtskool
digikam: ImagePlugin_HotPixels plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_HotPixels
digikam: ImagePlugin_Refocus plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_OpnieuwFocussen
digikam: ImagePlugin_AdjustLevels plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_NiveausAanpassen
digikam: ImagePlugin_InsertText plugin loaded
digikam: ImagePluginLoader: Loaded plugin Afbeeldingsplugin_TekstInvoegen

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1239714128 (LWP 28834)]
Exiv2::ExifData::byteOrder (this=0x865fd4c) at image.hpp:475
475             ByteOrder byteOrder() const { return byteOrder_; }
Current language:  auto; currently c++
(gdb) bt
#0  Exiv2::ExifData::byteOrder (this=0x865fd4c) at image.hpp:475
#1  0xb796c2eb in Exiv2::ExifData::copyFromMetadata (this=0x865fd4c)
    at exif.cpp:632
#2  0xb796d374 in Exiv2::ExifData::copy (this=0x865fd4c) at exif.cpp:623
#3  0xb7985c4f in Exiv2::JpegBase::doWriteMetadata (this=0x865fd40,
    outIo=@0x8658fd8) at jpgimage.cpp:482
#4  0xb798664e in Exiv2::JpegBase::writeMetadata (this=0x865fd40)
    at jpgimage.cpp:360
#5  0xb3979a00 in KIPIPlugins::Exiv2Iface::save ()
   from /opt/kde3/lib/kde3/kipiplugin_metadataedit.so
#6  0xb394a7b7 in KIPIMetadataEditPlugin::IPTCEditDialog::slotApply ()
   from /opt/kde3/lib/kde3/kipiplugin_metadataedit.so
#7  0xb394af10 in KIPIMetadataEditPlugin::IPTCEditDialog::slotUser1 ()
   from /opt/kde3/lib/kde3/kipiplugin_metadataedit.so
#8  0xb735231f in KDialogBase::qt_invoke () from /opt/kde3/lib/libkdeui.so.4
#9  0xb394d1f0 in KIPIMetadataEditPlugin::IPTCEditDialog::qt_invoke ()
   from /opt/kde3/lib/kde3/kipiplugin_metadataedit.so
#10 0xb69aaf1d in QObject::activate_signal ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#11 0xb69abb7d in QObject::activate_signal ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#12 0xb6ceb5dc in QButton::clicked () from /usr/lib/qt3/lib/libqt-mt.so.3
#13 0xb6a3eb13 in QButton::mouseReleaseEvent ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#14 0xb69e3c40 in QWidget::event () from /usr/lib/qt3/lib/libqt-mt.so.3
#15 0xb694bf07 in QApplication::internalNotify ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#16 0xb694ce3b in QApplication::notify () from /usr/lib/qt3/lib/libqt-mt.so.3
#17 0xb708ebd3 in KApplication::notify () from /opt/kde3/lib/libkdecore.so.4
#18 0xb68ebe12 in QETWidget::translateMouseEvent ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#19 0xb68eafe6 in QApplication::x11ProcessEvent ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#20 0xb68fb62a in QEventLoop::processEvents ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#21 0xb6962d28 in QEventLoop::enterLoop () from /usr/lib/qt3/lib/libqt-mt.so.3
#22 0xb694ba2f in QApplication::enter_loop ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#23 0xb6b31515 in QDialog::exec () from /usr/lib/qt3/lib/libqt-mt.so.3
#24 0xb392c927 in Plugin_MetadataEdit::slotEditIptc ()
   from /opt/kde3/lib/kde3/kipiplugin_metadataedit.so
#25 0xb392daba in Plugin_MetadataEdit::qt_invoke ()
   from /opt/kde3/lib/kde3/kipiplugin_metadataedit.so
#26 0xb69aaf1d in QObject::activate_signal ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#27 0xb69abb7d in QObject::activate_signal ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#28 0xb7274de9 in KAction::activated () from /opt/kde3/lib/libkdeui.so.4
#29 0xb72b72c2 in KAction::slotActivated () from /opt/kde3/lib/libkdeui.so.4
#30 0xb737be6f in KAction::qt_invoke () from /opt/kde3/lib/libkdeui.so.4
#31 0xb69aaf1d in QObject::activate_signal ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#32 0xb69abb7d in QObject::activate_signal ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#33 0xb6faa769 in KAccelPrivate::menuItemActivated ()
   from /opt/kde3/lib/libkdecore.so.4
#34 0xb6ffb077 in KAccelPrivate::emitActivatedSignal ()
   from /opt/kde3/lib/libkdecore.so.4
#35 0xb7042439 in KAccelPrivate::eventFilter ()
   from /opt/kde3/lib/libkdecore.so.4
#36 0xb69aa81c in QObject::activate_filters ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
---Type <return> to continue, or q <return> to quit---
#37 0xb69aa88b in QObject::event () from /usr/lib/qt3/lib/libqt-mt.so.3
#38 0xb69e38cc in QWidget::event () from /usr/lib/qt3/lib/libqt-mt.so.3
#39 0xb6a9e9c2 in QMainWindow::event () from /usr/lib/qt3/lib/libqt-mt.so.3
#40 0xb694bf07 in QApplication::internalNotify ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#41 0xb694d262 in QApplication::notify () from /usr/lib/qt3/lib/libqt-mt.so.3
#42 0xb708ebd3 in KApplication::notify () from /opt/kde3/lib/libkdecore.so.4
#43 0xb70072f2 in KAccelEventHandler::x11Event ()
   from /opt/kde3/lib/libkdecore.so.4
#44 0xb708d03b in KApplication::x11EventFilter ()
   from /opt/kde3/lib/libkdecore.so.4
#45 0xb68dadf4 in qt_x11EventFilter () from /usr/lib/qt3/lib/libqt-mt.so.3
#46 0xb68ea773 in QApplication::x11ProcessEvent ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#47 0xb68fb62a in QEventLoop::processEvents ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#48 0xb6962d28 in QEventLoop::enterLoop () from /usr/lib/qt3/lib/libqt-mt.so.3
#49 0xb6962bbe in QEventLoop::exec () from /usr/lib/qt3/lib/libqt-mt.so.3
#50 0xb694babf in QApplication::exec () from /usr/lib/qt3/lib/libqt-mt.so.3
#51 0x0804aa49 in main ()
(gdb)
(gdb) quit
The program is running.  Exit anyway? (y or n) y
caspar@casco:~> 

Comment 13 Caspar Maessen 2006-11-05 22:27:55 UTC
Op zondag 5 november 2006 21:23, schreef Gilles Caulier:
  > Can you post in this thread a copy of your JPEG files witch crash
  > the plugin. Thanks in advance

I am in the proces of recompiling from svn digikam and kipi-plugins, as 
you suggested earlier. After that I wil test again and if necessary I 
will post some of the tested jpegs.

Caspar.
Comment 14 Caspar Maessen 2006-11-05 22:39:36 UTC
Apparently there is a big delay between posting a message by kmail and publishing on the list. #13 was send 21:39 in response of Gilles' message #8.

Caspar.
Comment 15 Marcel Wiesweg 2006-11-05 23:04:32 UTC
I can reproduce the crash. Select any image, Metadata->Edit IPTC, add a Copyright, click apply.

In console, I get 
*** glibc detected *** lt-digikam: double free or corruption (out): 0x0870fa20 ***
======= Backtrace: =========
/lib/libc.so.6[0xb620d3c0]
/lib/libc.so.6(__libc_free+0x84)[0xb620ea04]
/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/libstdc++.so.6(_ZdlPv+0x21)[0xb63a1121]
/usr/local/lib/libexiv2-0.11.so(_ZN5Exiv29ValueTypeISt4pairIjjEED0Ev+0x43)[0xb794f023]
/usr/local/lib/libexiv2-0.11.so(_ZN5Exiv29ExifdatumD1Ev+0x37)[0xb79561a7]
/usr/local/lib/libexiv2-0.11.so(_ZN5Exiv28ExifDataD1Ev+0xe7)[0xb7959177]
/usr/local/lib/libexiv2-0.11.so(_ZN5Exiv28JpegBaseD2Ev+0x7d)[0xb7971f2d]
/usr/local/lib/libexiv2-0.11.so(_ZN5Exiv29JpegImageD0Ev+0x2d)[0xb79720bd]
/usr/kde/3.5/lib/kde3/kipiplugin_metadataedit.so(_ZN11KIPIPlugins10Exiv2Iface4saveERK7QString+0xfd)[0xb47e502d]
/usr/kde/3.5/lib/kde3/kipiplugin_metadataedit.so(_ZN22KIPIMetadataEditPlugin14IPTCEditDialog9slotApplyEv+0x182)[0xb47b7282]
(...)

Backtrace
(...)
#18 0xb63a1121 in operator delete ()
   from /usr/lib/gcc/i686-pc-linux-gnu/4.1.1/libstdc++.so.6
#19 0xb794f023 in ~ValueType (this=0xbfbcbb77) at new_allocator.h:96
#20 0xb79561a7 in ~Exifdatum (this=0x873b584) at memory:260
#21 0xb7959177 in ~ExifData (this=0x867e1ec) at stl_construct.h:107
#22 0xb7971f2d in ~JpegBase (this=0x867e1e0) at jpgimage.hpp:123
#23 0xb79720bd in ~JpegImage (this=0x867e1e0) at jpgimage.hpp:284
#24 0xb47e502d in KIPIPlugins::Exiv2Iface::save ()
   from /usr/kde/3.5/lib/kde3/kipiplugin_metadataedit.so
#25 0xb47b7282 in KIPIMetadataEditPlugin::IPTCEditDialog::slotApply (
    this=0xbfbcc5e0) at iptceditdialog.cpp:301
(...)
Comment 16 F.J. Cruz 2006-11-05 23:48:04 UTC
I'm not able to reproduce this crash. I've followed the steps you say and done 
some others tests using both forward and apply buttons and all work ok with 
digikam-0.9.0-beta3 and a just-updated kipi-plugins from svn on kubuntu edgy 
64 bits.


Paco Cruz
Comment 17 F.J. Cruz 2006-11-05 23:51:00 UTC
I've forgotten to say that exiv2 version is 0.10:

neke@nekeland:~$ exiv2-config --version
0.10

Paco Cruz
Comment 18 caulier.gilles 2006-11-06 07:52:33 UTC
Paco,

Can you test using last stable Exiv2 0.11 like Caspar does ?

Unforget to uninstall old Exiv2 from your computer before.

Thanks in advance

Gilles
Comment 19 caulier.gilles 2006-11-06 07:55:53 UTC
Caspar,

Other questions :

- Witch CPU type you use : Pentium, Pentium with HyperThreading, Pentium M, AMD, PPC, etc...
- Witch gcc release you use ?
- Witch libc release you use ?
- Are you used the ./configure --enable-debug=full to compile digiKam & kipi-plugins ?
- Are you used some optimizations options with ./configure script to compile digiKam & kipi-plugins ? 

Thanks in advance

Gilles
Comment 20 F.J. Cruz 2006-11-06 08:29:29 UTC
>----Mensaje original----
>De: caulier.gilles@kdemail.net
>Fecha: 06/11/2006 7:52
>Para: <digikam-devel@kde.org>
>Asunto: [Digikam-devel] [Bug 136855] Editing metadata on a few 

selected	imagefiles and clicking forward or apply crashes digikam.
[bugs.kde.org quoted mail]
06 07:52 -------
>Paco,
>
>Can you test using last stable Exiv2 0.11 like Caspar does ?
>
>Unforget to uninstall old Exiv2 from your computer before.
>
>Thanks in advance
>
>Gilles
>_______________________________________________


Sure Gilles, I'll try it later, when I arrive at home.

Paco Cruz.
Comment 21 Caspar Maessen 2006-11-06 11:08:57 UTC
Op maandag 6 november 2006 07:55, schreef Gilles Caulier:
  > - Witch CPU type you use : Pentium, Pentium with HyperThreading,
  > Pentium M, AMD, PPC, etc... 

Intel Pentium 4
Linux 2.6.16.21-0.25-smp i686
SUSE LINUX 10.1 (i586)
KDE 3.5.5 "release 19.1"
  > - Witch gcc release you use ? 

caspar@casco:~> rpm -qa | grep gcc
libgcc-4.1.0-25
gcc-4.1.0-25
gcc-c++-4.1.0-25
  > - Witch libc release you use ?

caspar@casco:~> rpm -qa | grep glibc
glibc-devel-2.4-31.1
glibc-2.4-31.1
  > - Are you used the ./configure --enable-debug=full to compile

Yes
  > digiKam & kipi-plugins ? - Are you used some optimizations options
  > with ./configure script to compile digiKam & kipi-plugins ?

No

I hope this is the information you are looking for.

Caspar.
Comment 22 F.J. Cruz 2006-11-06 23:01:49 UTC
El Lunes, 6 de Noviembre de 2006 08:29, F.J.Cruz escribi
Comment 23 Mikolaj Machowski 2006-11-06 23:30:15 UTC
I can confirm that for Digikam 601741 and clean install of Exiv2 0.11
Backtrace is very limited (I understand it is E2 taking down Digikam).

Way of reproduce isn't always the same. But generally: select few
images, edit caption and move between images, forward, backward, change
caption, move, etc. And after few iterations D. will crash.
Comment 24 Mikolaj Machowski 2006-11-07 00:22:30 UTC
Also happens with Exiv2 from svn 943.

Using host libthread_db library "/lib/tls/libthread_db.so.1".
`shared object read from target memory' has disappeared; keeping its 
symbols.
[Thread debugging using libthread_db enabled]
[New Thread -1240250048 (LWP 494)]
[KCrash handler]
#5  0xb619ccb5 in free () from /lib/tls/libc.so.6
#6  0xb619e6ef in malloc () from /lib/tls/libc.so.6
#7  0xb6346e57 in operator new () from /usr/lib/libstdc++.so.6
#8  0xb6346f7d in operator new[] () from /usr/lib/libstdc++.so.6
#9  0xb796f607 in Ifd (this=0xbf96cda0, ifdId=9599049) at ifd.cpp:271
#10 0xb79619c9 in Exiv2::ExifData::copyFromMetadata (this=0x8656444)
    at exif.cpp:631
#11 0xb7962410 in Exiv2::ExifData::copy (this=0x8656444) at exif.cpp:623
#12 0xb797977c in Exiv2::JpegBase::doWriteMetadata (this=0x8656438, 
    outIo=@0x86d9ac0) at jpgimage.cpp:482
#13 0xb797a144 in Exiv2::JpegBase::writeMetadata (this=0x8656438)
    at jpgimage.cpp:360
#14 0xb4e8418a in KIPIPlugins::Exiv2Iface::save (this=0xbf96cff8, 
    filePath=@0xbf96d000) at exiv2iface.cpp:304
#15 0xb4e5dfee in KIPIMetadataEditPlugin::IPTCEditDialog::slotApply (
    this=0xbf96d854) at iptceditdialog.cpp:301
#16 0xb733da8c in KDialogBase::qt_invoke ()
   from /usr/local/kde/lib/libkdeui.so.4
#17 0xb4e5ec52 in KIPIMetadataEditPlugin::IPTCEditDialog::qt_invoke (
    this=0xbf96d854, _id=75, _o=0xbf96d0dc) at iptceditdialog.moc:105
#18 0xb69e81bf in QObject::activate_signal ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#19 0x086380d0 in ?? ()
#20 0xbf96d094 in ?? ()
#21 0x00000000 in ?? ()
Comment 25 Andreas Huggel 2006-11-07 03:01:04 UTC
Exiv2 from svn 943 does not address this problem.

This one looks like one of these mysterious memory mgmt related issues.

Can someone who can reproduce this and understands digikam's thread and memory mgmt model well debug this one further, please, with an eye on the memory related issues (where does the memory get free'd for the 1st time, if it's freed twice? etc.)

To pinpoint any related exiv2 issue, it would of course be best to have a small reproducer program which just calls exiv2.

Thanks.
-ahu.
Comment 26 Geoff King 2006-11-07 04:07:34 UTC
I'm experiencing this also for the last couple days from svn.  This worked up until a few days ago when the menu options changed for Metadata and provided the 4 options. To recreate: select photo, choose metadata, edit iptc, change caption or other field, apply (should crash).  may also take a few more tries or click okay or arrow buttons.  This Wipes out all exif and iptc data in file in addition to the crash.

for example:
exiv2 pr -p s Photo_103106_003.jpg
Photo_103106_003.jpg: No Exif data found in the file

Using Ubuntu Edgy
Both Libs (first) and Graphics (second) are compiled with ./configure --enable-debug=full
P4 with Hyperthreading
gcc (GCC) 4.1.2 20060928 (prerelease) (Ubuntu 4.1.1-13ubuntu5)
using exiv2 0.11 compiled from source

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1241032400 (LWP 14218)]
0xb6115c64 in free () from /lib/tls/i686/cmov/libc.so.6
(gdb)
(gdb) bt
#0  0xb6115c64 in free () from /lib/tls/i686/cmov/libc.so.6
#1  0xb611783f in malloc () from /lib/tls/i686/cmov/libc.so.6
#2  0xb62bc4b7 in operator new () from /usr/lib/libstdc++.so.6
#3  0xb62bc5ed in operator new[] () from /usr/lib/libstdc++.so.6
#4  0xb794b4cf in Entry (this=0x86394b8, rhs=@0xbfa1e33c) at ifd.cpp:79
#5  0xb79290ac in std::vector<Exiv2::Entry, std::allocator<Exiv2::Entry> >::_M_insert_aux (this=0xbfa1e504, __position={_M_current = 0x0},
    __x=@0xbfa1e33c) at /usr/lib/gcc/i486-linux-gnu/4.1.2/../../../../include/c++/4.1.2/ext/new_allocator.h:104
#6  0xb794ba15 in Exiv2::Ifd::add (this=0x85f77e8, entry=@0xb61e0160)
    at /usr/lib/gcc/i486-linux-gnu/4.1.2/../../../../include/c++/4.1.2/bits/stl_vector.h:610
#7  0xb793d989 in Exiv2::addToIfd (ifd=@0xbfa1e500, md=@0x8679578, byteOrder=Exiv2::littleEndian) at exif.cpp:1204
#8  0xb793dad3 in Exiv2::addToIfd (ifd=@0xbfa1e500, begin={_M_current = 0x8679578}, end={_M_current = 0x8679d1c}, byteOrder=Exiv2::littleEndian)
    at exif.cpp:1181
#9  0xb793db3f in Exiv2::ExifData::copyFromMetadata (this=0x863e9e4) at exif.cpp:632
#10 0xb793e574 in Exiv2::ExifData::copy (this=0x863e9e4) at exif.cpp:623
#11 0xb7956a1a in Exiv2::JpegBase::doWriteMetadata (this=0x863e9d8, outIo=@0x8639498) at jpgimage.cpp:482
#12 0xb795757e in Exiv2::JpegBase::writeMetadata (this=0x863e9d8) at jpgimage.cpp:360
#13 0xb45226d8 in KIPIPlugins::Exiv2Iface::save (this=0xbfa1e798, filePath=@0xbfa1e7a0) at exiv2iface.cpp:304
#14 0xb44f3753 in KIPIMetadataEditPlugin::IPTCEditDialog::slotApply (this=0xbfa1f254) at iptceditdialog.cpp:301
#15 0xb7354223 in KDialogBase::qt_invoke () from /usr/lib/libkdeui.so.4
#16 0xb44f6094 in KIPIMetadataEditPlugin::IPTCEditDialog::qt_invoke (this=0xbfa1f254, _id=75, _o=0xbfa1e88c) at iptceditdialog.moc:105
#17 0xb6938a84 in QObject::activate_signal () from /usr/lib/libqt-mt.so.3
#18 0xb69393fc in QObject::activate_signal () from /usr/lib/libqt-mt.so.3
#19 0xb6ccdf5f in QButton::clicked () from /usr/lib/libqt-mt.so.3
#20 0xb69d6fe8 in QButton::mouseReleaseEvent () from /usr/lib/libqt-mt.so.3
#21 0xb696f729 in QWidget::event () from /usr/lib/libqt-mt.so.3
#22 0xb68cfb88 in QApplication::internalNotify () from /usr/lib/libqt-mt.so.3
#23 0xb68d1d46 in QApplication::notify () from /usr/lib/libqt-mt.so.3
#24 0xb7095db2 in KApplication::notify () from /usr/lib/libkdecore.so.4
#25 0xb68623fd in QApplication::sendSpontaneousEvent () from /usr/lib/libqt-mt.so.3
#26 0xb6861062 in QETWidget::translateMouseEvent () from /usr/lib/libqt-mt.so.3
#27 0xb685f14c in QApplication::x11ProcessEvent () from /usr/lib/libqt-mt.so.3
#28 0xb6876320 in QEventLoop::processEvents () from /usr/lib/libqt-mt.so.3
#29 0xb68ea25e in QEventLoop::enterLoop () from /usr/lib/libqt-mt.so.3
#30 0xb68d16af in QApplication::enter_loop () from /usr/lib/libqt-mt.so.3
#31 0xb6aed4a1 in QDialog::exec () from /usr/lib/libqt-mt.so.3
#32 0xb44d59e7 in Plugin_MetadataEdit::slotEditIptc (this=0x8368940) at plugin_metadataedit.cpp:188
#33 0xb44d6b26 in Plugin_MetadataEdit::qt_invoke (this=0x8368940, _id=4, _o=0xbfa1f3dc) at plugin_metadataedit.moc:90
#34 0xb6938957 in QObject::activate_signal () from /usr/lib/libqt-mt.so.3
#35 0xb69393fc in QObject::activate_signal () from /usr/lib/libqt-mt.so.3
#36 0xb72773b9 in KAction::activated () from /usr/lib/libkdeui.so.4
#37 0xb72b4c02 in KAction::slotActivated () from /usr/lib/libkdeui.so.4
#38 0xb737d29d in KAction::slotPopupActivated () from /usr/lib/libkdeui.so.4
#39 0xb737d561 in KAction::qt_invoke () from /usr/lib/libkdeui.so.4
#40 0xb6938957 in QObject::activate_signal () from /usr/lib/libqt-mt.so.3
#41 0xb6cc4f44 in QSignal::signal () from /usr/lib/libqt-mt.so.3
#42 0xb69588ea in QSignal::activate () from /usr/lib/libqt-mt.so.3
#43 0xb6a5efd3 in QPopupMenu::mouseReleaseEvent () from /usr/lib/libqt-mt.so.3
#44 0xb72803ce in KPopupMenu::mouseReleaseEvent () from /usr/lib/libkdeui.so.4
#45 0xb696f729 in QWidget::event () from /usr/lib/libqt-mt.so.3
#46 0xb68cfb88 in QApplication::internalNotify () from /usr/lib/libqt-mt.so.3
#47 0xb68d1d46 in QApplication::notify () from /usr/lib/libqt-mt.so.3
#48 0xb7095db2 in KApplication::notify () from /usr/lib/libkdecore.so.4
#49 0xb68623fd in QApplication::sendSpontaneousEvent () from /usr/lib/libqt-mt.so.3
#50 0xb6860d3f in QETWidget::translateMouseEvent () from /usr/lib/libqt-mt.so.3
---Type <return> to continue, or q <return> to quit---    
#51 0xb685f14c in QApplication::x11ProcessEvent () from /usr/lib/libqt-mt.so.3
#52 0xb6876320 in QEventLoop::processEvents () from /usr/lib/libqt-mt.so.3
#53 0xb68ea25e in QEventLoop::enterLoop () from /usr/lib/libqt-mt.so.3
#54 0xb68ea06e in QEventLoop::exec () from /usr/lib/libqt-mt.so.3
#55 0xb68d1731 in QApplication::exec () from /usr/lib/libqt-mt.so.3
#56 0x0804ab6c in main (argc=-1208541364, argv=0xbfa201e4) at main.cpp:269
Comment 27 caulier.gilles 2006-11-07 08:00:06 UTC
Someone can give a valgrind backtrace to check memory leak like this :

valgrind --tool=memcheck --leak-check=full --error-limit=no digikam

Of course, to have a full report in the console, Exiv2, digiKam and kipi-plugins need to be compiled with full debug option.

Gilles
Comment 28 caulier.gilles 2006-11-07 08:06:11 UTC
Andreas, 

Look like my Exiv2 wrapper used by the MetadataEdit kipi-plugin is simple in fact :

http://websvn.kde.org/trunk/extragear/libs/kipi-plugins/common/exiv2iface/exiv2iface.cpp?rev=600798&view=auto
http://websvn.kde.org/trunk/extragear/libs/kipi-plugins/common/exiv2iface/exiv2iface.h?rev=600788&view=auto

If you see somthing wronf, lets me hear...

Note : the current implementation of Exiv2Iface class is a copy of DigiKam::DMetadata class. Later, I have planed to do a new shared "libKExiv2" library as well, to remplace the current implementation in digiKam core and kipi-plugins common area. Like this we will remove duplicated code.

Gilles
Comment 29 caulier.gilles 2006-11-07 18:24:06 UTC
Andreas,

Perhaps a simple test program is to do a simple loop witch use Exiv2 command line tool and read metadata around a group of JPEG files.

Gilles
Comment 30 Geoff King 2006-11-08 03:13:08 UTC
Created attachment 18466 [details]
valgrind backtrace text

I hope the attached valgrind backtrace helps.  I'm not sure how much you
need...
Comment 31 caulier.gilles 2006-11-08 08:04:34 UTC
Very good Geof. Thanks you...

Andreas, look like the valgrind report is very instructive...

Gilles

Comment 32 Andreas Huggel 2006-11-08 08:29:21 UTC
Yes, looks good - or bad, depending on the viewpoint. Thanks.

I'm going to write a test driver for the Exiv2Iface class now, which I can feed with a series of images. I'd like it to do something similar to what Geoff did manually. 

So, Geoff, what actions did you do in detail (just what you described in #26?)

Gilles, what series of calls to the interface does that translate to?

-ahu.
Comment 33 caulier.gilles 2006-11-08 09:34:53 UTC
Andreas, 

When i said "good", i want mean "instructive" in fact (:=)))...

About the methods used in Exiv2iface from the MetadataEdit kipi-plugin, it's very simple. look the code from the slots used when we want save the changes in pictures metadata :

In Exif editor dialog, we have :

void EXIFEditDialog::slotApply()
{
    if (d->modified && !d->isReadOnly) 
    {
        d->captionPage->applyMetadata(d->exifData);
        ...
        KIPIPlugins::Exiv2Iface exiv2Iface;
        exiv2Iface.load((*d->currItem).path());
        exiv2Iface.setExif(d->exifData);
        exiv2Iface.save((*d->currItem).path());
        d->modified = false;
    }
}

d->modified and d->isReadOnly are just boolean variables. d->exifData is a bytearray to store metadata.

The IPTC code is similar than Exif :

void IPTCEditDialog::slotApply()
{
    if (d->modified && !d->isReadOnly) 
    {
        d->captionPage->applyMetadata(d->iptcData);
        ...
        KIPIPlugins::Exiv2Iface exiv2Iface;
        exiv2Iface.load((*d->currItem).path());
        exiv2Iface.setExif(d->iptcData);
        exiv2Iface.save((*d->currItem).path());
        d->modified = false;
    }
}

About to load metadata from pictures when user change current selected one to edit in MetadataEdit plugin, we have another slots for Exif :

void EXIFEditDialog::slotItemChanged()
{
    KIPIPlugins::Exiv2Iface exiv2Iface;
    exiv2Iface.load((*d->currItem).path());
    d->exifData = exiv2Iface.getExif();
    d->captionPage->readMetadata(d->exifData);
    ...
    d->isReadOnly = KIPIPlugins::Exiv2Iface::isReadOnly((*d->currItem).path()); 
    ...
}

... and for IPTC :

void IPTCEditDialog::slotItemChanged()
{
    KIPIPlugins::Exiv2Iface exiv2Iface;
    exiv2Iface.load((*d->currItem).path());
    d->iptcData = exiv2Iface.getIptc();
    d->captionPage->readMetadata(d->iptcData);
    ...
    d->isReadOnly = KIPIPlugins::Exiv2Iface::isReadOnly((*d->currItem).path()); 
    ...
}

The slotItemChanged() and slotApply() call the dialog page methods to get or set the matadata values on the Exif/IPTC bytearray. this is the readMetadata() and applyMetadata() methods. These one use too another instances of KIPIPlugins::Exiv2Iface class to use others methods relevant of tags manipulations. For example, in Exif Captions editor page, we have :

void EXIFCaption::readMetadata(QByteArray& exifData)
{
    ...
    KIPIPlugins::Exiv2Iface exiv2Iface;
    exiv2Iface.setExif(exifData);
    QString data;

    data = exiv2Iface.getExifTagString("Exif.Image.DocumentName", false);    
    ...
}

void EXIFCaption::applyMetadata(QByteArray& exifData)
{
    KIPIPlugins::Exiv2Iface exiv2Iface;
    exiv2Iface.setExif(exifData);

    if (d->documentNameCheck->isChecked())
        exiv2Iface.setExifTagString("Exif.Image.DocumentName", d->documentNameEdit->text());
    else
        exiv2Iface.removeExifTag("Exif.Image.DocumentName");
    ...
}

The both class instance are independant and there is no memory conflict here (checked with valgrind). Exiv2Iface do not use static member.

Other important note : this plugin do not use multithreading like in digiKam core. The crash is not relevant of an unthread-safe problem.

You can read all current plugin source code here :

http://websvn.kde.org/trunk/extragear/libs/kipi-plugins/metadataedit

and the Exiv2Iface class here :

http://websvn.kde.org/trunk/extragear/libs/kipi-plugins/common/exiv2iface

Gilles
Comment 34 Andreas Huggel 2006-11-08 16:57:37 UTC
Created attachment 18470 [details]
Exiv2Iface test-driver

Yup, with the attached test program, run with the *.jpg files from the exiv2
test/data directory, I can recreate the problem here, finally. I'm posting this
first as I won't have time to figure out the rest before next week.

-ahu.
Comment 35 Andreas Huggel 2006-11-08 16:59:46 UTC
Created attachment 18471 [details]
Simple Makefile for the Exiv2Iface test-driver
Comment 36 Geoff King 2006-11-08 22:24:54 UTC
Glad you can recreate this now.

>>So, Geoff, what actions did you do in detail (just what you described in #26?) 

The #26 describes it.  For this particular case I'm not sure exactly which iptc field was changed, but it was probably a few text fields including caption. 
Comment 37 Andreas Huggel 2006-11-16 12:29:02 UTC
Exiv2 SVN rev. 979 fixes the issues reproduceable with the test-driver.

Those who could recreate this bug before, please try with the latest Exiv2 version from SVN and let us know if it still occurs. Thanks!

-ahu.
Comment 38 caulier.gilles 2006-11-16 12:54:26 UTC
Thanks, thanks, thanks Andreas to have fixed this problem. I will checkout source code and test.

Just to remember : these files in kde bugzilla are certainly duplicates :

http://bugs.kde.org/show_bug.cgi?id=133567
http://bugs.kde.org/show_bug.cgi?id=136086
http://bugs.kde.org/show_bug.cgi?id=132805
http://bugs.kde.org/show_bug.cgi?id=137204
http://bugs.kde.org/show_bug.cgi?id=135407
http://bugs.kde.org/show_bug.cgi?id=134999
http://bugs.kde.org/show_bug.cgi?id=131935

If your fix solve the problem these files will be closed...

Witch will be the next Exiv2 release number ? Because i will update digiKam/kipi-plugins depencies before to release final.

Gilles
Comment 39 Andreas Huggel 2006-11-16 13:17:45 UTC
Keeping my fingers crossed, but we need feedback first.
The next version will be 0.12
-ahu.
Comment 40 Caspar Maessen 2006-11-17 01:05:28 UTC
I'm sorry to say, but it looks even worse.
As you asked I downloaded and compiled exiv2 svn rev. 984.
Ran it with digiKam svn rev. 604964.
Selected a few images, edited the caption-field, apply, crash.
The same, but forward, crash.
Tested on a single file, and the same results.

Caspar.
Comment 41 Caspar Maessen 2006-11-17 01:10:37 UTC
Forgot to mention that I lost all the EXIF-information of the first of the selected files, while it was the IPTC tags I was editing.

Following is the backtrace of one of the crashes.

Caspar.


(no debugging symbols found)
Using host libthread_db library "/lib/libthread_db.so.1".
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
[Thread debugging using libthread_db enabled]
[New Thread -1240709456 (LWP 2911)]
[New Thread -1252365408 (LWP 2938)]
[KCrash handler]
#5  0xb787a453 in ~Exifdatum (this=0xb30d8ce4)
    at /usr/include/c++/4.1.0/memory:259
#6  0xb787d39b in ~ExifData (this=0xb3074704)
    at /usr/include/c++/4.1.0/bits/stl_construct.h:107
#7  0xb7896043 in ~JpegBase (this=0xb30746f8) at jpgimage.hpp:123
#8  0xb78961cd in ~JpegImage (this=0xb30746f8) at jpgimage.hpp:284
#9  0xb7e4eda3 in std::auto_ptr<Exiv2::Image>::~auto_ptr ()
   from /opt/kde3/lib/libdigikam.so.0
#10 0xb38222d2 in KIPIPlugins::Exiv2Iface::save ()
   from /opt/kde3/lib/kde3/kipiplugin_metadataedit.so
#11 0xb37f2fcf in KIPIMetadataEditPlugin::IPTCEditDialog::slotApply ()
   from /opt/kde3/lib/kde3/kipiplugin_metadataedit.so
#12 0xb7260333 in KDialogBase::qt_invoke () from /opt/kde3/lib/libkdeui.so.4
#13 0xb37f5ab2 in KIPIMetadataEditPlugin::IPTCEditDialog::qt_invoke ()
   from /opt/kde3/lib/kde3/kipiplugin_metadataedit.so
#14 0xb68b85d1 in QObject::activate_signal ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#15 0xb68b92cd in QObject::activate_signal ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#16 0xb6bf8dec in QButton::clicked () from /usr/lib/qt3/lib/libqt-mt.so.3
#17 0xb694c263 in QButton::mouseReleaseEvent ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#18 0xb68f1390 in QWidget::event () from /usr/lib/qt3/lib/libqt-mt.so.3
#19 0xb6859547 in QApplication::internalNotify ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#20 0xb685a47b in QApplication::notify () from /usr/lib/qt3/lib/libqt-mt.so.3
#21 0xb6f9ce03 in KApplication::notify () from /opt/kde3/lib/libkdecore.so.4
#22 0xb67f8e72 in QETWidget::translateMouseEvent ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#23 0xb67f8046 in QApplication::x11ProcessEvent ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#24 0xb680868a in QEventLoop::processEvents ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#25 0xb6870368 in QEventLoop::enterLoop () from /usr/lib/qt3/lib/libqt-mt.so.3
#26 0xb685906f in QApplication::enter_loop ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#27 0xb6a3ed55 in QDialog::exec () from /usr/lib/qt3/lib/libqt-mt.so.3
#28 0xb37d4507 in Plugin_MetadataEdit::slotEditIptc ()
   from /opt/kde3/lib/kde3/kipiplugin_metadataedit.so
#29 0xb37d615e in Plugin_MetadataEdit::qt_invoke ()
   from /opt/kde3/lib/kde3/kipiplugin_metadataedit.so
#30 0xb68b866d in QObject::activate_signal ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#31 0xb68b92cd in QObject::activate_signal ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#32 0xb7182da9 in KAction::activated () from /opt/kde3/lib/libkdeui.so.4
#33 0xb71c5282 in KAction::slotActivated () from /opt/kde3/lib/libkdeui.so.4
#34 0xb7289e2f in KAction::qt_invoke () from /opt/kde3/lib/libkdeui.so.4
#35 0xb68b866d in QObject::activate_signal ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#36 0xb68b92cd in QObject::activate_signal ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#37 0xb6eb8b69 in KAccelPrivate::menuItemActivated ()
   from /opt/kde3/lib/libkdecore.so.4
#38 0xb6f088c7 in KAccelPrivate::emitActivatedSignal ()
   from /opt/kde3/lib/libkdecore.so.4
#39 0xb6f4f239 in KAccelPrivate::eventFilter ()
   from /opt/kde3/lib/libkdecore.so.4
#40 0xb68b7f6c in QObject::activate_filters ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#41 0xb68b7fdb in QObject::event () from /usr/lib/qt3/lib/libqt-mt.so.3
#42 0xb68f101c in QWidget::event () from /usr/lib/qt3/lib/libqt-mt.so.3
#43 0xb69abfc2 in QMainWindow::event () from /usr/lib/qt3/lib/libqt-mt.so.3
#44 0xb6859547 in QApplication::internalNotify ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#45 0xb685a8a2 in QApplication::notify () from /usr/lib/qt3/lib/libqt-mt.so.3
#46 0xb6f9ce03 in KApplication::notify () from /opt/kde3/lib/libkdecore.so.4
#47 0xb6f15082 in KAccelEventHandler::x11Event ()
   from /opt/kde3/lib/libkdecore.so.4
#48 0xb6f9b26b in KApplication::x11EventFilter ()
   from /opt/kde3/lib/libkdecore.so.4
#49 0xb67e7e54 in qt_x11EventFilter () from /usr/lib/qt3/lib/libqt-mt.so.3
#50 0xb67f77d3 in QApplication::x11ProcessEvent ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#51 0xb680868a in QEventLoop::processEvents ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#52 0xb6870368 in QEventLoop::enterLoop () from /usr/lib/qt3/lib/libqt-mt.so.3
#53 0xb68701fe in QEventLoop::exec () from /usr/lib/qt3/lib/libqt-mt.so.3
#54 0xb68590ff in QApplication::exec () from /usr/lib/qt3/lib/libqt-mt.so.3
#55 0x0804aa49 in main ()
Comment 42 Andreas Huggel 2006-11-17 03:10:00 UTC
Caspar,
Thanks for your feedback; please hang on...

Gilles,
In kipi-plugins/metadataedit/iptceditdialog.cpp:

void IPTCEditDialog::slotApply()
{
    if (d->modified && !d->isReadOnly)
    {
...
        KIPIPlugins::Exiv2Iface exiv2Iface;
        exiv2Iface.load((*d->currItem).path());
        exiv2Iface.setExif(d->iptcData);
                   ^^^^^^^
        exiv2Iface.save((*d->currItem).path());
        d->modified = false;
    }
}

That should be setIptc, shouldn't it? 
Does this explain why Caspar says his Exif data is lost?

-ahu.
Comment 43 Andreas Huggel 2006-11-17 03:20:02 UTC
Created attachment 18591 [details]
Updated Exiv2Iface test driver

Try to simulate setting an IPTC caption using digikam's IPTC editor. 
However, this runs fine here and Valgrind doesn't report any problem.

Can somebody who understands exactly what digikam is doing verify that the test
driver does the same thing? If you get it to crash or Valgrind to find
something wrong, please report.

-ahu.
Comment 44 Andreas Huggel 2006-11-17 03:51:23 UTC
If I run the updated test driver with that suspicious setExif call instead of setIptc it crashes with a backtrace similar to that above.
 
-ahu.
Comment 45 Andreas Huggel 2006-11-17 06:58:37 UTC
And what happens is this: 
In setExif, the call to d->exifMetadata.load() does not succeed (as expected, since it's called with IPTC data), and returns 1 to indicate a problem, which the caller does not test. Instead it assumes everything is fine, but d->exifMetadata is in an inconsistent state now, which causes the subsequent Image::writeMetadata call to crash.
 
bool Exiv2Iface::setExif(const QByteArray& data)
{
    try
    {    
        if (!data.isEmpty())
        {
            d->exifMetadata.load((const Exiv2::byte*)data.data(), data.size());
            ^---------------- test if return value is 0
            return true;
        }
    }
    catch( Exiv2::Error &e )
...

-ahu
 
Comment 46 caulier.gilles 2006-11-17 08:15:54 UTC
#42 : fixed on svn

Gilles
Comment 47 caulier.gilles 2006-11-17 08:18:58 UTC
#45 : ok . Idem with setIptc() method ?

Gilles
Comment 48 caulier.gilles 2006-11-17 08:32:51 UTC
Andreas, Exiv2::IptcData::load() seem to return 0 or 1 like Exiv2::ExifData::load(). Fixed in svn, but it's not clear in Exiv2 API doc...

Gilles
Comment 49 Andreas Huggel 2006-11-17 08:40:16 UTC
AFAICS IptcData::load returns 0 or 5 just as documented. 
-ahu.
Comment 50 caulier.gilles 2006-11-17 10:53:39 UTC
#49 ==> right... Exiv2 API doc come from an old release. sorry (:=)) Fixed again in svn

Gilles
Comment 51 caulier.gilles 2006-11-17 10:58:36 UTC
Andreas, i have fixed too the DMetadata class methods in digiKam core.

Gilles
Comment 52 caulier.gilles 2006-11-17 11:10:05 UTC
Hi guys,

We need a feedback from you about this problem. 

Andreas have fixed current Exiv2 implementation, and me the Exiv2 interface from kipi-plugins and digiKam.

To test, you need to checkout Exiv2/digiKam/kipi-plugins from svn repository.

Compile and Install Exiv2 in first and cleanup digiKam/kipi-plugins before to recompile and install it.

Thanks in advance

Gilles
Comment 53 Arnd Baecker 2006-11-17 12:03:15 UTC
On Fri, 17 Nov 2006, Gilles Caulier wrote:

> To test, you need to checkout Exiv2/digiKam/kipi-plugins from svn repository.
>
> Compile and Install Exiv2 in first and cleanup digiKam/kipi-plugins before to recompile and install it.


Using the script at
http://www.digikam.org/?q=download/svn
I get the following compile error

Making all in libkipiplugins
make[4]: Entering directory
`/tmp/NEWTRYSVNALL/libs/kipi-plugins/common/libkipiplugins'
if /bin/sh ../../../libtool --silent --mode=compile --tag=CXX g++
-DHAVE_CONFIG_H -I. -I. -I../../.. -I../../../li
bkipi/libkipi -I../../../kipi-plugins/common/include
-I../../../kipi-plugins/common/e
xiv2iface -I../../../libkipi -I../../../libkipi -I/usr/include/kde
-I/usr/share/qt3/include -I/usr/X11R6/include
-I/home/abaecker/NBB/SOFTWARE/digikam/include   -DQT_THREAD_SUPPORT
-D_REENTRANT  -Wno-long-long -Wundef -ansi -D
_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wconversion
-Wchar-subscripts -Wall -W -Wpointer-arith -O2 -Wformat-
security -Wmissing-format-attribute -Wno-non-virtual-dtor -fno-exceptions
-fno-check-new -fno-common -DQT_CLEAN_NA
MESPACE -DQT_NO_ASCII_CAST -DQT_NO_STL -DQT_NO_COMPAT -DQT_NO_TRANSLATION
-fexceptions  -MT kpaboutdata.lo -MD -MP
-MF ".deps/kpaboutdata.Tpo" \
  -c -o kpaboutdata.lo `test -f 'kpaboutdata.cpp' || echo
'./'`kpaboutdata.cpp; \
then mv -f ".deps/kpaboutdata.Tpo" ".deps/kpaboutdata.Plo"; \
else rm -f ".deps/kpaboutdata.Tpo"; exit 1; \
fi
kpaboutdata.cpp: In constructor
`KIPIPlugins::KPAboutData::KPAboutData(const
   char*, const char*, int, const char*, const char*)':
kpaboutdata.cpp:51: error: invalid use of undefined type `struct QImage'
/usr/share/qt3/include/qwindowdefs.h:74: error: forward declaration of
`struct
   QImage'
kpaboutdata.cpp:51: error: `setProgramLogo' undeclared (first use this
   function)
kpaboutdata.cpp:51: error: (Each undeclared identifier is reported only
once
   for each function it appears in.)
make[4]: *** [kpaboutdata.lo] Error 1
make[4]: Leaving directory
`/tmp/NEWTRYSVNALL/libs/kipi-plugins/common/libkipiplugins'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/tmp/NEWTRYSVNALL/libs/kipi-plugins/common'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/tmp/NEWTRYSVNALL/libs/kipi-plugins'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/tmp/NEWTRYSVNALL/libs'
make: *** [all] Error 2

I know that my debian sarge system is a bit outdated ;-),
but I compiled this successfully in the not too distant past.
(i.e. is the above a bug, or  just a problem with my system,
e.g. does kipi-plugins require KDE>3.3 ?)

Best, Arnd
Comment 54 caulier.gilles 2006-11-17 12:09:37 UTC
in kipi-plugins : 

- svn up,
- make -f Makefile.cvs
- ./configure ...
- make

==> work fine here using automake, not unsermake...

Gilles
Comment 55 Arnd Baecker 2006-11-17 12:39:08 UTC
On Fri, 17 Nov 2006, Gilles Caulier wrote:

> in kipi-plugins :
>
> - svn up,
> - make -f Makefile.cvs
> - ./configure ...
> - make
>
> ==> work fine here using automake, not unsermake...


Here I get:

[] /tmp/NEWTRYSVNALL/libs/kipi-plugins $ svn up
At revision 605592.
[] /tmp/NEWTRYSVNALL/libs/kipi-plugins $ make -f Makefile.cvs
make: Makefile.cvs: No such file or directory
make: *** No rule to make target `Makefile.cvs'.  Stop.

Whereas
[] /tmp/NEWTRYSVNALL/libs $ make -f Makefile.cvs
   ... works ...
[] ./configure
  ... runs through, no warnings etc. ...
[] make
  ... gets to the place of the error mentioned before ...

So if it works for you, it must be my system.
And if my debian sarge is too old, I am happy to give up
on compiling digikam svn until I upgraded to debian 4.0 ;-)

Concerning unsermake: this is nowhere on my system.
It says: *** automake (GNU automake) 1.7.9 found.

Best, Arnd
Comment 56 caulier.gilles 2006-11-17 12:42:16 UTC
Move on parent directory of kipi-plugins to run make -f Makefile.cvs

Gilles
Comment 57 Arnd Baecker 2006-11-17 12:56:40 UTC
Sorry, now I am confused. isn't that precisely what I did:
cd /tmp/NEWTRYSVNALL/libs; make -f Makefile.cvs
does work there. And ./configure works fine. But then the make
command leads to the error shown in #53.

Best, Arnd
Comment 58 Mikolaj Machowski 2006-11-17 20:57:35 UTC
No crashes
exiv2 984, kipi-plugins/metadataedit 605645, digikam 605645

Looks like fixed. Thanks!
Comment 59 Roger Larsson 2006-11-17 21:37:39 UTC
No crashes for me either.
I mark it as FIXED for now.
Comment 60 Caspar Maessen 2006-11-17 22:54:38 UTC
exiv2 984, kipi-plugins/metadataedit 605697, digikam 605697. No crashes.
A job well done!

Caspar.
Comment 61 Geoff King 2006-11-18 02:45:59 UTC
Works for Me. Geoff
Comment 62 caulier.gilles 2006-11-18 08:17:24 UTC
Thanks for these reports. 

Important : note that i will fix digiKam/kipi-plugins Exiv2 depency to next Exiv2 0.12 release.

Gilles