Bug 214913

Summary: digikam crash scanning photos
Product: [Applications] digikam Reporter: Nathaniel W. Turner <nate>
Component: Metadata-EngineAssignee: Digikam Developers <digikam-bugs-null>
Status: RESOLVED UPSTREAM    
Severity: crash CC: ahuggel, caulier.gilles
Priority: NOR    
Version: 1.0.0   
Target Milestone: ---   
Platform: Unlisted Binaries   
OS: Linux   
Latest Commit: Version Fixed In: 1.1.0
Sentry Crash Report:

Description Nathaniel W. Turner 2009-11-17 03:10:16 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-14-generic x86_64
Distribution: Ubuntu 9.10

What I was doing when the application crashed:
Crashed when scanning my photos after first-run wizard.

 -- Backtrace:
Application: digiKam (digikam), signal: Aborted
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 0x7fb21052f750 (LWP 30424))]

Thread 2 (Thread 0x7fb1f7aa2910 (LWP 30505)):
[KCrash Handler]
#5  0x00007fb2093464b5 in *__GI_raise (sig=<value optimized out>) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#6  0x00007fb209349f50 in *__GI_abort () at abort.c:92
#7  0x00007fb20933f481 in *__GI___assert_fail (assertion=0x7fb2084c912b "pData != 0", file=<value optimized out>, line=289, 
    function=0x7fb2084cfce0 "virtual bool Exiv2::Internal::OlympusMnHeader::read(const Exiv2::byte*, uint32_t, Exiv2::ByteOrder)") at assert.c:81
#8  0x00007fb20842b2ba in Exiv2::Internal::OlympusMnHeader::read (this=0x3477cf0, pData=0x0, size=<value optimized out>) at makernote.cpp:289
#9  0x00007fb20847c2bb in Exiv2::Internal::TiffReader::visitIfdMakernote (this=0x7fb1f7aa0a20, object=0x365f1d0) at tiffvisitor.cpp:1237
#10 0x00007fb20842b854 in Exiv2::Internal::TiffIfdMakernote::doAccept (this=0x365f1d0, visitor=...) at makernote.cpp:211
#11 0x00007fb20846d269 in Exiv2::Internal::TiffMnEntry::doAccept (this=0x36c9d70, visitor=...) at tiffcomposite.cpp:621
#12 0x00007fb20846d345 in Exiv2::Internal::TiffDirectory::doAccept (this=0x3620570, visitor=...) at tiffcomposite.cpp:602
#13 0x00007fb20846d2f1 in Exiv2::Internal::TiffSubIfd::doAccept (this=0x367b1f0, visitor=...) at tiffcomposite.cpp:614
#14 0x00007fb20846d345 in Exiv2::Internal::TiffDirectory::doAccept (this=0x36d2000, visitor=...) at tiffcomposite.cpp:602
#15 0x00007fb208473ae1 in Exiv2::Internal::TiffParserWorker::parse (pData=0x37352b0 "MM", size=6528, root=131072, pHeader=<value optimized out>) at tiffimage.cpp:823
#16 0x00007fb20847457a in Exiv2::Internal::TiffParserWorker::decode (exifData=<value optimized out>, iptcData=..., xmpData=..., pData=0x37352b0 "MM", size=6528, root=131072, 
    findDecoderFct=0x7fb2084729e0 <Exiv2::Internal::TiffMapping::findDecoder(std::string const&, unsigned int, unsigned short)>, pHeader=0x2b23c30) at tiffimage.cpp:729
#17 0x00007fb2084747e3 in Exiv2::TiffParser::decode (exifData=..., iptcData=..., xmpData=..., pData=0xffffffffffffffff <Address 0xffffffffffffffff out of bounds>, size=4155123984)
    at tiffimage.cpp:198
#18 0x00007fb2084160b5 in Exiv2::ExifParser::decode (exifData=..., pData=0xffffffffffffffff <Address 0xffffffffffffffff out of bounds>, size=4155123984) at exif.cpp:435
#19 0x00007fb208429859 in Exiv2::JpegBase::readMetadata (this=0x361b910) at jpgimage.cpp:320
#20 0x00007fb20ec54a0a in KExiv2Iface::KExiv2::load(QString const&) const () from /usr/lib/libkexiv2.so.7
#21 0x00007fb20d789e39 in Digikam::DMetadata::load (this=0x76d8, filePath=...) at /build/buildd/digikam-1.0.0~beta5/libs/dmetadata/dmetadata.cpp:91
#22 0x00007fb20d3b74e1 in Digikam::ImageScanner::loadFromDisk (this=0x7fb1f7aa0fc0) at /build/buildd/digikam-1.0.0~beta5/libs/database/imagescanner.cpp:528
#23 0x00007fb20d3bcf88 in Digikam::ImageScanner::newFile (this=0x76d8, albumId=30505) at /build/buildd/digikam-1.0.0~beta5/libs/database/imagescanner.cpp:89
#24 0x00007fb20d36e74b in Digikam::CollectionScanner::scanNewFile (this=0x7fb1f7aa1ff0, info=..., albumId=33) at /build/buildd/digikam-1.0.0~beta5/libs/database/collectionscanner.cpp:722
#25 0x00007fb20d36ff39 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
#26 0x00007fb20d36fe5b 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
#27 0x00007fb20d36fe5b 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
#28 0x00007fb20d36fe5b 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 0x00007fb20d36fe5b 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 0x00007fb20d370637 in Digikam::CollectionScanner::scanAlbumRoot (this=0x7fb1f7aa1ff0, location=...) at /build/buildd/digikam-1.0.0~beta5/libs/database/collectionscanner.cpp:451
#31 0x00007fb20d370980 in Digikam::CollectionScanner::completeScan (this=0x7fb1f7aa1ff0) at /build/buildd/digikam-1.0.0~beta5/libs/database/collectionscanner.cpp:228
#32 0x00000000006c8d32 in Digikam::ScanController::run (this=0x2b18e70) at /build/buildd/digikam-1.0.0~beta5/digikam/scancontroller.cpp:523
#33 0x00007fb209e8b445 in QThreadPrivate::start (arg=0x2b18e70) at thread/qthread_unix.cpp:188
#34 0x00007fb20818ba04 in start_thread (arg=<value optimized out>) at pthread_create.c:300
#35 0x00007fb2093f27bd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#36 0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7fb21052f750 (LWP 30424)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:261
#1  0x00007fb209e8c4fb in QWaitConditionPrivate::wait (this=<value optimized out>, mutex=0x323ee50, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:87
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0x323ee50, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:159
#3  0x00007fb209e8b4e4 in QThread::wait (this=<value optimized out>, time=18446744073709551615) at thread/qthread_unix.cpp:484
#4  0x00000000006c8a47 in Digikam::ScanController::shutDown (this=0x2b18e70) at /build/buildd/digikam-1.0.0~beta5/digikam/scancontroller.cpp:288
#5  0x00000000006cc9bb in ~ScanController (this=0x2aadbbc, __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  0x00007fb20934bc12 in __run_exit_handlers (status=1) at exit.c:78
#9  *__GI_exit (status=1) at exit.c:100
#10 0x00007fb20ab5e328 in qt_xio_errhandler () at kernel/qapplication_x11.cpp:707
#11 0x00007fb20bef3498 in KApplication::xioErrhandler (this=0x7ffff1600460, dpy=0x29636f0) at ../../kdeui/kernel/kapplication.cpp:408
#12 0x00007fb20878efae in _XIOError () from /usr/lib/libX11.so.6
#13 0x00007fb2087969a5 in ?? () from /usr/lib/libX11.so.6
#14 0x00007fb208797257 in _XEventsQueued () from /usr/lib/libX11.so.6
#15 0x00007fb20878001b in XEventsQueued () from /usr/lib/libX11.so.6
#16 0x00007fb20ab9767c in x11EventSourceCheck (s=0x293fb20) at kernel/qguieventdispatcher_glib.cpp:87
#17 0x00007fb20386ca9a in g_main_context_check () from /lib/libglib-2.0.so.0
#18 0x00007fb20386d280 in ?? () from /lib/libglib-2.0.so.0
#19 0x00007fb20386d6b0 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#20 0x00007fb209f9a1a6 in QEventDispatcherGlib::processEvents (this=0x2909590, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:327
#21 0x00007fb20ab974be in QGuiEventDispatcherGlib::processEvents (this=0x2aadbbc, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:202
#22 0x00007fb209f70532 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149
#23 0x00007fb209f70904 in QEventLoop::exec (this=0x33597a0, flags=) at kernel/qeventloop.cpp:201
#24 0x00000000006ca0b1 in Digikam::ScanController::completeCollectionScan (this=0x2b18e70, splash=<value optimized out>) at /build/buildd/digikam-1.0.0~beta5/digikam/scancontroller.cpp:376
#25 0x00000000006699f3 in DigikamApp (this=0x339e570, __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".

Reported using DrKonqi
Comment 1 Andreas Huggel 2009-11-17 04:59:33 UTC
Can you reproduce this with the exiv2 command line tool and identify
the image that causes the crash? Try with a simple command like exiv2
-pa *.jpg
If you find the image, please attach it here or send it to me directly
(ahuggel at gmx dot net)

Thanks,
Andreas
Comment 2 Andreas Huggel 2009-11-17 15:31:33 UTC
Thanks for the picture. I've opened an exiv2 issue for this, the fix is on the way: http://dev.exiv2.org/issues/show/656

Andreas
Comment 3 Andreas Huggel 2009-11-18 04:56:28 UTC
Nathaniel,
I've checked-in a fix. Can you try with exiv2 from SVN (current trunk) and confirm if this solves the issue?
 
Thanks,
Andreas
Comment 4 caulier.gilles 2009-12-25 20:10:06 UTC
digiKam 1.0.0 is out since few days...

http://www.digikam.org/drupal/node/491

Please try with this version coming with more than 400 bug-fixes.

Thanks in advance

Gilles Caulier
Comment 5 Johannes Wienke 2010-01-08 21:36:46 UTC
As this is tracked in the exiv2 tracker I'll mark this as upstream.