Bug 236127 - digiKam crashes sometimes, when changing the rating of a rawfile - Use ExifTool instead.
Summary: digiKam crashes sometimes, when changing the rating of a rawfile - Use ExifTo...
Status: RESOLVED FIXED
Alias: None
Product: digikam
Classification: Applications
Component: Metadata-ExifTool (show other bugs)
Version: 1.3.0
Platform: Ubuntu Linux
: NOR crash
Target Milestone: ---
Assignee: Digikam Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-05-03 09:11 UTC by Frank Hommes
Modified: 2022-04-08 05:27 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In: 8.0.0


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Frank Hommes 2010-05-03 09:11:49 UTC
Application: digikam (1.3.0 (rev.: 1121908))
KDE Platform Version: 4.4.2 (KDE 4.4.2)
Qt Version: 4.6.2
Operating System: Linux 2.6.32-21-generic x86_64
Distribution: Ubuntu 10.04 LTS

-- Information about the crash:
Sometimes, like every 50th time, digikam crashes when writing the rating (in this case, setting the rating from 1 to no one) to a nef file.
I already use the latest svn exiv library and the latest digikam version.

The crash can be reproduced some of the time.

 -- Backtrace:
Application: digiKam (digikam), signal: Aborted
pthread_cond_timedwait@@GLIBC_2.3.2 ()
    at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:211
	in ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
[Current thread is 1 (Thread 0x7fc387f6e7e0 (LWP 1735))]

Thread 12 (Thread 0x7fc37037f710 (LWP 1736)):
#0  0x00007fc3804fc47d in read () at ../sysdeps/unix/syscall-template.S:82
#1  0x00007fc380497348 in _IO_new_file_underflow (fp=0xa26c440) at fileops.c:606
#2  0x00007fc380496cd8 in _IO_file_xsgetn (fp=0xa26c440, data=0x7fc37037e610, n=2) at fileops.c:1445
#3  0x00007fc38048ca62 in _IO_fread (buf=0xffffffff, size=1, count=2, fp=0xffffffffffffffff) at iofread.c:44
#4  0x00007fc37ebe1c40 in Exiv2::FileIo::read(unsigned char*, long) () from /usr/lib/libexiv2.so.6
#5  0x00007fc37ec2d52f in Exiv2::isJpegType(Exiv2::BasicIo&, bool) () from /usr/lib/libexiv2.so.6
#6  0x00007fc37ec1e1bd in Exiv2::ImageFactory::open(std::auto_ptr<Exiv2::BasicIo>) () from /usr/lib/libexiv2.so.6
#7  0x00007fc37ec1dceb in Exiv2::ImageFactory::open(std::string const&) () from /usr/lib/libexiv2.so.6
#8  0x00007fc38641c755 in KExiv2Iface::KExiv2::load (this=0x7fc37037e910, filePath=...) at /home/freanki/progs/src/kdegraphics/libs/libkexiv2/libkexiv2/kexiv2.cpp:293
#9  0x00007fc384e58ff9 in Digikam::DMetadata::load (this=0x7fc37037e910, filePath=...) at /home/freanki/progs/src/graphics/digikam/libs/dmetadata/dmetadata.cpp:85
#10 0x00007fc3848e82fb in Digikam::ImageScanner::loadFromDisk (this=0x7fc37037e900) at /home/freanki/progs/src/graphics/digikam/libs/database/imagescanner.cpp:592
#11 0x00007fc3848e52f9 in Digikam::ImageScanner::newFile (this=0x7fc37037e900, albumId=0) at /home/freanki/progs/src/graphics/digikam/libs/database/imagescanner.cpp:99
#12 0x00007fc3848996df in Digikam::CollectionScanner::scanNewFile (this=0x7fc37037ed50, info=..., albumId=0) at /home/freanki/progs/src/graphics/digikam/libs/database/collectionscanner.cpp:758
#13 0x00007fc384898c75 in Digikam::CollectionScanner::scanAlbum (this=0x7fc37037ed50, location=..., album=...) at /home/freanki/progs/src/graphics/digikam/libs/database/collectionscanner.cpp:667
#14 0x00007fc384896cdb in Digikam::CollectionScanner::partialScan (this=0x7fc37037ed50, albumRoot=..., album=...) at /home/freanki/progs/src/graphics/digikam/libs/database/collectionscanner.cpp:336
#15 0x00007fc38489689d in Digikam::CollectionScanner::partialScan (this=0x7fc37037ed50, filePath=...) at /home/freanki/progs/src/graphics/digikam/libs/database/collectionscanner.cpp:288
#16 0x000000000071fd74 in Digikam::ScanController::run (this=0x1f59920) at /home/freanki/progs/src/graphics/digikam/digikam/scancontroller.cpp:553
#17 0x00007fc381463775 in QThreadPrivate::start (arg=0x1f59920) at thread/qthread_unix.cpp:248
#18 0x00007fc3811d39ca in start_thread (arg=<value optimized out>) at pthread_create.c:300
#19 0x00007fc38050a69d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#20 0x0000000000000000 in ?? ()

Thread 11 (Thread 0x7fc36fb7e710 (LWP 1741)):
#0  0x00007fc3811d63f5 in __pthread_mutex_lock (mutex=0x2164fd8) at pthread_mutex_lock.c:61
#1  0x00007fc37d6bc82b in g_main_context_acquire () from /lib/libglib-2.0.so.0
#2  0x00007fc37d6be295 in ?? () from /lib/libglib-2.0.so.0
#3  0x00007fc37d6be8fc in g_main_context_iteration () from /lib/libglib-2.0.so.0
#4  0x00007fc381581566 in QEventDispatcherGlib::processEvents (this=0x2166a80, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:414
#5  0x00007fc381556992 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149
#6  0x00007fc381556d6c in QEventLoop::exec (this=0x7fc36fb7dd50, flags=) at kernel/qeventloop.cpp:201
#7  0x00007fc381460d59 in QThread::exec (this=<value optimized out>) at thread/qthread.cpp:487
#8  0x00007fc38491c31c in Digikam::ImageFilterModelWorker::Thread::run (this=0x21639e0)
    at /home/freanki/progs/src/graphics/build/digikam/digikam/../../../digikam/libs/models/imagefiltermodelthreads.h:66
#9  0x00007fc381463775 in QThreadPrivate::start (arg=0x21639e0) at thread/qthread_unix.cpp:248
#10 0x00007fc3811d39ca in start_thread (arg=<value optimized out>) at pthread_create.c:300
#11 0x00007fc38050a69d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#12 0x0000000000000000 in ?? ()

Thread 10 (Thread 0x7fc36eb1d710 (LWP 1742)):
#0  0x00007fc37d6bdafb in g_main_context_check () from /lib/libglib-2.0.so.0
#1  0x00007fc37d6be4c3 in ?? () from /lib/libglib-2.0.so.0
#2  0x00007fc37d6be8fc in g_main_context_iteration () from /lib/libglib-2.0.so.0
#3  0x00007fc381581566 in QEventDispatcherGlib::processEvents (this=0x216b390, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:414
#4  0x00007fc381556992 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149
#5  0x00007fc381556d6c in QEventLoop::exec (this=0x7fc36eb1cd50, flags=) at kernel/qeventloop.cpp:201
#6  0x00007fc381460d59 in QThread::exec (this=<value optimized out>) at thread/qthread.cpp:487
#7  0x00007fc38491c31c in Digikam::ImageFilterModelWorker::Thread::run (this=0x2157eb0)
    at /home/freanki/progs/src/graphics/build/digikam/digikam/../../../digikam/libs/models/imagefiltermodelthreads.h:66
#8  0x00007fc381463775 in QThreadPrivate::start (arg=0x2157eb0) at thread/qthread_unix.cpp:248
#9  0x00007fc3811d39ca in start_thread (arg=<value optimized out>) at pthread_create.c:300
#10 0x00007fc38050a69d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#11 0x0000000000000000 in ?? ()

Thread 9 (Thread 0x7fc36de93710 (LWP 1743)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007fc38146472b in QWaitConditionPrivate::wait (this=<value optimized out>, mutex=0x2159b28, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:87
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0x2159b28, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:159
#3  0x00007fc384ee06e5 in Digikam::ParkingThread::run (this=0x2159b10) at /home/freanki/progs/src/graphics/digikam/libs/threads/threadmanager.cpp:101
#4  0x00007fc381463775 in QThreadPrivate::start (arg=0x2159b10) at thread/qthread_unix.cpp:248
#5  0x00007fc3811d39ca in start_thread (arg=<value optimized out>) at pthread_create.c:300
#6  0x00007fc38050a69d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#7  0x0000000000000000 in ?? ()

Thread 8 (Thread 0x7fc36d692710 (LWP 1744)):
#0  0x00007fc3804fdf53 in *__GI___poll (fds=<value optimized out>, nfds=<value optimized out>, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00007fc37d6be4a9 in ?? () from /lib/libglib-2.0.so.0
#2  0x00007fc37d6be8fc in g_main_context_iteration () from /lib/libglib-2.0.so.0
#3  0x00007fc381581566 in QEventDispatcherGlib::processEvents (this=0x21dea60, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:414
#4  0x00007fc381556992 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149
#5  0x00007fc381556d6c in QEventLoop::exec (this=0x7fc36d691d50, flags=) at kernel/qeventloop.cpp:201
#6  0x00007fc381460d59 in QThread::exec (this=<value optimized out>) at thread/qthread.cpp:487
#7  0x0000000000715be2 in Digikam::MetadataManagerWorker::Thread::run (this=0x21dd630) at /home/freanki/progs/src/graphics/build/digikam/digikam/../../../digikam/digikam/metadatamanager_p.h:146
#8  0x00007fc381463775 in QThreadPrivate::start (arg=0x21dd630) at thread/qthread_unix.cpp:248
#9  0x00007fc3811d39ca in start_thread (arg=<value optimized out>) at pthread_create.c:300
#10 0x00007fc38050a69d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#11 0x0000000000000000 in ?? ()

Thread 7 (Thread 0x7fc36ce91710 (LWP 1745)):
[KCrash Handler]
#5  0x00007fc380457a75 in *__GI_raise (sig=<value optimized out>) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#6  0x00007fc38045b5c0 in *__GI_abort () at abort.c:92
#7  0x00007fc380450941 in *__GI___assert_fail (assertion=0x7fc37ed03a65 "pSubIfd == 0", file=<value optimized out>, line=1714, 
    function=0x7fc37ed03d60 "virtual uint32_t Exiv2::Internal::TiffDirectory::doWriteImage(Exiv2::Internal::IoWrapper&, Exiv2::ByteOrder) const") at assert.c:81
#8  0x00007fc37ec83d7d in Exiv2::Internal::TiffDirectory::doWriteImage(Exiv2::Internal::IoWrapper&, Exiv2::ByteOrder) const () from /usr/lib/libexiv2.so.6
#9  0x00007fc37ec83cf3 in Exiv2::Internal::TiffComponent::writeImage(Exiv2::Internal::IoWrapper&, Exiv2::ByteOrder) const () from /usr/lib/libexiv2.so.6
#10 0x00007fc37ec83ea7 in Exiv2::Internal::TiffSubIfd::doWriteImage(Exiv2::Internal::IoWrapper&, Exiv2::ByteOrder) const () from /usr/lib/libexiv2.so.6
#11 0x00007fc37ec83cf3 in Exiv2::Internal::TiffComponent::writeImage(Exiv2::Internal::IoWrapper&, Exiv2::ByteOrder) const () from /usr/lib/libexiv2.so.6
#12 0x00007fc37ec83e0e in Exiv2::Internal::TiffDirectory::doWriteImage(Exiv2::Internal::IoWrapper&, Exiv2::ByteOrder) const () from /usr/lib/libexiv2.so.6
#13 0x00007fc37ec83cf3 in Exiv2::Internal::TiffComponent::writeImage(Exiv2::Internal::IoWrapper&, Exiv2::ByteOrder) const () from /usr/lib/libexiv2.so.6
#14 0x00007fc37ec82644 in Exiv2::Internal::TiffDirectory::doWrite(Exiv2::Internal::IoWrapper&, Exiv2::ByteOrder, int, unsigned int, unsigned int, unsigned int&) () from /usr/lib/libexiv2.so.6
#15 0x00007fc37ec81eb5 in Exiv2::Internal::TiffComponent::write(Exiv2::Internal::IoWrapper&, Exiv2::ByteOrder, int, unsigned int, unsigned int, unsigned int&) () from /usr/lib/libexiv2.so.6
#16 0x00007fc37ec8c491 in Exiv2::Internal::TiffParserWorker::encode(Exiv2::BasicIo&, unsigned char const*, unsigned int, Exiv2::ExifData const&, Exiv2::IptcData const&, Exiv2::XmpData const&, unsigned int, void (Exiv2::Internal::TiffEncoder::*(*)(std::string const&, unsigned int, unsigned short))(Exiv2::Internal::TiffEntryBase*, Exiv2::Exifdatum const*), Exiv2::Internal::TiffHeaderBase*) ()
   from /usr/lib/libexiv2.so.6
#17 0x00007fc37ec8b649 in Exiv2::TiffParser::encode(Exiv2::BasicIo&, unsigned char const*, unsigned int, Exiv2::ByteOrder, Exiv2::ExifData const&, Exiv2::IptcData const&, Exiv2::XmpData const&) ()
   from /usr/lib/libexiv2.so.6
#18 0x00007fc37ec8b467 in Exiv2::TiffImage::writeMetadata() () from /usr/lib/libexiv2.so.6
#19 0x00007fc38641eb0b in KExiv2Iface::KExiv2::save (this=0x7fc36ce902c0, filePath=...) at /home/freanki/progs/src/kdegraphics/libs/libkexiv2/libkexiv2/kexiv2.cpp:497
#20 0x00007fc38641ee2a in KExiv2Iface::KExiv2::applyChanges (this=0x7fc36ce902c0) at /home/freanki/progs/src/kdegraphics/libs/libkexiv2/libkexiv2/kexiv2.cpp:524
#21 0x000000000070da86 in Digikam::MetadataHub::write (this=0x7fc36ce90340, filePath=..., writeMode=Digikam::MetadataHub::FullWrite, settings=...)
    at /home/freanki/progs/src/graphics/digikam/digikam/metadatahub.cpp:610
#22 0x00000000007155b3 in Digikam::MetadataManagerFileWorker::writeMetadataToFiles (this=0x21de5e0, infos=...) at /home/freanki/progs/src/graphics/digikam/digikam/metadatamanager.cpp:478
#23 0x0000000000712501 in Digikam::MetadataManagerFileWorker::qt_metacall (this=0x21de5e0, _c=QMetaObject::InvokeMetaMethod, _id=3, _a=0x7fc34c091470)
    at /home/freanki/progs/src/graphics/build/digikam/digikam/metadatamanager_p.moc:385
#24 0x00007fc381567d49 in QObject::event (this=0x21de5e0, e=0x7fc34c039ec0) at kernel/qobject.cpp:1248
#25 0x00007fc38244222c in QApplicationPrivate::notify_helper (this=0x1d2e970, receiver=0x21de5e0, e=0x7fc34c039ec0) at kernel/qapplication.cpp:4300
#26 0x00007fc3824486fb in QApplication::notify (this=0x7fffa1814490, receiver=0x21de5e0, e=0x7fc34c039ec0) at kernel/qapplication.cpp:4183
#27 0x00007fc3833a8526 in KApplication::notify (this=0x7fffa1814490, receiver=0x21de5e0, event=0x7fc34c039ec0) at ../../kdeui/kernel/kapplication.cpp:302
#28 0x00007fc38155806c in QCoreApplication::notifyInternal (this=0x7fffa1814490, receiver=0x21de5e0, event=0x7fc34c039ec0) at kernel/qcoreapplication.cpp:704
#29 0x00007fc38155a7e7 in QCoreApplication::sendEvent (receiver=0x0, event_type=<value optimized out>, data=0x21de820) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#30 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=<value optimized out>, data=0x21de820) at kernel/qcoreapplication.cpp:1345
#31 0x00007fc3815819d3 in QCoreApplication::sendPostedEvents (s=<value optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:220
#32 postEventSourceDispatch (s=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:276
#33 0x00007fc37d6ba8c2 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#34 0x00007fc37d6be748 in ?? () from /lib/libglib-2.0.so.0
#35 0x00007fc37d6be8fc in g_main_context_iteration () from /lib/libglib-2.0.so.0
#36 0x00007fc381581513 in QEventDispatcherGlib::processEvents (this=0x21e5820, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:412
#37 0x00007fc381556992 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149
#38 0x00007fc381556d6c in QEventLoop::exec (this=0x7fc36ce90d50, flags=) at kernel/qeventloop.cpp:201
#39 0x00007fc381460d59 in QThread::exec (this=<value optimized out>) at thread/qthread.cpp:487
#40 0x0000000000715be2 in Digikam::MetadataManagerWorker::Thread::run (this=0x21de6b0) at /home/freanki/progs/src/graphics/build/digikam/digikam/../../../digikam/digikam/metadatamanager_p.h:146
#41 0x00007fc381463775 in QThreadPrivate::start (arg=0x21de6b0) at thread/qthread_unix.cpp:248
#42 0x00007fc3811d39ca in start_thread (arg=<value optimized out>) at pthread_create.c:300
#43 0x00007fc38050a69d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#44 0x0000000000000000 in ?? ()

Thread 6 (Thread 0x7fc364a2c710 (LWP 1746)):
#0  pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:211
#1  0x00007fc366775081 in ?? () from /usr/lib/libxine.so.1
#2  0x00007fc3811d39ca in start_thread (arg=<value optimized out>) at pthread_create.c:300
#3  0x00007fc38050a69d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#4  0x0000000000000000 in ?? ()

Thread 5 (Thread 0x7fc3635f0710 (LWP 1751)):
#0  0x00007fc380502fb3 in select () at ../sysdeps/unix/syscall-template.S:82
#1  0x00007fc36679e2c5 in xine_usec_sleep () from /usr/lib/libxine.so.1
#2  0x00007fc366782c99 in ?? () from /usr/lib/libxine.so.1
#3  0x00007fc3811d39ca in start_thread (arg=<value optimized out>) at pthread_create.c:300
#4  0x00007fc38050a69d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#5  0x0000000000000000 in ?? ()

Thread 4 (Thread 0x7fc362def710 (LWP 1752)):
#0  0x00007fc37d6bdb2c in g_main_context_check () from /lib/libglib-2.0.so.0
#1  0x00007fc37d6be4c3 in ?? () from /lib/libglib-2.0.so.0
#2  0x00007fc37d6be8fc in g_main_context_iteration () from /lib/libglib-2.0.so.0
#3  0x00007fc381581566 in QEventDispatcherGlib::processEvents (this=0x23e1a20, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:414
#4  0x00007fc381556992 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149
#5  0x00007fc381556d6c in QEventLoop::exec (this=0x7fc362deed10, flags=) at kernel/qeventloop.cpp:201
#6  0x00007fc381460d59 in QThread::exec (this=<value optimized out>) at thread/qthread.cpp:487
#7  0x00007fc3669d1440 in ?? () from /usr/lib/qt4/plugins/phonon_backend/phonon_xine.so
#8  0x00007fc381463775 in QThreadPrivate::start (arg=0x23e1330) at thread/qthread_unix.cpp:248
#9  0x00007fc3811d39ca in start_thread (arg=<value optimized out>) at pthread_create.c:300
#10 0x00007fc38050a69d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#11 0x0000000000000000 in ?? ()

Thread 3 (Thread 0x7fc3623e4710 (LWP 1755)):
#0  0x00007fc3804fdf53 in *__GI___poll (fds=<value optimized out>, nfds=<value optimized out>, timeout=333) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00007fc3623e9915 in ?? () from /usr/lib/xine/plugins/1.27/xineplug_ao_out_alsa.so
#2  0x00007fc3811d39ca in start_thread (arg=<value optimized out>) at pthread_create.c:300
#3  0x00007fc38050a69d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#4  0x0000000000000000 in ?? ()

Thread 2 (Thread 0x7fc361be3710 (LWP 1756)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007fc366785e23 in ?? () from /usr/lib/libxine.so.1
#2  0x00007fc3811d39ca in start_thread (arg=<value optimized out>) at pthread_create.c:300
#3  0x00007fc38050a69d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#4  0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7fc387f6e7e0 (LWP 1735)):
#0  pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:211
#1  0x00007fc3814630e5 in thread_sleep (ti=0x7fffa1813fd0) at thread/qthread_unix.cpp:398
#2  0x00007fc381463250 in QThread::msleep (msecs=<value optimized out>) at thread/qthread_unix.cpp:424
#3  0x00007fc3669f8b8a in ?? () from /usr/lib/qt4/plugins/phonon_backend/phonon_xine.so
#4  0x00007fc387913846 in ?? () from /usr/lib/libphonon.so.4
#5  0x00007fc38045d262 in __run_exit_handlers (status=1) at exit.c:78
#6  *__GI_exit (status=1) at exit.c:100
#7  0x00007fc3824b8558 in qt_xio_errhandler () at kernel/qapplication_x11.cpp:734
#8  0x00007fc3833a8288 in KApplication::xioErrhandler (this=0x7fffa1814490, dpy=0x1d33d40) at ../../kdeui/kernel/kapplication.cpp:408
#9  0x00007fc37f8a07fe in _XIOError () from /usr/lib/libX11.so.6
#10 0x00007fc37f8a8355 in ?? () from /usr/lib/libX11.so.6
#11 0x00007fc37f8a8c07 in _XEventsQueued () from /usr/lib/libX11.so.6
#12 0x00007fc37f89140b in XEventsQueued () from /usr/lib/libX11.so.6
#13 0x00007fc3824f262c in x11EventSourceCheck (s=0x1d325e0) at kernel/qguieventdispatcher_glib.cpp:87
#14 0x00007fc37d6bdb0a in g_main_context_check () from /lib/libglib-2.0.so.0
#15 0x00007fc37d6be4c3 in ?? () from /lib/libglib-2.0.so.0
#16 0x00007fc37d6be8fc in g_main_context_iteration () from /lib/libglib-2.0.so.0
#17 0x00007fc381581566 in QEventDispatcherGlib::processEvents (this=0x1cf1aa0, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:414
#18 0x00007fc3824f246e in QGuiEventDispatcherGlib::processEvents (this=0x7fffa1813f54, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:204
#19 0x00007fc381556992 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149
#20 0x00007fc381556d6c in QEventLoop::exec (this=0x7fffa18143a0, flags=) at kernel/qeventloop.cpp:201
#21 0x00007fc38155aaab in QCoreApplication::exec () at kernel/qcoreapplication.cpp:981
#22 0x00000000007a455f in main (argc=1, argv=0x7fffa1814a88) at /home/freanki/progs/src/graphics/digikam/digikam/main.cpp:193

This bug may be a duplicate of or related to bug 235171.

Possible duplicates by query: bug 235171, bug 200783.

Reported using DrKonqi
Comment 1 caulier.gilles 2010-05-03 09:39:42 UTC
Another crash from Exiv2 library. It's a duplicate entry ?

Gilles Caulier
Comment 2 Frank Hommes 2010-05-03 09:55:03 UTC
I wasn't sure...
Is it ok to post those bugs at bugs.kde.org @ digikam or is there another place?


freanki@tristan:~/progs/src/temp/trunk$ svn update
At revision 2211.
freanki@tristan:~/progs/src/temp/trunk$ ./configure && make
[...]

freanki@tristan:~/progs/src/temp/trunk$ ./src/exiv2 -M'set Exif.Image.Rating 5' ~/win/pics/2010/raw/20100501\ -\ Maiwandern/20100501-100041.nef 
lt-exiv2: tiffcomposite.cpp:1714: virtual uint32_t Exiv2::Internal::TiffDirectory::doWriteImage(Exiv2::Internal::IoWrapper&, Exiv2::ByteOrder) const: Assertion `pSubIfd == 0' failed.
Aborted
Comment 3 Andreas Huggel 2010-05-03 15:12:41 UTC
Frank,

Yes, another issue for exiv2. You could have posted this issue to the exiv2 bugtracker at http://dev.exiv2.org since you already narrowed it down to that. Anyway, what is really good here is that you found a simple reproducer with just the exiv2 command line utility. That goes a long way.

Can you please run the following command on this picture

$ exiv2 -u -Pkyctx 20100501-100041.nef | grep 0x014a

and post the output here. Thanks.

Andreas
Comment 4 Frank Hommes 2010-05-03 17:14:15 UTC
After this bug I will go to dev.exiv2.org. I've got something anyway =)

But now this problem:

exiv2 -u -Pkyctx 20100501-100041.nef | grep 0x014a
0x014a Exif.Image.SubIFDs                           Long        2  4054 4292
0x014a Exif.SubImage1.SubIFDs                       Undefined   0
Comment 5 Andreas Huggel 2010-05-03 17:31:46 UTC
hmm, that's not what I expected... do you mind sending me the image (ahuggel at gmx dot net) or uploading it and provide a link?
Comment 6 Andreas Huggel 2010-05-07 13:53:19 UTC
Fixed in Exiv2 SVN r2212. 

(That was an expensive fix: Several hours of debugging and head-cracking for changes in 2 lines :) A regression introduced with Exiv2 issue #668 recently.)

Frank, please re-test and confirm that it works for you too.

Andreas
Comment 7 Frank Hommes 2010-05-07 14:17:49 UTC
I can confirm that it works now :)
Comment 8 Frank Hommes 2010-05-07 14:18:23 UTC
I can confirm that it works now :)

Great work!
Comment 9 Andreas Huggel 2010-05-07 17:49:19 UTC
Good. Due to this bug you now have images with an extra Exif.SubImage1.SubIFDs tag, which you should delete. The current exiv2 trunk version can't do that anymore (that's by design, at least for now, also because of #668), but 0.19 can:

$ exiv2-0.19 -M'del Exif.SubImage1.SubIFDs' *.nef
Comment 10 caulier.gilles 2022-04-08 05:27:28 UTC
Git commit 232040bdd51ba615ba3c2ac04e4846a3cf80c1af by Gilles Caulier.
Committed on 08/04/2022 at 05:24.
Pushed by cgilles into branch 'master'.

More files closed with ExifTool backend used to write metadata to RAW files instead Exiv2.
Related: bug 193228, bug 235171, bug 291627, bug 305823, bug 317745, bug 234181, bug 366406, bug 168064, bug 134487
FIXED-IN: 8.0.0

M  +14   -4    NEWS

https://invent.kde.org/graphics/digikam/commit/232040bdd51ba615ba3c2ac04e4846a3cf80c1af