Summary: | Crash when opening album | ||
---|---|---|---|
Product: | [Applications] digikam | Reporter: | BiBlop <julos> |
Component: | Metadata-Engine | Assignee: | Digikam Developers <digikam-bugs-null> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | anantapalani, caulier.gilles |
Priority: | NOR | ||
Version: | 2.1.1 | ||
Target Milestone: | --- | ||
Platform: | Ubuntu | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | 5.1.0 | |
Sentry Crash Report: |
Description
BiBlop
2011-03-11 21:59:52 UTC
This problem is probably fixed with recent release. Please update to last 1.9.0 release and try again. Gilles Caulier (In reply to comment #1) Ok thanks. I can not find a package of digiKam 1.9.0 for Ubuntu 10.04... (In reply to comment #1) > This problem is probably fixed with recent release. Please update to last > 1.9.0 release and try again. > > Gilles Caulier Upgraded to 1.9.0. Still crashes when trying to access one directory. We need feedback using a recent version. 2.0.0 RC is out, please test... Thanks in advance Gilles Caulier digiKam 2.2.0 is out since few weeks. Crash still valid with this version ? Gilles Caulier Still crashing... It seems to be a filesystem error or something like that. It happens on only one file over 4000... So, minor, very minor bug... For me, you can close it. 4000 is an interesting number.. most linux systems set a default file limit of 1000 to 4000 file handles per process. I'm not sure if digiKam (or KDE) should be holding so many handles open, but out of curiosity what is the output when you run the following from shell: ulimit -n In the buggy folder, I've got 12 JPEG files. The 'ulimit -n' says 1024. I can open files under Gnome with Eye Of Gnome. I'm using DigiKam 2.1.1 under Ubuntu 11.09. I'll try v2.2 if I found a Deb. Generated crash information : Application: digiKam (digikam), signal: Aborted [Current thread is 1 (Thread 0xb4d288c0 (LWP 19914))] Thread 6 (Thread 0xb40bfb70 (LWP 19917)): #0 0x0027b416 in __kernel_vsyscall () #1 0x05e3b40e in poll () from /lib/i386-linux-gnu/libc.so.6 #2 0x02ef134b in g_poll () from /lib/i386-linux-gnu/libglib-2.0.so.0 #3 0x02ee2896 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0 #4 0x02ee2f9b in g_main_loop_run () from /lib/i386-linux-gnu/libglib-2.0.so.0 #5 0x0372ecea in ?? () from /usr/lib/i386-linux-gnu/libgio-2.0.so.0 #6 0x02f095f4 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0 #7 0x040a1d31 in start_thread () from /lib/i386-linux-gnu/libpthread.so.0 #8 0x05e4a0ce in clone () from /lib/i386-linux-gnu/libc.so.6 Backtrace stopped: Not enough registers or memory available to unwind further Thread 5 (Thread 0xb2da9b70 (LWP 19918)): #0 0x0027b416 in __kernel_vsyscall () #1 0x040a5a5c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/i386-linux-gnu/libpthread.so.0 #2 0x05e57cfc in pthread_cond_wait () from /lib/i386-linux-gnu/libc.so.6 #3 0x04abdcc0 in wait (time=4294967295, this=0x98d4800) at thread/qwaitcondition_unix.cpp:88 #4 QWaitCondition::wait (this=0x98d472c, mutex=0x98d4728, time=4294967295) at thread/qwaitcondition_unix.cpp:160 #5 0x081faf45 in Digikam::ScanController::run (this=0x98cd048) at /build/buildd/digikam-2.1.1/core/digikam/database/scancontroller.cpp:647 #6 0x04abd7b3 in QThreadPrivate::start (arg=0x98cd048) at thread/qthread_unix.cpp:331 #7 0x040a1d31 in start_thread () from /lib/i386-linux-gnu/libpthread.so.0 #8 0x05e4a0ce in clone () from /lib/i386-linux-gnu/libc.so.6 Backtrace stopped: Not enough registers or memory available to unwind further Thread 4 (Thread 0xb25a8b70 (LWP 19919)): #0 0x0027b416 in __kernel_vsyscall () #1 0x05e3b40e in poll () from /lib/i386-linux-gnu/libc.so.6 #2 0x02ef134b in g_poll () from /lib/i386-linux-gnu/libglib-2.0.so.0 #3 0x02ee2896 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0 #4 0x02ee2c2a in g_main_context_iteration () from /lib/i386-linux-gnu/libglib-2.0.so.0 #5 0x04be6b37 in QEventDispatcherGlib::processEvents (this=0x98ca3c8, flags=...) at kernel/qeventdispatcher_glib.cpp:424 #6 0x04bb71dd in QEventLoop::processEvents (this=0xb25a8100, flags=...) at kernel/qeventloop.cpp:149 #7 0x04bb7421 in QEventLoop::exec (this=0xb25a8100, flags=...) at kernel/qeventloop.cpp:201 #8 0x04aba90b in QThread::exec (this=0x98cf078) at thread/qthread.cpp:498 #9 0x04b97e2d in QInotifyFileSystemWatcherEngine::run (this=0x98cf078) at io/qfilesystemwatcher_inotify.cpp:248 #10 0x04abd7b3 in QThreadPrivate::start (arg=0x98cf078) at thread/qthread_unix.cpp:331 #11 0x040a1d31 in start_thread () from /lib/i386-linux-gnu/libpthread.so.0 #12 0x05e4a0ce in clone () from /lib/i386-linux-gnu/libc.so.6 Backtrace stopped: Not enough registers or memory available to unwind further Thread 3 (Thread 0xb48c0b70 (LWP 19960)): [KCrash Handler] #7 0x0027b416 in __kernel_vsyscall () #8 0x05da5c8f in raise () from /lib/i386-linux-gnu/libc.so.6 #9 0x05da92b5 in abort () from /lib/i386-linux-gnu/libc.so.6 #10 0x039824ed in __gnu_cxx::__verbose_terminate_handler() () from /usr/lib/i386-linux-gnu/libstdc++.so.6 #11 0x03980283 in ?? () from /usr/lib/i386-linux-gnu/libstdc++.so.6 #12 0x039802bf in std::terminate() () from /usr/lib/i386-linux-gnu/libstdc++.so.6 #13 0x03980464 in __cxa_rethrow () from /usr/lib/i386-linux-gnu/libstdc++.so.6 #14 0x04ab174d in QThreadPoolThread::run (this=0xac1e360) at concurrent/qthreadpool.cpp:113 #15 0x04abd7b3 in QThreadPrivate::start (arg=0xac1e360) at thread/qthread_unix.cpp:331 #16 0x040a1d31 in start_thread () from /lib/i386-linux-gnu/libpthread.so.0 #17 0x05e4a0ce in clone () from /lib/i386-linux-gnu/libc.so.6 Backtrace stopped: Not enough registers or memory available to unwind further Thread 2 (Thread 0xa8dffb70 (LWP 19963)): #0 0x015aeba5 in ?? () from /usr/lib/i386-linux-gnu/libgomp.so.1 #1 0x015aec3e in ?? () from /usr/lib/i386-linux-gnu/libgomp.so.1 #2 0x015ad4d8 in ?? () from /usr/lib/i386-linux-gnu/libgomp.so.1 #3 0x040a1d31 in start_thread () from /lib/i386-linux-gnu/libpthread.so.0 #4 0x05e4a0ce in clone () from /lib/i386-linux-gnu/libc.so.6 Backtrace stopped: Not enough registers or memory available to unwind further Thread 1 (Thread 0xb4d288c0 (LWP 19914)): #0 0x0027b416 in __kernel_vsyscall () #1 0x040a5a5c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/i386-linux-gnu/libpthread.so.0 #2 0x05e57cfc in pthread_cond_wait () from /lib/i386-linux-gnu/libc.so.6 #3 0x04abdcc0 in wait (time=4294967295, this=0xaf85df8) at thread/qwaitcondition_unix.cpp:88 #4 QWaitCondition::wait (this=0xaf85de8, mutex=0xaf85dd0, time=4294967295) at thread/qwaitcondition_unix.cpp:160 #5 0x04abd475 in QThread::wait (this=0xac1e360, time=4294967295) at thread/qthread_unix.cpp:745 #6 0x04ab2261 in QThreadPoolPrivate::reset (this=0x9b65190) at concurrent/qthreadpool.cpp:277 #7 0x04ab23eb in QThreadPool::~QThreadPool (this=0x9b65180, __in_chrg=<optimized out>) at concurrent/qthreadpool.cpp:429 #8 0x04ab2442 in QThreadPool::~QThreadPool (this=0x9b65180, __in_chrg=<optimized out>) at concurrent/qthreadpool.cpp:430 #9 0x04bcc841 in QObjectPrivate::deleteChildren (this=0x9b64d80) at kernel/qobject.cpp:1955 #10 0x04bd1439 in QObject::~QObject (this=0x9b64d70, __in_chrg=<optimized out>) at kernel/qobject.cpp:946 #11 0x00f4ec38 in Digikam::ThreadManager::~ThreadManager (this=0x9b64d70, __in_chrg=<optimized out>) at /build/buildd/digikam-2.1.1/core/libs/threads/threadmanager.cpp:257 #12 0x00f4ecc9 in ~ThreadManagerCreator (this=0x9b64d70, __in_chrg=<optimized out>) at /build/buildd/digikam-2.1.1/core/libs/threads/threadmanager.cpp:236 #13 destroy () at /build/buildd/digikam-2.1.1/core/libs/threads/threadmanager.cpp:241 #14 0x00d30959 in KCleanUpGlobalStatic::~KCleanUpGlobalStatic (this=0x11648c4, __in_chrg=<optimized out>) at /usr/include/kglobal.h:62 #15 0x05daa981 in ?? () from /lib/i386-linux-gnu/libc.so.6 #16 0x05daaa0d in exit () from /lib/i386-linux-gnu/libc.so.6 #17 0x0314dc0f in ?? () from /usr/lib/i386-linux-gnu/libgdk-x11-2.0.so.0 #18 0x01351749 in KApplication::xioErrhandler (this=0xbfc0b490, dpy=0x96aa758) at ../../kdeui/kernel/kapplication.cpp:419 #19 0x01351784 in kde_xio_errhandler (dpy=0x96aa758) at ../../kdeui/kernel/kapplication.cpp:126 #20 0x094bde14 in _XIOError () from /usr/lib/i386-linux-gnu/libX11.so.6 #21 0x094bb49f in _XEventsQueued () from /usr/lib/i386-linux-gnu/libX11.so.6 #22 0x094abc88 in XEventsQueued () from /usr/lib/i386-linux-gnu/libX11.so.6 #23 0x02561c05 in x11EventSourceCheck (s=0x969a6b8) at kernel/qguieventdispatcher_glib.cpp:85 #24 0x02ee1f24 in g_main_context_check () from /lib/i386-linux-gnu/libglib-2.0.so.0 #25 0x02ee28f0 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0 #26 0x02ee2c2a in g_main_context_iteration () from /lib/i386-linux-gnu/libglib-2.0.so.0 #27 0x04be6ada in QEventDispatcherGlib::processEvents (this=0x9657598, flags=...) at kernel/qeventdispatcher_glib.cpp:422 #28 0x02561e3a in QGuiEventDispatcherGlib::processEvents (this=0x9657598, flags=...) at kernel/qguieventdispatcher_glib.cpp:204 #29 0x04bb71dd in QEventLoop::processEvents (this=0xbfc0b374, flags=...) at kernel/qeventloop.cpp:149 #30 0x04bb7421 in QEventLoop::exec (this=0xbfc0b374, flags=...) at kernel/qeventloop.cpp:201 #31 0x04bbc19d in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1064 #32 0x024a78f4 in QApplication::exec () at kernel/qapplication.cpp:3760 #33 0x080b4b64 in main (argc=) at /build/buildd/digikam-2.1.1/core/digikam/main/main.cpp:232 No more suitable info in this backtrace. No digiKam code relevant... Gilles Caulier Gilles, Frame 11-13 contains digiKam code... don't know if it is relevant though. Andi, Crash is in Thread 3, not thread 1. If i take a look in old backtrace (not last one), crash is relevant on Exiv2 library. In last trace, it do not go down into Exiv2. Perhaps Exiv2 debug package is missing with 2.1.1 release. Bibop, Which Exiv2 release you use exactly ? Go to Help/Component Info dialog of digiKam for details. Gilles Caulier Gilles, This bug is probably not relevent to digikam. Pictures in this folder are negative film scanned with a windows virual box machine. They were writed by Photoshop on a network shared folder. So if you do not understand why it crashes, do not search a lot. (My 2 cent opinion.) All the informations about installed components : digiKam version 2.1.1 Dématriçage parallélisé: Oui Exiv2 peut écrire dans un fichier JP2: Oui Exiv2 peut écrire dans un fichier JPEG: Oui Exiv2 peut écrire dans un fichier PGF: Oui Exiv2 peut écrire dans un fichier PNG: Oui Exiv2 peut écrire dans un fichier TIFF: Oui Exiv2 prend en charge les métadonnées XMP: Oui LibCImg: 130 LibClapack: internal library LibExiv2: 0.21.1 LibJPEG: 62 LibJasper: 1.900.1 LibKDE: 4.7.3 (4.7.3) LibKExiv2: 2.0.0 LibKGeoMap: 2.0.0 LibKdcraw: 2.0.0 LibLCMS: 119 LibPGF: 6.11.24 - internal library LibPNG: 1.2.46 LibQt: 4.7.4 LibRaw: 0.13.5 LibTIFF: LIBTIFF, Version 3.9.5 Copyright (c) 1988-1996 Sam Leffler Copyright (c) 1991-1996 Silicon Graphics, Inc. Marble Widget: 0.12.0 (stable release) LibKface: 2.0.0 LibKipi: 1.2.0 LibOpenCV: 2.1.0 Libface: 0.2 Moteur de base de données: QSQLITE Biblop, Sure the trace is outside digiKam. As Exiv2 library is an external component of digiKam, i suspect it. You use last Exiv2 version. I recommend to install Exiv2 debug package and to run digiKam through GDB, and get a better backtrace. Gilles Caulier A sample picture may be interesting. With the second backtrace, an exception is rethrown. To get the original crash place, you need to run digikam under gdb, type "catch throw" and then "run", provoke the crash and get a backtrace "bt". I definitely recommend to test with a current version of libkexiv2. If it's still a libkexiv2 problem, please try to parse the file with the exiv2 command line program. So... The backtrace is here (is there enough informations ?) : #0 0x02e1d3a0 in __cxa_throw () from /usr/lib/i386-linux-gnu/libstdc++.so.6 #1 0x02e1da2f in operator new(unsigned int) () from /usr/lib/i386-linux-gnu/libstdc++.so.6 #2 0x03f5687b 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.10 #3 0x03f50f95 in Exiv2::DataValue::read(unsigned char const*, long, Exiv2::ByteOrder) () from /usr/lib/libexiv2.so.10 #4 0x03ebe8f0 in Exiv2::IptcParser::decode(Exiv2::IptcData&, unsigned char const*, unsigned int) () from /usr/lib/libexiv2.so.10 #5 0x03ec874b in Exiv2::JpegBase::readMetadata() () from /usr/lib/libexiv2.so.10 #6 0x00a8e23c in KExiv2Iface::KExiv2Previews::KExiv2Previews(QString const&) () from /usr/lib/libkexiv2.so.10 #7 0x00e7fdb1 in Digikam::PreviewLoadingTask::execute (this=0x98cebd8) at /build/buildd/digikam-2.1.1/core/libs/threadimageio/previewtask.cpp:208 #8 0x00e674e8 in Digikam::LoadSaveThread::run (this=0x8591288) at /build/buildd/digikam-2.1.1/core/libs/threadimageio/loadsavethread.cpp:118 #9 0x00eb28ee in Digikam::DynamicThread::DynamicThreadPriv::run ( this=0x8a778a0) at /build/buildd/digikam-2.1.1/core/libs/threads/dynamicthread.cpp:328 #10 0x02ab2651 in QThreadPoolThread::run (this=0x992d018) ---Type <return> to continue, or q <return> to quit--- at concurrent/qthreadpool.cpp:106 #11 0x02abe7b3 in QThreadPrivate::start (arg=0x992d018) at thread/qthread_unix.cpp:331 #12 0x041ddd31 in start_thread () from /lib/i386-linux-gnu/libpthread.so.0 #13 0x02f730ce in clone () from /lib/i386-linux-gnu/libc.so.6 Backtrace stopped: Not enough registers or memory available to unwind further ------------------------------------------- Exiv2 command line says on a buggy file : "Warning: IPTC dataset Iptc.Application2.Preview has invalid size 0; skipped." Files were created with Adobe Photoshop CS4. This fits quite well; the crash occurs when the IPTC preview is attempted to be loaded. Is it possible you make the picture accessible? Sending by private mail is possible. I will if necessary give it to the exiv2 developers. (In reply to comment #16) I sent you, by mail, the file I used for generating the backtrace. Found it, thanks! Somehow got into the spam filter... New digiKam 4.11.0 is available : https://www.digikam.org/node/740 Can you reproduce the problem with this release ? Gilles caulier digiKam 4.12.0 is out : https://www.digikam.org/node/741 We need a fresh feedback using this release please... Thanks in advance. This problem is not reproducible using last digiKam 5.0.0 + Exiv2 0.25. I close this file now. Don't hesitate to re-open if necessary. Gilles Caulier |