Summary: | digikam crashes when i update fingerprints database | ||
---|---|---|---|
Product: | [Applications] digikam | Reporter: | rene |
Component: | Database-Similarity | Assignee: | Digikam Developers <digikam-bugs-null> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | caulier.gilles |
Priority: | NOR | ||
Version: | 1.4.0 | ||
Target Milestone: | --- | ||
Platform: | Ubuntu | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | 4.12.0 | |
Sentry Crash Report: | |||
Attachments: | the file |
Description
rene
2010-11-17 08:28:21 UTC
Can this be traced to a specific image? Perhaps the last filename is printed on the console when debug output is enabled. Crash happens at a line data1[cn] = ptr[2]; where data1 is a member of ImageData (and "this" is not null, so this is unlikely to be the problem) and ptr is the bits of the image scaled just a few lines before, so it's also unlikely to fail, unless scaling should fail. starting digikam on the console, the last lines of output are: QPainter::setOpacity: Painter not active QPainter::setPen: Painter not active QPainter::setOpacity: Painter not active QPainter::setBrush: Painter not active QPainter::setPen: Painter not active QPainter::setWorldTransform: Painter not active QPainter::restore: Unbalanced save/restore QPainter::end: Painter not active, aborted digikam(4335)/digikam (core) Digikam::PreviewLoadingTask::execute: Cannot extract preview for "/media/path/to/file/Anonymous_blueman_306.svg" Fehler des XMP-Werkzeugsatzes 203: Top level typedNode not allowed Warning: Failed to decode XMP metadata. Fehler des XMP-Werkzeugsatzes 203: Top level typedNode not allowed Warning: Failed to decode XMP metadata. Fehler des XMP-Werkzeugsatzes 203: Top level typedNode not allowed Warning: Failed to decode XMP metadata. QImage: out of memory, returning null image Fehler des XMP-Werkzeugsatzes 203: Top level typedNode not allowed Warning: Failed to decode XMP metadata. KCrash: Application 'digikam' crashing... KCrash: Attempting to start /usr/lib/kde4/libexec/drkonqi from kdeinit sock_file=/home/rbrandenburger/.kde/socket-NB0025/kdeinit4__0 QSocketNotifier: Invalid socket 54 and type 'Read', disabling... QSocketNotifier: Invalid socket 49 and type 'Read', disabling... [1]+ Angehalten digikam Created attachment 53485 [details]
the file
I can confirm that the picture does not load (the internal Qt SVG loader fails). There may be some problems with the DImg object not marked as null. SVN commit 1198094 by mwiesweg: When a loader fails, ensure that data and size are reset and the image is marked as null. CCBUG: 257119 M +10 -1 dimgloader.cpp M +1 -0 dimgloader.h M +17 -0 jp2kloader.cpp M +13 -0 jpegloader.cpp M +14 -0 pgfloader.cpp M +9 -0 pngloader.cpp M +11 -3 ppmloader.cpp M +2 -0 qimageloader.cpp M +10 -1 rawloader.cpp M +11 -0 tiffloader.cpp WebSVN link: http://websvn.kde.org/?view=rev&revision=1198094 Yes, it doesn't load (only the thumbnail), but it also doesn't crash when generating fingerprints. Marcel, did it crash for you? No, it did not crash, but it seems possible that the image was not marked as null in the QImage loader. digiKam 1.6.0 is out: http://www.digikam.org/drupal/node/550 Please update and check if this entry still valid. Thanks in advance Gilles Caulier Sorry for the long delay, but I did not find the time to compile it right away - so tested it with 1.7.0, compiled from tar (kipi plugins and digikam) on Ubuntu 10.10. I tested it on a large collection of more than 100.000 pictures, jpg and svg. The aforementioned crash did not happen anymore, but I got a memory leak, which lead to a crash after about 20% done. The last lines in the log: terminate called after throwing an instance of 'std::bad_alloc' what(): std::bad_alloc KCrash: Application 'digikam' crashing... QSocketNotifier: Invalid socket 52 and type 'Read', disabling... QSocketNotifier: Invalid socket 49 and type 'Read', disabling... QSocketNotifier: Invalid socket 132 and type 'Read', disabling... KCrash: Attempting to start /usr/lib/kde4/libexec/drkonqi from kdeinit sock_file=/home/rbrandenburger/.kde/socket-NB0025/kdeinit4__0 QSocketNotifier: Invalid socket 128 and type 'Read', disabling... QSocketNotifier: Invalid socket 129 and type 'Read', disabling... Der Wecker klingelt user@HOST:~$ Please run digiKam under GDB and try again. We need to see where the crash occurs... Look here for details : http://www.digikam.org/drupal/contrib Gilles Caulier Following the backtrace: Program received signal SIGSEGV, Segmentation fault. Digikam::Haar::ImageData::fillPixelData (this=0x1028ea10, im=...) at /home/myhome/Documents/Development/digikam-1.7.0/digikam-1.7.0/libs/database/haar/haar.cpp:115 115 /home/myhome/Documents/Development/digikam-1.7.0/digikam-1.7.0/libs/database/haar/haar.cpp: Datei oder Verzeichnis nicht gefunden. in /home/myhome/Documents/Development/digikam-1.7.0/digikam-1.7.0/libs/database/haar/haar.cpp (gdb) bt #0 Digikam::Haar::ImageData::fillPixelData (this=0x1028ea10, im=...) at /home/myhome/Documents/Development/digikam-1.7.0/digikam-1.7.0/libs/database/haar/haar.cpp:115 #1 0x012ca354 in Digikam::HaarIface::indexImage (this=0xe9c00b8, imageid=92047, image=...) at /home/myhome/Documents/Development/digikam-1.7.0/digikam-1.7.0/libs/database/haar/haariface.cpp:357 #2 0x012ca414 in Digikam::HaarIface::indexImage (this=0xe9c00b8, filename=..., image=...) at /home/myhome/Documents/Development/digikam-1.7.0/digikam-1.7.0/libs/database/haar/haariface.cpp:333 #3 0x0813a921 in Digikam::FingerPrintsGenerator::slotGotImagePreview (this=0x9d7f7f0, desc=..., img=...) at /home/myhome/Documents/Development/digikam-1.7.0/digikam-1.7.0/utilities/batch/fingerprintsgenerator.cpp:180 #4 0x0813a9eb in Digikam::FingerPrintsGenerator::qt_metacall (this=0x9d7f7f0, _c=QMetaObject::InvokeMetaMethod, _id=86, _a=0xa3487788) at /home/myhome/Documents/Development/digikam-1.7.0/digikam-1.7.0/build/digikam/fingerprintsgenerator.moc:83 #5 0x02d8c8ca in QMetaObject::metacall (object=0x9d7f7f0, cl=271116816, idx=86, argv=0xa3487788) at kernel/qmetaobject.cpp:237 #6 0x02d97df6 in QMetaCallEvent::placeMetaCall (this=0x8abf52e8, object=0x9d7f7f0) at kernel/qobject.cpp:534 #7 0x02d996a2 in QObject::event (this=0x9d7f7f0, e=0x0) at kernel/qobject.cpp:1219 #8 0x02005936 in QWidget::event (this=0x9d7f7f0, event=0x8abf52e8) at kernel/qwidget.cpp:8646 #9 0x01fa7fdc in QApplicationPrivate::notify_helper (this=0x8515938, receiver=0x9d7f7f0, e=0x8abf52e8) at kernel/qapplication.cpp:4396 #10 0x01fae0e9 in QApplication::notify (this=0xbfffef84, receiver=0x9d7f7f0, e=0x8abf52e8) at kernel/qapplication.cpp:4361 #11 0x01c9d68a in KApplication::notify (this=0xbfffef84, receiver=0x9d7f7f0, event=0x8abf52e8) at ../../kdeui/kernel/kapplication.cpp:310 #12 0x02d86b3b in QCoreApplication::notifyInternal (this=0xbfffef84, receiver=0x9d7f7f0, event=0x8abf52e8) at kernel/qcoreapplication.cpp:732 #13 0x02d89d8b in sendEvent (receiver=0x0, event_type=0, data=0x84e32b8) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215 #14 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x84e32b8) at kernel/qcoreapplication.cpp:1373 #15 0x02d89f4d in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at kernel/qcoreapplication.cpp:1266 #16 0x02db5a74 in sendPostedEvents (s=0x8517590) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:220 #17 postEventSourceDispatch (s=0x8517590) at kernel/qeventdispatcher_glib.cpp:277 #18 0x039c1855 in g_main_context_dispatch () from /lib/libglib-2.0.so.0 #19 0x039c5668 in ?? () from /lib/libglib-2.0.so.0 #20 0x039c5848 in g_main_context_iteration () from /lib/libglib-2.0.so.0 #21 0x02db5565 in QEventDispatcherGlib::processEvents (this=0x84e2d68, flags=...) at kernel/qeventdispatcher_glib.cpp:415 #22 0x02069be5 in QGuiEventDispatcherGlib::processEvents (this=0x84e2d68, flags=...) at kernel/qguieventdispatcher_glib.cpp:204 #23 0x02d85609 in QEventLoop::processEvents (this=0xbfffee64, flags=DWARF-2 expression error: DW_OP_reg operations must be used either alone or in conjuction with DW_OP_piece or DW_OP_bit_piece. ) at kernel/qeventloop.cpp:149 #24 0x02d85a8a in QEventLoop::exec (this=0xbfffee64, flags=...) at kernel/qeventloop.cpp:201 #25 0x02d8a00f in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1009 #26 0x01fa6e07 in QApplication::exec () at kernel/qapplication.cpp:3672 #27 0x082ba0c3 in main (argc=1, argv=0xbffff3f4) at /home/myhome/Documents/Development/digikam-1.7.0/digikam-1.7.0/digikam/main.cpp:216 (gdb) Unfortunately, it seems the interesting part of the filenames in the backtrace are cut off on the right... You mean that memory consumption is rising and digikam crashes when all memory is used? Chances are it's in the SVG loader. If you really see memory consumption rise ever and ever, run digikam under valgrind --tool=massif, run it for the desired effect, stop at a few hundred MBs and attach the output here. Thanks! We need feedback using a recent version. 2.0.0 RC is out, please test... Thanks in advance Gilles Caulier I believe some memory leak issues were fixed. Feel free to reopen if still applicable with a recent 2.x version. Not reproducible. Gilles Caulier |