Bug 232957

Summary: digikam crashes while importing images (about 60000 files)
Product: [Applications] digikam Reporter: Stefan Holmström <stefan.ca.h>
Component: Metadata-EngineAssignee: Digikam Developers <digikam-bugs-null>
Status: RESOLVED FIXED    
Severity: crash CC: ahuggel, caulier.gilles, sam.chola+kdebugs
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Unlisted Binaries   
OS: Linux   
Latest Commit: Version Fixed In: 5.7.0
Sentry Crash Report:

Description Stefan Holmström 2010-04-01 13:49:14 UTC
Application that crashed: digikam
Version of the application: 1.0.0-beta5
KDE Version: 4.3.2 (KDE 4.3.2)
Qt Version: 4.5.2
Operating System: Linux 2.6.31-20-generic x86_64
Distribution: Ubuntu 9.10

What I was doing when the application crashed:
I just installed digikam and started to scan my pictures collection. I contains about 60000 files. After scanning roughly 2/3 digikam crashed. I am running Ubuntu 9.10 64 bit on AMD Turion X2 on HP Pavillion.

 -- Backtrace:
Application: digiKam (digikam), signal: Segmentation fault
pthread_cond_wait@@GLIBC_2.3.2 ()
    at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:261
	in ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
The current source language is "auto; currently asm".
[Current thread is 1 (Thread 0x7f5ef2131750 (LWP 5041))]

Thread 2 (Thread 0x7f5ed63bf910 (LWP 5045)):
[KCrash Handler]
#5  _wordcopy_fwd_aligned (dstp=140045200493200, srcp=140049475842048, len=576) at wordcopy.c:80
#6  0x00007f5eeaf86072 in *__GI_memmove (dest=0x7f5ed06d8a90, src=<value optimized out>, len=4608) at memmove.c:73
#7  0x00007f5eea079f43 in void std::vector<unsigned char, std::allocator<unsigned char> >::_M_assign_aux<unsigned char const*>(unsigned char const*, unsigned char const*, std::forward_iterator_tag)
    () from /usr/lib/libexiv2.so.5
#8  0x00007f5eea075835 in Exiv2::DataValue::read(unsigned char const*, long, Exiv2::ByteOrder) () from /usr/lib/libexiv2.so.5
#9  0x00007f5eea06f79c in ?? () from /usr/lib/libexiv2.so.5
#10 0x00007f5eea060345 in ?? () from /usr/lib/libexiv2.so.5
#11 0x00007f5eea0602f1 in ?? () from /usr/lib/libexiv2.so.5
#12 0x00007f5eea060345 in ?? () from /usr/lib/libexiv2.so.5
#13 0x00007f5eea01e894 in ?? () from /usr/lib/libexiv2.so.5
#14 0x00007f5eea060269 in ?? () from /usr/lib/libexiv2.so.5
#15 0x00007f5eea060345 in ?? () from /usr/lib/libexiv2.so.5
#16 0x00007f5eea0602f1 in ?? () from /usr/lib/libexiv2.so.5
#17 0x00007f5eea060345 in ?? () from /usr/lib/libexiv2.so.5
#18 0x00007f5eea066ae1 in ?? () from /usr/lib/libexiv2.so.5
#19 0x00007f5eea06757a in ?? () from /usr/lib/libexiv2.so.5
#20 0x00007f5eea036477 in Exiv2::OrfParser::decode(Exiv2::ExifData&, Exiv2::IptcData&, Exiv2::XmpData&, unsigned char const*, unsigned int) () from /usr/lib/libexiv2.so.5
#21 0x00007f5eea036e99 in Exiv2::OrfImage::readMetadata() () from /usr/lib/libexiv2.so.5
#22 0x00007f5ef0846a0a in KExiv2Iface::KExiv2::load(QString const&) const () from /usr/lib/libkexiv2.so.7
#23 0x00007f5eef37be39 in Digikam::DMetadata::load (this=0x7f5ed06d8a90, filePath=...) at /build/buildd/digikam-1.0.0~beta5/libs/dmetadata/dmetadata.cpp:91
#24 0x00007f5eeefa94e1 in Digikam::ImageScanner::loadFromDisk (this=0x7f5ed63be560) at /build/buildd/digikam-1.0.0~beta5/libs/database/imagescanner.cpp:528
#25 0x00007f5eeefaef88 in Digikam::ImageScanner::newFile (this=0x7f5ed06d8a90, albumId=-817745920) at /build/buildd/digikam-1.0.0~beta5/libs/database/imagescanner.cpp:89
#26 0x00007f5eeef6074b in Digikam::CollectionScanner::scanNewFile (this=0x7f5ed63beff0, info=..., albumId=3241) at /build/buildd/digikam-1.0.0~beta5/libs/database/collectionscanner.cpp:722
#27 0x00007f5eeef61f39 in Digikam::CollectionScanner::scanAlbum (this=<value optimized out>, location=<value optimized out>, album=<value optimized out>)
    at /build/buildd/digikam-1.0.0~beta5/libs/database/collectionscanner.cpp:637
#28 0x00007f5eeef61e5b in Digikam::CollectionScanner::scanAlbum (this=<value optimized out>, location=<value optimized out>, album=<value optimized out>)
    at /build/buildd/digikam-1.0.0~beta5/libs/database/collectionscanner.cpp:655
#29 0x00007f5eeef61e5b in Digikam::CollectionScanner::scanAlbum (this=<value optimized out>, location=<value optimized out>, album=<value optimized out>)
    at /build/buildd/digikam-1.0.0~beta5/libs/database/collectionscanner.cpp:655
#30 0x00007f5eeef62637 in Digikam::CollectionScanner::scanAlbumRoot (this=0x7f5ed63beff0, location=...) at /build/buildd/digikam-1.0.0~beta5/libs/database/collectionscanner.cpp:451
#31 0x00007f5eeef62980 in Digikam::CollectionScanner::completeScan (this=0x7f5ed63beff0) at /build/buildd/digikam-1.0.0~beta5/libs/database/collectionscanner.cpp:228
#32 0x00000000006c8d32 in Digikam::ScanController::run (this=0x1d4da00) at /build/buildd/digikam-1.0.0~beta5/digikam/scancontroller.cpp:523
#33 0x00007f5eeba7d445 in QThreadPrivate::start (arg=0x1d4da00) at thread/qthread_unix.cpp:188
#34 0x00007f5ee9d7ea04 in start_thread (arg=<value optimized out>) at pthread_create.c:300
#35 0x00007f5eeafe480d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#36 0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7f5ef2131750 (LWP 5041)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:261
#1  0x00007f5eeba7e4fb in QWaitConditionPrivate::wait (this=<value optimized out>, mutex=0x1d365c0, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:87
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0x1d365c0, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:159
#3  0x00007f5eeba7d4e4 in QThread::wait (this=<value optimized out>, time=18446744073709551615) at thread/qthread_unix.cpp:484
#4  0x00000000006c8a47 in Digikam::ScanController::shutDown (this=0x1d4da00) at /build/buildd/digikam-1.0.0~beta5/digikam/scancontroller.cpp:288
#5  0x00000000006cc9bb in ~ScanController (this=0x1d4514c, __in_chrg=<value optimized out>) at /build/buildd/digikam-1.0.0~beta5/digikam/scancontroller.cpp:271
#6  0x00000000006ccb57 in ~ScanControllerCreator () at /build/buildd/digikam-1.0.0~beta5/digikam/scancontroller.cpp:219
#7  destroy () at /build/buildd/digikam-1.0.0~beta5/digikam/scancontroller.cpp:220
#8  0x00007f5eeaf3dc12 in __run_exit_handlers (status=1) at exit.c:78
#9  *__GI_exit (status=1) at exit.c:100
#10 0x00007f5edff5b726 in ?? () from /usr/lib/libgdk-x11-2.0.so.0
#11 0x00007f5eedae5498 in KApplication::xioErrhandler (this=0x7fff16363070, dpy=0x13f4f10) at ../../kdeui/kernel/kapplication.cpp:408
#12 0x00007f5eea381fae in _XIOError () from /usr/lib/libX11.so.6
#13 0x00007f5eea3899a5 in ?? () from /usr/lib/libX11.so.6
#14 0x00007f5eea38a257 in _XEventsQueued () from /usr/lib/libX11.so.6
#15 0x00007f5eea37301b in XEventsQueued () from /usr/lib/libX11.so.6
#16 0x00007f5eec78967c in x11EventSourceCheck (s=0x13d3b20) at kernel/qguieventdispatcher_glib.cpp:87
#17 0x00007f5ee545faaa in g_main_context_check () from /lib/libglib-2.0.so.0
#18 0x00007f5ee5460290 in ?? () from /lib/libglib-2.0.so.0
#19 0x00007f5ee54606c0 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#20 0x00007f5eebb8c1a6 in QEventDispatcherGlib::processEvents (this=0x139d590, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:327
#21 0x00007f5eec7894be in QGuiEventDispatcherGlib::processEvents (this=0x1d4514c, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:202
#22 0x00007f5eebb62532 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149
#23 0x00007f5eebb62904 in QEventLoop::exec (this=0x1d53040, flags=) at kernel/qeventloop.cpp:201
#24 0x00000000006ca0b1 in Digikam::ScanController::completeCollectionScan (this=0x1d4da00, splash=<value optimized out>) at /build/buildd/digikam-1.0.0~beta5/digikam/scancontroller.cpp:376
#25 0x00000000006699f3 in DigikamApp (this=0x15d2530, __in_chrg=<value optimized out>, __vtt_parm=<value optimized out>) at /build/buildd/digikam-1.0.0~beta5/digikam/digikamapp.cpp:170
#26 0x000000000075fb45 in main (argc=<value optimized out>, argv=<value optimized out>) at /build/buildd/digikam-1.0.0~beta5/digikam/main.cpp:163
The current source language is "auto; currently c".
The current source language is "auto; currently asm".

This bug may be a duplicate of or related to bug 220769

Reported using DrKonqi
Comment 1 caulier.gilles 2010-04-01 13:52:36 UTC
First you use digiKam 1.0.0-beta5. It's not maintained. update to digiKam 1.2.0.

Second, crash sound like located to Exiv2 library, not digiKam...

Gilles Caulier
Comment 2 Andreas Huggel 2010-04-01 15:33:48 UTC
Standard question for exiv2 issues is: Can you reproduce this with the exiv2 command line tool? If so, please provide the image that triggers the problem.

(The crash actually happens in a function called _wordcopy_fwd_aligned, which is not part of libexiv2. After scanning roughly 40,000 images...)

Thanks,
Andreas
Comment 3 Stefan Holmström 2010-04-01 19:56:56 UTC
Hello Andreas

and also Gilles Caulier

Thank you for the quick response. This bug is most probably related to 
the old release of DigiKam that is the default in Ubuntu. After 
upgrading to 1.1.0 the crash did not reappear. So from my point of view, 
the bug is resolved.

Regards
Stefan


Andreas Huggel skrev 2010-04-01 15:34:
> https://bugs.kde.org/show_bug.cgi?id=232957
>
>
> Andreas Huggel<ahuggel@gmx.net>  changed:
>
>             What    |Removed                     |Added
> ----------------------------------------------------------------------------
>                   CC|                            |ahuggel@gmx.net
>
>
>
>
> --- Comment #2 from Andreas Huggel<ahuggel gmx net>   2010-04-01 15:33:48 ---
> Standard question for exiv2 issues is: Can you reproduce this with the exiv2
> command line tool? If so, please provide the image that triggers the problem.
>
> (The crash actually happens in a function called _wordcopy_fwd_aligned, which
> is not part of libexiv2. After scanning roughly 40,000 images...)
>
> Thanks,
> Andreas
>
>
Comment 4 Sam Pera 2010-06-01 09:11:20 UTC
I am also affected by this bug. My photo library is fairly large (approx. 100GB) and digikam has been crashing every time on startup.  It seems to be related to exiv2.

Here is the trace. Symbols were not available for exiv2 so I could not use the automated crash reporter.  I am running Ububtu 10.04 x86 on an HP Pavillion dv4-1413la with an Athlon X2 processor.

Application: digikam (1.2.0)
KDE Platform Version: 4.4.2 (KDE 4.4.2)
Qt Version: 4.6.2
Operating System: Linux 2.6.32-22-generic i686
Distribution: Ubuntu 10.04 LTS

-- Information about the crash:
Crashes on startup every time.

The crash can be reproduced every time.

 -- Backtrace:
Application: digiKam (digikam), signal: Bus error
[Current thread is 1 (Thread 0xb66be760 (LWP 13941))]

Thread 2 (Thread 0xb4f0db70 (LWP 13942)):
[KCrash Handler]
#6  0x07d22915 in ?? () from /lib/tls/i686/cmov/libc.so.6
#7  0x014a87d1 in void std::vector<unsigned char, std::allocator<unsigned char> >::_M_assign_aux<unsigned char const*>(unsigned char const*, unsigned char const*, std::forward_iterator_tag) ()
   from /usr/lib/libexiv2.so.6
#8  0x014a3bc5 in Exiv2::DataValue::read(unsigned char const*, long, Exiv2::ByteOrder) () from /usr/lib/libexiv2.so.6
#9  0x0149d94e in ?? () from /usr/lib/libexiv2.so.6
#10 0x0149e53e in ?? () from /usr/lib/libexiv2.so.6
#11 0x0148b64c in ?? () from /usr/lib/libexiv2.so.6
#12 0x0148b4b0 in ?? () from /usr/lib/libexiv2.so.6
#13 0x0148b76d in ?? () from /usr/lib/libexiv2.so.6
#14 0x0148b4b0 in ?? () from /usr/lib/libexiv2.so.6
#15 0x0148b709 in ?? () from /usr/lib/libexiv2.so.6
#16 0x0148b4b0 in ?? () from /usr/lib/libexiv2.so.6
#17 0x0148b76d in ?? () from /usr/lib/libexiv2.so.6
#18 0x0148b4b0 in ?? () from /usr/lib/libexiv2.so.6
#19 0x01492d7e in ?? () from /usr/lib/libexiv2.so.6
#20 0x014936ba in ?? () from /usr/lib/libexiv2.so.6
#21 0x0140a8e2 in Exiv2::Cr2Parser::decode(Exiv2::ExifData&, Exiv2::IptcData&, Exiv2::XmpData&, unsigned char const*, unsigned int) () from /usr/lib/libexiv2.so.6
#22 0x0140bb24 in Exiv2::Cr2Image::readMetadata() () from /usr/lib/libexiv2.so.6
#23 0x0014c6d5 in KExiv2Iface::KExiv2::load(QString const&) const () from /usr/lib/libkexiv2.so.8
#24 0x07040b8c in Digikam::DMetadata::load (this=0xb4f0ccfc, filePath=...) at /build/buildd/digikam-1.2.0/libs/dmetadata/dmetadata.cpp:78
#25 0x011dfd8a in Digikam::ImageScanner::loadFromDisk (this=0xb4f0ccf4) at /build/buildd/digikam-1.2.0/libs/database/imagescanner.cpp:592
#26 0x011e5892 in Digikam::ImageScanner::newFile (this=0xb4f0ccf4, albumId=174) at /build/buildd/digikam-1.2.0/libs/database/imagescanner.cpp:98
#27 0x01191e24 in Digikam::CollectionScanner::scanNewFile (this=0xb4f0d290, info=..., albumId=174) at /build/buildd/digikam-1.2.0/libs/database/collectionscanner.cpp:756
#28 0x01192bfa in Digikam::CollectionScanner::scanAlbum (this=0xb4f0d290, location=..., album=...) at /build/buildd/digikam-1.2.0/libs/database/collectionscanner.cpp:665
#29 0x01192a7c in Digikam::CollectionScanner::scanAlbum (this=0xb4f0d290, location=..., album=...) at /build/buildd/digikam-1.2.0/libs/database/collectionscanner.cpp:683
#30 0x01192a7c in Digikam::CollectionScanner::scanAlbum (this=0xb4f0d290, location=..., album=...) at /build/buildd/digikam-1.2.0/libs/database/collectionscanner.cpp:683
#31 0x01192a7c in Digikam::CollectionScanner::scanAlbum (this=0xb4f0d290, location=..., album=...) at /build/buildd/digikam-1.2.0/libs/database/collectionscanner.cpp:683
#32 0x01193897 in Digikam::CollectionScanner::scanAlbumRoot (this=0xb4f0d290, location=...) at /build/buildd/digikam-1.2.0/libs/database/collectionscanner.cpp:479
#33 0x01193bcf in Digikam::CollectionScanner::completeScan (this=0xb4f0d290) at /build/buildd/digikam-1.2.0/libs/database/collectionscanner.cpp:250
#34 0x08321f6e in Digikam::ScanController::run (this=0x9d1f6a0) at /build/buildd/digikam-1.2.0/digikam/scancontroller.cpp:541
#35 0x01de632e in QThreadPrivate::start (arg=0x9d1f6a0) at thread/qthread_unix.cpp:248
#36 0x0096c96e in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#37 0x07d7ba4e in clone () from /lib/tls/i686/cmov/libc.so.6

Thread 1 (Thread 0xb66be760 (LWP 13941)):
#0  0x00291422 in __kernel_vsyscall ()
#1  0x00971015 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/tls/i686/cmov/libpthread.so.0
#2  0x01de7287 in QWaitConditionPrivate::wait (this=0x9d29bf4, mutex=0x9d29be0, time=4294967295) at thread/qwaitcondition_unix.cpp:87
#3  QWaitCondition::wait (this=0x9d29bf4, mutex=0x9d29be0, time=4294967295) at thread/qwaitcondition_unix.cpp:159
#4  0x01de63c9 in QThread::wait (this=0x9d1f6a0, time=4294967295) at thread/qthread_unix.cpp:619
#5  0x08322354 in Digikam::ScanController::shutDown (this=0x9d1f6a0) at /build/buildd/digikam-1.2.0/digikam/scancontroller.cpp:290
#6  0x08323ab1 in ~ScanController (this=0x9d1f6a0, __in_chrg=<value optimized out>) at /build/buildd/digikam-1.2.0/digikam/scancontroller.cpp:273
#7  0x08323c6a in ~ScanControllerCreator () at /build/buildd/digikam-1.2.0/digikam/scancontroller.cpp:221
#8  destroy () at /build/buildd/digikam-1.2.0/digikam/scancontroller.cpp:222
#9  0x07cdd1bf in ?? () from /lib/tls/i686/cmov/libc.so.6
#10 0x07cdd22f in exit () from /lib/tls/i686/cmov/libc.so.6
#11 0x097f2520 in ?? () from /usr/lib/libgdk-x11-2.0.so.0
#12 0x078b9bfa in KApplication::xioErrhandler (this=0xbfbfeac8, dpy=0x9bd45c8) at ../../kdeui/kernel/kapplication.cpp:408
#13 0x078b9c36 in kde_xio_errhandler (dpy=0x9bd45c8) at ../../kdeui/kernel/kapplication.cpp:125
#14 0x0322dc16 in _XIOError () from /usr/lib/libX11.so.6
#15 0x03235a1a in ?? () from /usr/lib/libX11.so.6
#16 0x03236356 in _XEventsQueued () from /usr/lib/libX11.so.6
#17 0x0321eadf in XEventsQueued () from /usr/lib/libX11.so.6
#18 0x05046305 in x11EventSourceCheck (s=0x9bbd140) at kernel/qguieventdispatcher_glib.cpp:87
#19 0x09547799 in g_main_context_check () from /lib/libglib-2.0.so.0
#20 0x095480ce in ?? () from /lib/libglib-2.0.so.0
#21 0x095484b8 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#22 0x01f145d5 in QEventDispatcherGlib::processEvents (this=0x9b8f6e8, flags=...) at kernel/qeventdispatcher_glib.cpp:412
#23 0x05046135 in QGuiEventDispatcherGlib::processEvents (this=0x9b8f6e8, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#24 0x01ee7059 in QEventLoop::processEvents (this=0x9d20e48, flags=) at kernel/qeventloop.cpp:149
#25 0x01ee74aa in QEventLoop::exec (this=0x9d20e48, flags=...) at kernel/qeventloop.cpp:201
#26 0x0832331c in Digikam::ScanController::completeCollectionScan (this=0x9d1f6a0, splash=0x9d4e710) at /build/buildd/digikam-1.2.0/digikam/scancontroller.cpp:378
#27 0x082cee72 in DigikamApp (this=0x9d94d40, __in_chrg=<value optimized out>, __vtt_parm=<value optimized out>) at /build/buildd/digikam-1.2.0/digikam/digikamapp.cpp:189
#28 0x083c292a in main (argc=5, argv=0xbfbfef14) at /build/buildd/digikam-1.2.0/digikam/main.cpp:170
Comment 5 caulier.gilles 2010-06-01 09:35:28 UTC
Sam,

update Exiv2 library to 0.20, recompile (or update) libkexiv2 and try again

Gilles Caulier
Comment 6 caulier.gilles 2017-07-08 10:59:25 UTC
This is a crash in Exiv2 library.
digiKam 5.7.0 we use last Exiv2 0.26 where this crash must not reappear.