Summary: | Digikam SIGSEGV during face scanning | ||
---|---|---|---|
Product: | [Applications] digikam | Reporter: | Kristian Karl <kristian.hermann.karl> |
Component: | Faces-Engine | Assignee: | Digikam Developers <digikam-bugs-null> |
Status: | CLOSED FIXED | ||
Severity: | crash | CC: | althio.forum, caulier.gilles, fredericg_99, johannes.schwall, jtamate, richm+kde, rschweizer, sam.chola+kdebugs, stefanus2012, Thomas.Eschenbacher, ThomasBleher, torbjoern.k |
Priority: | NOR | ||
Version: | 2.0.0 | ||
Target Milestone: | --- | ||
Platform: | Ubuntu | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | 2.8.0 | |
Sentry Crash Report: | |||
Attachments: |
'valgrind --track-origins=yes digikam' command output
New crash information added by DrKonqi |
Description
Kristian Karl
2011-03-29 19:44:51 UTC
Got the same crash but with a different backtrace. krikar@krikar-laptop:~/Documents$ gdb digikam GNU gdb (GDB) 7.2-ubuntu Copyright (C) 2010 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-linux-gnu". For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>... Reading symbols from /usr/bin/digikam...Reading symbols from /usr/lib/debug/usr/bin/digikam...done. done. (gdb) run Starting program: /usr/bin/digikam [Thread debugging using libthread_db enabled] KGlobal::locale::Warning your global KLocale is being recreated with a valid main component instead of a fake component, this usually means you tried to call i18n related functions before your main component was created. You should not do that since it most likely will not work [New Thread 0x7fffd51df700 (LWP 5308)] [New Thread 0x7fffd49de700 (LWP 5309)] [New Thread 0x7fffd41dd700 (LWP 5310)] QSqlDatabasePrivate::removeDatabase: connection 'ConnectionTest' is still in use, all queries will cease to work. [Thread 0x7fffd41dd700 (LWP 5310) exited] digikam(5166)/digikam (core) Digikam::CollectionScanner::scanAlbum: Folder does not exist or is not readable: "/nfs/media/media/Pictures" [New Thread 0x7fffd41dd700 (LWP 5317)] QInotifyFileSystemWatcherEngine::addPaths: inotify_add_watch failed: No such file or directory [New Thread 0x7fffd10d4700 (LWP 5318)] QFileSystemWatcher: failed to add paths: /home/krikar/.config/ibus/bus Bus::open: Can not get ibus-daemon's address. IBusInputContext::createInputContext: no connection to ibus-daemon [New Thread 0x7fffc3b42700 (LWP 5319)] [New Thread 0x7fffc2909700 (LWP 5320)] [New Thread 0x7fffc2108700 (LWP 5321)] [New Thread 0x7fffc1702700 (LWP 5322)] [New Thread 0x7fffbcf00700 (LWP 5323)] digikam(5166)/digikam (core) Digikam::ImageInfoJob::slotResult: Failed to list url: "" digikam(5166)/digikam (core) Digikam::ImageInfoJob::slotResult: Failed to list url: "" [New Thread 0x7fffbc6ff700 (LWP 5465)] [New Thread 0x7fffb2b89700 (LWP 5475)] [New Thread 0x7fffb2388700 (LWP 5476)] [New Thread 0x7fffb1b87700 (LWP 5479)] Object::disconnect: Unexpected null parameter Object::disconnect: Unexpected null parameter [New Thread 0x7fffabfff700 (LWP 5496)] [New Thread 0x7fffab7fe700 (LWP 5497)] [New Thread 0x7fffaaffd700 (LWP 5498)] Cascade directory located as : /usr/share/opencv/haarcascades Cascade directory located as : /usr/share/opencv/haarcascades Cascade directory located as : /usr/share/opencv/haarcascades Cascade directory located as : /usr/share/opencv/haarcascades opened [New Thread 0x7fffa6041700 (LWP 5499)] [New Thread 0x7fffa5840700 (LWP 5504)] digikam(5166)/digikam (core): Bogus marker length digikam(5166)/digikam (core) Digikam::PreviewLoadingTask::execute: Cannot extract preview for "/home/krikar/Pictures/CF-00039/103_0973.JPG" [Thread 0x7fffbc6ff700 (LWP 5465) exited] [New Thread 0x7fffbc6ff700 (LWP 5513)] *** glibc detected *** /usr/bin/digikam: free(): invalid pointer: 0x00007fffcc000078 *** ======= Backtrace: ========= /lib/libc.so.6(+0x774b6)[0x7fffeef8b4b6] /lib/libc.so.6(cfree+0x73)[0x7fffeef91c83] /usr/lib/libdigikamdatabase.so.2(+0x12b310)[0x7ffff4426310] /usr/lib/libdigikamdatabase.so.2(_ZN7Digikam10ImageModel14removeRowPairsERK5QListI5QPairIiiEE+0x46c)[0x7ffff4422dac] /usr/lib/libdigikamdatabase.so.2(_ZN7Digikam10ImageModel24finishIncrementalRefreshEv+0x36)[0x7ffff4424a16] /usr/bin/digikam[0x58c135] /usr/bin/digikam[0x58cf4c] /usr/lib/libQtCore.so.4(_ZN11QMetaObject8activateEP7QObjectPKS_iPPv+0x2c7)[0x7ffff012ab27] /usr/lib/libkdecore.so.5(_ZN4KJob6resultEPS_+0x32)[0x7ffff0580b62] /usr/lib/libkdecore.so.5(_ZN4KJob10emitResultEv+0x30)[0x7ffff0580e00] /usr/lib/libkio.so.5(_ZN3KIO9SimpleJob12slotFinishedEv+0x213)[0x7ffff2a8e4f3] /usr/lib/libkio.so.5(_ZN3KIO11TransferJob12slotFinishedEv+0x62)[0x7ffff2a8ee02] /usr/lib/libkio.so.5(_ZN3KIO11TransferJob11qt_metacallEN11QMetaObject4CallEiPPv+0x1c1)[0x7ffff2a8c8e1] /usr/lib/libQtCore.so.4(_ZN11QMetaObject8activateEP7QObjectPKS_iPPv+0x2c7)[0x7ffff012ab27] /usr/lib/libkio.so.5(_ZN3KIO14SlaveInterface8dispatchEiRK10QByteArray+0x85e)[0x7ffff2b4108e] /usr/lib/libkio.so.5(_ZN3KIO14SlaveInterface8dispatchEv+0x53)[0x7ffff2b3e0d3] /usr/lib/libkio.so.5(_ZN3KIO5Slave8gotInputEv+0x56)[0x7ffff2b31a66] /usr/lib/libkio.so.5(_ZN3KIO5Slave11qt_metacallEN11QMetaObject4CallEiPPv+0x8c)[0x7ffff2b31c4c] /usr/lib/libQtCore.so.4(_ZN11QMetaObject8activateEP7QObjectPKS_iPPv+0x2c7)[0x7ffff012ab27] /usr/lib/libkio.so.5(+0xc5f57)[0x7ffff2a5af57] /usr/lib/libkio.so.5(_ZN3KIO10Connection11qt_metacallEN11QMetaObject4CallEiPPv+0xad)[0x7ffff2a5b07d] /usr/lib/libQtCore.so.4(_ZN7QObject5eventEP6QEvent+0x38e)[0x7ffff0124bde] /usr/lib/libQtGui.so.4(_ZN19QApplicationPrivate13notify_helperEP7QObjectP6QEvent+0xac)[0x7ffff0d50fdc] /usr/lib/libQtGui.so.4(_ZN12QApplication6notifyEP7QObjectP6QEvent+0x14d)[0x7ffff0d56aed] /usr/lib/libkdeui.so.5(_ZN12KApplication6notifyEP7QObjectP6QEvent+0x36)[0x7ffff1ae12c6] /usr/lib/libQtCore.so.4(_ZN16QCoreApplication14notifyInternalEP7QObjectP6QEvent+0x8c)[0x7ffff0112cdc] /usr/lib/libQtCore.so.4(_ZN23QCoreApplicationPrivate16sendPostedEventsEP7QObjectiP11QThreadData+0x2d2)[0x7ffff0115c22] /usr/lib/libQtCore.so.4(+0x195653)[0x7ffff013f653] /lib/libglib-2.0.so.0(g_main_context_dispatch+0x1f2)[0x7fffea6ac342] /lib/libglib-2.0.so.0(+0x442a8)[0x7fffea6b02a8] /lib/libglib-2.0.so.0(g_main_context_iteration+0x6c)[0x7fffea6b045c] /usr/lib/libQtCore.so.4(_ZN20QEventDispatcherGlib13processEventsE6QFlagsIN10QEventLoop17ProcessEventsFlagEE+0x73)[0x7ffff013f193] /usr/lib/libQtGui.so.4(+0x26aa4e)[0x7ffff0e03a4e] /usr/lib/libQtCore.so.4(_ZN10QEventLoop13processEventsE6QFlagsINS_17ProcessEventsFlagEE+0x32)[0x7ffff0111a02] /usr/lib/libQtCore.so.4(_ZN10QEventLoop4execE6QFlagsINS_17ProcessEventsFlagEE+0xdc)[0x7ffff0111dec] /usr/lib/libQtCore.so.4(_ZN16QCoreApplication4execEv+0xbb)[0x7ffff0115ebb] /usr/bin/digikam[0x6edb0d] /lib/libc.so.6(__libc_start_main+0xfe)[0x7fffeef32d8e] /usr/bin/digikam[0x488d19] ======= Memory map: ======== 00400000-00956000 r-xp 00000000 08:01 9446349 /usr/bin/digikam 00b56000-00b57000 r--p 00556000 08:01 9446349 /usr/bin/digikam 00b57000-00b61000 rw-p 00557000 08:01 9446349 /usr/bin/digikam 00b61000-0753d000 rw-p 00000000 00:00 0 [heap] 7fff88000000-7fff8bf94000 rw-p 00000000 00:00 0 7fff8bf94000-7fff8c000000 ---p 00000000 00:00 0 7fff90000000-7fff93f94000 rw-p 00000000 00:00 0 7fff93f94000-7fff94000000 ---p 00000000 00:00 0 7fff94000000-7fff97f94000 rw-p 00000000 00:00 0 7fff97f94000-7fff98000000 ---p 00000000 00:00 0 7fff98000000-7fff9b95c000 rw-p 00000000 00:00 0 7fff9b95c000-7fff9c000000 ---p 00000000 00:00 0 7fff9c000000-7fff9ff94000 rw-p 00000000 00:00 0 7fff9ff94000-7fffa0000000 ---p 00000000 00:00 0 7fffa0000000-7fffa3dd2000 rw-p 00000000 00:00 0 7fffa3dd2000-7fffa4000000 ---p 00000000 00:00 0 7fffa5040000-7fffa5041000 ---p 00000000 00:00 0 7fffa5041000-7fffa5841000 rw-p 00000000 00:00 0 7fffa5841000-7fffa5842000 ---p 00000000 00:00 0 7fffa5842000-7fffa6042000 rw-p 00000000 00:00 0 7fffaa7fd000-7fffaa7fe000 ---p 00000000 00:00 0 7fffaa7fe000-7fffaaffe000 rw-p 00000000 00:00 0 7fffaaffe000-7fffaafff000 ---p 00000000 00:00 0 7fffaafff000-7fffab7ff000 rw-p 00000000 00:00 0 7fffab7ff000-7fffab800000 ---p 00000000 00:00 0 7fffab800000-7fffac000000 rw-p 00000000 00:00 0 7fffac000000-7fffaff6f000 rw-p 00000000 00:00 0 7fffaff6f000-7fffb0000000 ---p 00000000 00:00 0 7fffb007e000-7fffb1387000 rw-p 00000000 00:00 0 7fffb1387000-7fffb1388000 ---p 00000000 00:00 0 7fffb1388000-7fffb1b88000 rw-p 00000000 00:00 0 7fffb1b88000-7fffb1b89000 ---p 00000000 00:00 0 7fffb1b89000-7fffb2389000 rw-p 00000000 00:00 0 7fffb2389000-7fffb238a000 ---p 00000000 00:00 0 7fffb238a000-7fffb2b8a000 rw-p 00000000 00:00 0 7fffb2b8a000-7fffb2be2000 r-xp 00000000 08:01 9446346 /usr/lib/kde4/digikamimageplugin_transform.so 7fffb2be2000-7fffb2de1000 ---p 00058000 08:01 9446346 /usr/lib/kde4/digikamimageplugin_transform.so 7fffb2de1000-7fffb2de3000 r--p 00057000 08:01 9446346 /usr/lib/kde4/digikamimageplugin_transform.so 7fffb2de3000-7fffb2de4000 rw-p 00059000 08:01 9446346 /usr/lib/kde4/digikamimageplugin_transform.so 7fffb2de4000-7fffb2e0a000 r-xp 00000000 08:01 9438910 /usr/lib/kde4/digikamimageplugin_fxfilters.so 7fffb2e0a000-7fffb3009000 ---p 00026000 08:01 9438910 /usr/lib/kde4/digikamimageplugin_fxfilters.so 7fffb3009000-7fffb300b000 r--p 00025000 08:01 9438910 /usr/lib/kde4/digikamimageplugin_fxfilters.so 7fffb300b000-7fffb300c000 rw-p 00027000 08:01 9438910 /usr/lib/kde4/digikamimageplugin_fxfilters.so 7fffb300c000-7fffb3057000 r-xp 00000000 08:01 9446347 /usr/lib/kde4/digikamimageplugin_enhance.so 7fffb3057000-7fffb3256000 ---p 0004b000 08:01 9446347 /usr/lib/kde4/digikamimageplugin_enhance.so 7fffb3256000-7fffb3259000 r--p 0004a000 08:01 9446347 /usr/lib/kde4/digikamimageplugin_enhance.so 7fffb3259000-7fffb325a000 rw-p 0004d000 08:01 9446347 /usr/lib/kde4/digikamimageplugin_enhance.so 7fffb325a000-7fffb325b000 rw-p 00000000 00:00 0 7fffb325b000-7fffb325c000 r-xp 00000000 08:01 9439435 /usr/lib/libutempter.so.1.1.5 7fffb325c000-7fffb345c000 ---p 00001000 08:01 9439435 /usr/lib/libutempter.so.1.1.5 7fffb345c000-7fffb345d000 r--p 00001000 08:01 9439435 /usr/lib/libutempter.so.1.1.5 7fffb345d000-7fffb345e000 rw-p 00002000 08:01 9439435 /usr/lib/libutempter.so.1.1.5 7fffb345e000-7fffb3460000 r-xp 00000000 08:01 8389005 /lib/libutil-2.12.1.so 7fffb3460000-7fffb365f000 ---p 00002000 08:01 8389005 /lib/libutil-2.12.1.so 7fffb365f000-7fffb3660000 r--p 00001000 08:01 8389005 /lib/libutil-2.12.1.so Program received signal SIGABRT, Aborted. 0x00007fffeef47ba5 in raise (sig=<value optimized out>) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64 64 ../nptl/sysdeps/unix/sysv/linux/raise.c: No such file or directory. in ../nptl/sysdeps/unix/sysv/linux/raise.c (gdb) bt #0 0x00007fffeef47ba5 in raise (sig=<value optimized out>) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64 #1 0x00007fffeef4b6b0 in abort () at abort.c:92 #2 0x00007fffeef8143b in __libc_message (do_abort=<value optimized out>, fmt=<value optimized out>) at ../sysdeps/unix/sysv/linux/libc_fatal.c:189 #3 0x00007fffeef8b4b6 in malloc_printerr (action=3, str=0x7fffef05be33 "free(): invalid pointer", ptr=<value optimized out>) at malloc.c:6283 #4 0x00007fffeef91c83 in __libc_free (mem=<value optimized out>) at malloc.c:3738 #5 0x00007ffff4426310 in QList<QVariant>::erase(QList<QVariant>::iterator, QList<QVariant>::iterator) () from /usr/lib/libdigikamdatabase.so.2 #6 0x00007ffff4422dac in Digikam::ImageModel::removeRowPairs (this=0x7fffcc1f5540, toRemove=<value optimized out>) at /build/buildd/digikam2-2.0.0~beta4+maverick~ppa1kde46/libs/models/imagemodel.cpp:844 #7 0x00007ffff4424a16 in Digikam::ImageModel::finishIncrementalRefresh (this=0x7fffcc1f5540) at /build/buildd/digikam2-2.0.0~beta4+maverick~ppa1kde46/libs/models/imagemodel.cpp:692 #8 0x000000000058c135 in Digikam::ImageAlbumModel::slotResult (this=0x7fffcc1f5540, job=<value optimized out>) at /build/buildd/digikam2-2.0.0~beta4+maverick~ppa1kde46/libs/models/imagealbummodel.cpp:308 #9 0x000000000058cf4c in Digikam::ImageAlbumModel::qt_metacall (this=0x7fffcc1f5540, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fffffffc610) at /build/buildd/digikam2-2.0.0~beta4+maverick~ppa1kde46/obj-x86_64-linux-gnu/digikam/imagealbummodel.moc:117 #10 0x00007ffff012ab27 in QMetaObject::activate (sender=0x7fffced5e160, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0xffffffffffffffff) at kernel/qobject.cpp:3280 #11 0x00007ffff0580b62 in KJob::result (this=0x142e, _t1=0x7fffced5e160) at ./kjob.moc:194 #12 0x00007ffff0580e00 in KJob::emitResult (this=0x7fffced5e160) at ../../kdecore/jobs/kjob.cpp:312 #13 0x00007ffff2a8e4f3 in KIO::SimpleJob::slotFinished (this=0x7fffced5e160) at ../../kio/kio/job.cpp:525 #14 0x00007ffff2a8ee02 in KIO::TransferJob::slotFinished (this=0x7fffced5e160) at ../../kio/kio/job.cpp:1118 #15 0x00007ffff2a8c8e1 in KIO::TransferJob::qt_metacall (this=0x7fffced5e160, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fffffffca50) at ./jobclasses.moc:367 #16 0x00007ffff012ab27 in QMetaObject::activate (sender=0x7fffcd111450, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0xffffffffffffffff) at kernel/qobject.cpp:3280 #17 0x00007ffff2b4108e in KIO::SlaveInterface::dispatch (this=0x7fffcd111450, _cmd=104, rawdata=...) at ../../kio/kio/slaveinterface.cpp:173 #18 0x00007ffff2b3e0d3 in KIO::SlaveInterface::dispatch (this=0x7fffcd111450) at ../../kio/kio/slaveinterface.cpp:89 #19 0x00007ffff2b31a66 in KIO::Slave::gotInput (this=0x7fffcd111450) at ../../kio/kio/slave.cpp:348 #20 0x00007ffff2b31c4c in KIO::Slave::qt_metacall (this=0x7fffcd111450, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fffffffced0) at ./slave.moc:82 #21 0x00007ffff012ab27 in QMetaObject::activate (sender=0x7fffcd280cf0, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0xffffffffffffffff) at kernel/qobject.cpp:3280 #22 0x00007ffff2a5af57 in KIO::ConnectionPrivate::dequeue (this=0x7fffcd281820) at ../../kio/kio/connection.cpp:82 #23 0x00007ffff2a5b07d in KIO::Connection::qt_metacall (this=0x7fffcd280cf0, ---Type <return> to continue, or q <return> to quit--- _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fffcdc093b0) at ./connection.moc:79 #24 0x00007ffff0124bde in QObject::event (this=0x7fffcd280cf0, e=0x142e) at kernel/qobject.cpp:1219 #25 0x00007ffff0d50fdc in QApplicationPrivate::notify_helper (this=0xbeb850, receiver=0x7fffcd280cf0, e=0x7fffceb8a260) at kernel/qapplication.cpp:4396 #26 0x00007ffff0d56aed in QApplication::notify (this=0x7fffffffdac0, receiver=0x7fffcd280cf0, e=0x7fffceb8a260) at kernel/qapplication.cpp:4277 #27 0x00007ffff1ae12c6 in KApplication::notify (this=0x7fffffffdac0, receiver=0x7fffcd280cf0, event=0x7fffceb8a260) at ../../kdeui/kernel/kapplication.cpp:311 #28 0x00007ffff0112cdc in QCoreApplication::notifyInternal (this=0x7fffffffdac0, receiver=0x7fffcd280cf0, event=0x7fffceb8a260) at kernel/qcoreapplication.cpp:732 #29 0x00007ffff0115c22 in sendEvent (receiver=0x0, event_type=<value optimized out>, data=0xb80890) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215 #30 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=<value optimized out>, data=0xb80890) at kernel/qcoreapplication.cpp:1373 #31 0x00007ffff013f653 in sendPostedEvents (s=0xbef3f0) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:220 #32 postEventSourceDispatch (s=0xbef3f0) at kernel/qeventdispatcher_glib.cpp:277 #33 0x00007fffea6ac342 in g_main_context_dispatch () from /lib/libglib-2.0.so.0 #34 0x00007fffea6b02a8 in ?? () from /lib/libglib-2.0.so.0 #35 0x00007fffea6b045c in g_main_context_iteration () from /lib/libglib-2.0.so.0 #36 0x00007ffff013f193 in QEventDispatcherGlib::processEvents (this=0xb7ffb0, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:415 #37 0x00007ffff0e03a4e in QGuiEventDispatcherGlib::processEvents (this=0x142e, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:204 #38 0x00007ffff0111a02 in QEventLoop::processEvents (this=<value optimized out>, 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 #39 0x00007ffff0111dec in QEventLoop::exec (this=0x7fffffffd920, 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:201 #40 0x00007ffff0115ebb in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1009 #41 0x00000000006edb0d in main (argc=<value optimized out>, argv=<value optimized out>) at /build/buildd/digikam2-2.0.0~beta4+maverick~ppa1kde46/digikam/main/main.cpp:232 (gdb) Hm. Both backtraces would suggest that d->extraData's size is not in sync with d->infos's size. That should never happen. I was tempted to add simple safety checks, but that's not a proper fix. You simply let digikam scan faces, doing nothing else, and at some point the crash occurs? (In reply to comment #2) > You simply let digikam scan faces, doing nothing else, and at some point the > crash occurs? Yes, that's correct. *** Bug 270410 has been marked as a duplicate of this bug. *** *** Bug 271375 has been marked as a duplicate of this bug. *** It seems that I have the same here, face scanning seems to work fine until it reaches a folder with a mix of videos and images. Using digikam-2.0.0-beta4 (debug build) on Gentoo / KDE-4.6.1, running through gdb. I disabled the checkbox "use all cores" in the scanner options and closed all kinds of album/preview windows to reduce risk, but still reproducibly the same crash. My backtrace is a bit different: ------------------------- Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 0x99a48b70 (LWP 20636)] QString (this=0x99a47814, val=...) at ../../include/QtCore/../../src/corelib/tools/qstring.h:729 729 ../../include/QtCore/../../src/corelib/tools/qstring.h: Datei oder Verzeichnis nicht gefunden. in ../../include/QtCore/../../src/corelib/tools/qstring.h (gdb) back #0 QString (this=0x99a47814, val=...) at ../../include/QtCore/../../src/corelib/tools/qstring.h:729 #1 v_construct<QString> (this=0x99a47814, val=...) at ../../include/QtCore/private/../../../src/corelib/kernel/qvariant_p.h:130 #2 QVariant::QVariant (this=0x99a47814, val=...) at kernel/qvariant.cpp:1705 #3 0xb7bd9031 in Digikam::DImg::load (this=0xae934038, filePath=..., loadFlagsInt=63, observer=0xae933ed0, rawDecodingSettings=...) at /tmp/portage/media-gfx/digikam-2.0.0_beta4/work/digikam-2.0.0-beta4/core/libs/dimg/dimg.cpp:407 #4 0xb7bda1fc in Digikam::DImg::load (this=0xae934038, filePath=..., observer=0xae933ed0, rawDecodingSettings=...) at /tmp/portage/media-gfx/digikam-2.0.0_beta4/work/digikam-2.0.0-beta4/core/libs/dimg/dimg.cpp:369 #5 0xb7d56481 in Digikam::PreviewLoadingTask::execute (this=0xae933ec8) at /tmp/portage/media-gfx/digikam-2.0.0_beta4/work/digikam-2.0.0-beta4/core/libs/threadimageio/previewtask.cpp:294 #6 0xb7d4553d in Digikam::LoadSaveThread::run (this=0xaa99ad8) at /tmp/portage/media-gfx/digikam-2.0.0_beta4/work/digikam-2.0.0-beta4/core/libs/threadimageio/loadsavethread.cpp:117 #7 0xb7d7717e in Digikam::DynamicThread::DynamicThreadPriv::run (this=0xae5ad48) at /tmp/portage/media-gfx/digikam-2.0.0_beta4/work/digikam-2.0.0-beta4/core/libs/threads/dynamicthread.cpp:328 #8 0x45fb75df in QThreadPoolThread::run (this=0xaea7368) at concurrent/qthreadpool.cpp:106 #9 0x45fc4c7e in QThreadPrivate::start (arg=0xaea7368) at thread/qthread_unix.cpp:320 #10 0x45a90b9f in start_thread () from /lib/libpthread.so.0 #11 0x459cd75e in clone () from /lib/libc.so.6 (gdb) i thr * 36 Thread 0x99a48b70 (LWP 20636) QString (this=0x99a47814, val=...) at ../../include/QtCore/../../src/corelib/tools/qstring.h:729 35 Thread 0xa2bfdb70 (LWP 20634) 0xb7fff424 in __kernel_vsyscall () 34 Thread 0xa33feb70 (LWP 20633) 0x458cc646 in do_lookup_x () from /lib/ld-linux.so.2 33 Thread 0xaafeeb70 (LWP 20632) 0x47cb88a3 in icvEvalHidHaarClassifier(CvHidHaarClassifier*, double, unsigned int) () from /usr/lib/libcv.so.2.1 32 Thread 0xa95fdb70 (LWP 20631) 0xb7fff424 in __kernel_vsyscall () 31 Thread 0xa9dfeb70 (LWP 20630) 0xb7fff424 in __kernel_vsyscall () 30 Thread 0xaa5ffb70 (LWP 20621) 0xb7fff424 in __kernel_vsyscall () 29 Thread 0xab7efb70 (LWP 20620) 0xb7fff424 in __kernel_vsyscall () 9 Thread 0xac3b4b70 (LWP 20535) 0xb7fff424 in __kernel_vsyscall () 6 Thread 0xb04c1b70 (LWP 20528) 0xb7fff424 in __kernel_vsyscall () 5 Thread 0xb42ffb70 (LWP 20526) 0xb7fff424 in __kernel_vsyscall () 3 Thread 0xb4cccb70 (LWP 20524) 0xb7fff424 in __kernel_vsyscall () 2 Thread 0xb54cdb70 (LWP 20523) 0xb7fff424 in __kernel_vsyscall () 1 Thread 0xb7887790 (LWP 20446) 0x4b0f4024 in QScopedPointer (this=0xb03f288) at ../../include/QtCore/../../src/corelib/tools/qscopedpointer.h:93 ------------------------- Is this enough or should I provide more traces? some update: I found out that the crash was related to a directory full of broken files with size zero. After deleting all zero size files the scan completed :-) What's the type mime of the corrupted files ? JPEG, RAW ? Gilles Caulier I re-viewed my folder which was scanned during when the crash occurred, but all image files are valid. No files are corrupted, no zero size files. The files were .jpg files. Therefore my crash should be reproducible by creating some (maybe 10 or so) empty files, just like this: touch test01.jpg test02.jpg test03.jpg ... test10.jpg And then try to detect faces. However, wouldn't it be a good idea to introduce some "instrumentation" to switch off multithreading in digikam, at least for some operations like these? If I browse through the digikam bug reports I see tons of threading related defects and even when I use the program, I often see strange behavior caused by things running somewhere uncoordinated in parallel... @Thomas: Please point me to any code which runs uncoordinated in parallel (read: non-mutex-protected read-write memory access). I will be very interested to fix these cases. *** Bug 271791 has been marked as a duplicate of this bug. *** @Marcel: let's stop this discussion here. What I was talking about was missing user feedback while background operations are running - which produced a lot of confusion and frustration on my side. I wrote a separate bug report for this, see https://bugs.kde.org/show_bug.cgi?id=272158 Back to the crash mentioned above: any news about this? Did you try to reproduce? Maybe the steps I provide are not addressing exactly the same issue as the first reporter, but I feel that this might be highly related. @Kristian: in the report above, I wonder about some of the first lines, did you check the image listed in that line below, is it really intact? Does the scan continue if you move that file away? --------------- digikam(5166)/digikam (core): Bogus marker length digikam(5166)/digikam (core) Digikam::PreviewLoadingTask::execute: Cannot extract preview for "/home/krikar/Pictures/CF-00039/103_0973.JPG" --------------- So, I found a backup of the images I was originally scanning. And there is one(1) single JPG file with the size of zero. * Without that file, the scanning runs without problem. * With that file, digikam crashes. (In reply to comment #14) > So, I found a backup of the images I was originally scanning. And there is > one(1) single JPG file with the size of zero. > * Without that file, the scanning runs without problem. > * With that file, digikam crashes. And the name of that file is 103_1493.JPG I noticed (during a successful scan) that the file 103_0973.JPG did not show a preview in the scan dialog. But that was all. *** Bug 273161 has been marked as a duplicate of this bug. *** I still cannot reproduce. Indeed, the common point of these reports is the empty file in the scanned folder. 1) In the background of the scan dialog, which album did you watch? Need it be the People/Unknown tag? 2) Can someone get a valgrind report on the moment of the crash? Easier if the crash can be triggered after scanning only a few pictures, because under valgrind it will be very slow. Thanks! I ran again using valgrind and did not manage to reproduce the SIGSEGV crash but did get a number of warnings. Maybe these give some clues. I see one related to a mysql memory misuse. laptop@duncow:~$ valgrind digikam ==15962== Memcheck, a memory error detector ==15962== Copyright (C) 2002-2010, and GNU GPL'd, by Julian Seward et al. ==15962== Using Valgrind-3.6.0.SVN-Debian and LibVEX; rerun with -h for copyright info ==15962== Command: digikam ==15962== ==15962== Conditional jump or move depends on uninitialised value(s) ==15962== at 0x758C611: inflateReset2 (in /lib/libz.so.1.2.3.4) ==15962== by 0x758C6EC: inflateInit2_ (in /lib/libz.so.1.2.3.4) ==15962== by 0x758C762: inflateInit_ (in /lib/libz.so.1.2.3.4) ==15962== by 0x7570F13: png_create_read_struct_2 (in /lib/libpng12.so.0.44.0) ==15962== by 0x75710F9: png_create_read_struct (in /lib/libpng12.so.0.44.0) ==15962== by 0x626AA53: QPngHandlerPrivate::readPngHeader() (qpnghandler.cpp:356) ==15962== by 0x626B48A: QPngHandlerPrivate::readPngImage(QImage*) (qpnghandler.cpp:427) ==15962== by 0x623323B: QImageReader::read(QImage*) (qimagereader.cpp:1205) ==15962== by 0x6233876: QImageReader::read() (qimagereader.cpp:1155) ==15962== by 0x6221DB0: operator>>(QDataStream&, QImage&) (qimage.cpp:5149) ==15962== by 0x6244C93: operator>>(QDataStream&, QPixmap&) (qpixmap.cpp:1315) ==15962== by 0x5DCA89F: KIconLoaderPrivate::findCachedPixmapWithPath(QString const&, QPixmap&, QString&) (kiconloader.cpp:884) ==15962== ==15962== Syscall param socketcall.setsockopt(optval) points to uninitialised byte(s) ==15962== at 0x73EFDF7: setsockopt (socket.S:64) ==15962== by 0x76BDD86: udev_monitor_enable_receiving (in /lib/libudev.so.0.9.1) ==15962== by 0x4B3CE0A: UdevQt::ClientPrivate::setWatchedSubsystems(QStringList const&) (udevqtclient.cpp:76) ==15962== by 0x4B30B0D: Solid::Backends::UDev::UDevManager::Private::Private() (udevmanager.cpp:58) ==15962== by 0x4B317E6: Solid::Backends::UDev::UDevManager::UDevManager(QObject*) (udevmanager.cpp:110) ==15962== by 0x4AF5FB5: Solid::ManagerBasePrivate::loadBackends() (managerbase.cpp:84) ==15962== by 0x4AF8DC2: Solid::DeviceManagerPrivate::DeviceManagerPrivate() (devicemanager.cpp:38) ==15962== by 0x4AF8F8D: Solid::DeviceManagerStorage::ensureManagerCreated() (devicemanager.cpp:287) ==15962== by 0x4AF8FC1: Solid::DeviceManagerStorage::notifier() (devicemanager.cpp:280) ==15962== by 0x4AF902E: Solid::DeviceNotifier::instance() (devicemanager.cpp:172) ==15962== by 0x5411B95: Digikam::CollectionManager::CollectionManager() (collectionmanager.cpp:718) ==15962== by 0x5411C6D: Digikam::CollectionManager::instance() (collectionmanager.cpp:700) ==15962== Address 0xbe9757fa is on thread 1's stack ==15962== QSqlDatabasePrivate::removeDatabase: connection 'ConnectionTest' is still in use, all queries will cease to work. digikam(15962)/digikam (core) Digikam::ImageInfoJob::slotResult: Failed to list url: "" digikam(15962)/digikam (core) Digikam::ImageInfoJob::slotResult: Failed to list url: "" digikam(15962)/KIPI (loading) KIPI::PluginLoader::Info::plugin: KIPI::PluginLoader:: createInstance returned 0 for "Wikimedia Export" ( "kipiplugin_wikimedia" ) with error: "Could not find plugin 'Wikimedia Export' for application 'digikam'" ==15962== Conditional jump or move depends on uninitialised value(s) ==15962== at 0xDF1AAEC: murrine_draw_expander (in /usr/lib/gtk-2.0/2.10.0/engines/libmurrine.so) ==15962== by 0xDF0A4BF: ??? (in /usr/lib/gtk-2.0/2.10.0/engines/libmurrine.so) ==15962== by 0x9A36822: gtk_paint_expander (gtkstyle.c:6665) ==15962== by 0x653644D: QGtkPainter::paintExpander(_GtkWidget*, char const*, QRect const&, GtkStateType, GtkExpanderStyle, _GtkStyle*, QString const&) (qgtkpainter.cpp:427) ==15962== by 0x652297C: QGtkStyle::drawPrimitive(QStyle::PrimitiveElement, QStyleOption const*, QPainter*, QWidget const*) const (qgtkstyle.cpp:833) ==15962== by 0x67586F6: QTreeView::drawBranches(QPainter*, QRect const&, QModelIndex const&) const (qtreeview.cpp:1773) ==15962== by 0x675F5B6: QTreeView::drawRow(QPainter*, QStyleOptionViewItem const&, QModelIndex const&) const (qtreeview.cpp:1661) ==15962== by 0x6765469: QTreeView::drawTree(QPainter*, QRegion const&) const (qtreeview.cpp:1441) ==15962== by 0x676820A: QTreeView::paintEvent(QPaintEvent*) (qtreeview.cpp:1274) ==15962== by 0x61A5CC5: QWidget::event(QEvent*) (qwidget.cpp:8333) ==15962== by 0x65C7762: QFrame::event(QEvent*) (qframe.cpp:557) ==15962== by 0x6664A81: QAbstractScrollArea::viewportEvent(QEvent*) (qabstractscrollarea.cpp:1043) ==15962== ==15962== Conditional jump or move depends on uninitialised value(s) ==15962== at 0xDF1AAEC: murrine_draw_expander (in /usr/lib/gtk-2.0/2.10.0/engines/libmurrine.so) ==15962== by 0xDF0A4BF: ??? (in /usr/lib/gtk-2.0/2.10.0/engines/libmurrine.so) ==15962== by 0x9A36822: gtk_paint_expander (gtkstyle.c:6665) ==15962== by 0x65365C5: QGtkPainter::paintExpander(_GtkWidget*, char const*, QRect const&, GtkStateType, GtkExpanderStyle, _GtkStyle*, QString const&) (qgtkpainter.cpp:427) ==15962== by 0x652297C: QGtkStyle::drawPrimitive(QStyle::PrimitiveElement, QStyleOption const*, QPainter*, QWidget const*) const (qgtkstyle.cpp:833) ==15962== by 0x67586F6: QTreeView::drawBranches(QPainter*, QRect const&, QModelIndex const&) const (qtreeview.cpp:1773) ==15962== by 0x675F5B6: QTreeView::drawRow(QPainter*, QStyleOptionViewItem const&, QModelIndex const&) const (qtreeview.cpp:1661) ==15962== by 0x6765469: QTreeView::drawTree(QPainter*, QRegion const&) const (qtreeview.cpp:1441) ==15962== by 0x676820A: QTreeView::paintEvent(QPaintEvent*) (qtreeview.cpp:1274) ==15962== by 0x61A5CC5: QWidget::event(QEvent*) (qwidget.cpp:8333) ==15962== by 0x65C7762: QFrame::event(QEvent*) (qframe.cpp:557) ==15962== by 0x6664A81: QAbstractScrollArea::viewportEvent(QEvent*) (qabstractscrollarea.cpp:1043) ==15962== Object::disconnect: Unexpected null parameter Object::disconnect: Unexpected null parameter ==15962== Conditional jump or move depends on uninitialised value(s) ==15962== at 0x7308AB6: __divdi3 (in /lib/libgcc_s.so.1) ==15962== by 0x6EA32C8: QElapsedTimer::msecsTo(QElapsedTimer const&) const (qelapsedtimer_unix.cpp:58) ==15962== by 0x6EA3450: QElapsedTimer::elapsed() const (qelapsedtimer_unix.cpp:154) ==15962== by 0x655EB98: QWindowsStyle::timerEvent(QTimerEvent*) (qwindowsstyle.cpp:151) ==15962== by 0x6F5C503: QObject::event(QEvent*) (qobject.cpp:1183) ==15962== by 0x6147FDB: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:4396) ==15962== by 0x614E04D: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:3798) ==15962== by 0x5E2D829: KApplication::notify(QObject*, QEvent*) (kapplication.cpp:311) ==15962== by 0x6F49B3A: QCoreApplication::notifyInternal(QObject*, QEvent*) (qcoreapplication.cpp:732) ==15962== by 0x6F7BAD5: QTimerInfoList::activateTimers() (qcoreapplication.h:215) ==15962== by 0x6F78873: timerSourceDispatch(_GSource*, int (*)(void*), void*) (qeventdispatcher_glib.cpp:184) ==15962== by 0x92FA854: g_main_context_dispatch (gmain.c:2149) ==15962== ==15962== Conditional jump or move depends on uninitialised value(s) ==15962== at 0x7308ADC: __divdi3 (in /lib/libgcc_s.so.1) ==15962== by 0x6EA32C8: QElapsedTimer::msecsTo(QElapsedTimer const&) const (qelapsedtimer_unix.cpp:58) ==15962== by 0x6EA3450: QElapsedTimer::elapsed() const (qelapsedtimer_unix.cpp:154) ==15962== by 0x655EB98: QWindowsStyle::timerEvent(QTimerEvent*) (qwindowsstyle.cpp:151) ==15962== by 0x6F5C503: QObject::event(QEvent*) (qobject.cpp:1183) ==15962== by 0x6147FDB: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:4396) ==15962== by 0x614E04D: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:3798) ==15962== by 0x5E2D829: KApplication::notify(QObject*, QEvent*) (kapplication.cpp:311) ==15962== by 0x6F49B3A: QCoreApplication::notifyInternal(QObject*, QEvent*) (qcoreapplication.cpp:732) ==15962== by 0x6F7BAD5: QTimerInfoList::activateTimers() (qcoreapplication.h:215) ==15962== by 0x6F78873: timerSourceDispatch(_GSource*, int (*)(void*), void*) (qeventdispatcher_glib.cpp:184) ==15962== by 0x92FA854: g_main_context_dispatch (gmain.c:2149) ==15962== ==15962== Conditional jump or move depends on uninitialised value(s) ==15962== at 0x7308AB6: __divdi3 (in /lib/libgcc_s.so.1) ==15962== by 0x655EBC8: QWindowsStyle::timerEvent(QTimerEvent*) (qwindowsstyle.cpp:151) ==15962== by 0x6F5C503: QObject::event(QEvent*) (qobject.cpp:1183) ==15962== by 0x6147FDB: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:4396) ==15962== by 0x614E04D: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:3798) ==15962== by 0x5E2D829: KApplication::notify(QObject*, QEvent*) (kapplication.cpp:311) ==15962== by 0x6F49B3A: QCoreApplication::notifyInternal(QObject*, QEvent*) (qcoreapplication.cpp:732) ==15962== by 0x6F7BAD5: QTimerInfoList::activateTimers() (qcoreapplication.h:215) ==15962== by 0x6F78873: timerSourceDispatch(_GSource*, int (*)(void*), void*) (qeventdispatcher_glib.cpp:184) ==15962== by 0x92FA854: g_main_context_dispatch (gmain.c:2149) ==15962== by 0x92FE667: g_main_context_iterate (gmain.c:2780) ==15962== by 0x92FE847: g_main_context_iteration (gmain.c:2843) ==15962== ==15962== Conditional jump or move depends on uninitialised value(s) ==15962== at 0x7308ADC: __divdi3 (in /lib/libgcc_s.so.1) ==15962== by 0x655EBC8: QWindowsStyle::timerEvent(QTimerEvent*) (qwindowsstyle.cpp:151) ==15962== by 0x6F5C503: QObject::event(QEvent*) (qobject.cpp:1183) ==15962== by 0x6147FDB: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:4396) ==15962== by 0x614E04D: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:3798) ==15962== by 0x5E2D829: KApplication::notify(QObject*, QEvent*) (kapplication.cpp:311) ==15962== by 0x6F49B3A: QCoreApplication::notifyInternal(QObject*, QEvent*) (qcoreapplication.cpp:732) ==15962== by 0x6F7BAD5: QTimerInfoList::activateTimers() (qcoreapplication.h:215) ==15962== by 0x6F78873: timerSourceDispatch(_GSource*, int (*)(void*), void*) (qeventdispatcher_glib.cpp:184) ==15962== by 0x92FA854: g_main_context_dispatch (gmain.c:2149) ==15962== by 0x92FE667: g_main_context_iterate (gmain.c:2780) ==15962== by 0x92FE847: g_main_context_iteration (gmain.c:2843) ==15962== ==15962== Thread 15: ==15962== Conditional jump or move depends on uninitialised value(s) ==15962== at 0x1021CF72: picReadHeader(QIODevice*, PICHeader*, bool) (pic_read.cpp:54) ==15962== by 0x1021E5C4: SoftimagePICHandler::canRead(QIODevice*) (pic_io_handler.cpp:44) ==15962== by 0x1021E0FA: SoftimagePICPlugin::capabilities(QIODevice*, QByteArray const&) const (pic_io_plugin.cpp:33) ==15962== by 0x6230426: createReadHandlerHelper(QIODevice*, QByteArray const&, bool, bool) (qimagereader.cpp:393) ==15962== by 0x6231D50: QImageReaderPrivate::initHandler() (qimagereader.cpp:618) ==15962== by 0x62335EF: QImageReader::read(QImage*) (qimagereader.cpp:1185) ==15962== by 0x6233876: QImageReader::read() (qimagereader.cpp:1155) ==15962== by 0x621DD97: QImage::fromData(unsigned char const*, int, char const*) (qimage.cpp:5032) ==15962== by 0x6221EA9: QImage::loadFromData(unsigned char const*, int, char const*) (qimage.cpp:4990) ==15962== by 0x4C4B3AC: KExiv2Iface::KExiv2::getImagePreview(QImage&) const (in /usr/lib/libkexiv2.so.10.0.0) ==15962== by 0x512D94A: Digikam::PreviewLoadingTask::loadImagePreview(QImage&, QString const&) (previewtask.cpp:492) ==15962== by 0x512EF25: Digikam::PreviewLoadingTask::execute() (previewtask.cpp:256) ==15962== Cascade directory located as : /usr/share/opencv/haarcascades Cascade directory located as : /usr/share/opencv/haarcascades opened Cascade directory located as : /usr/share/opencv/haarcascades ==15962== Thread 14: ==15962== Conditional jump or move depends on uninitialised value(s) ==15962== at 0x514A58B: CEncoder::RLESigsAndSigns(unsigned int*, unsigned int, unsigned int*, unsigned int) (Encoder.cpp:628) ==15962== by 0x514AF04: CEncoder::BitplaneEncode(unsigned int) (Encoder.cpp:380) ==15962== by 0x514B2DE: CEncoder::EncodeBuffer(ROIBlockHeader) (Encoder.cpp:274) ==15962== by 0x514B446: CEncoder::WriteValue(CSubband*, int) (Encoder.cpp:253) ==15962== by 0x514B532: CEncoder::Partition(CSubband*, int, int, int, int) (Encoder.cpp:152) ==15962== by 0x5152AFC: CSubband::ExtractTile(CEncoder&, int, bool, unsigned int, unsigned int) (Subband.cpp:188) ==15962== by 0x5151C6E: CPGFImage::Write(CPGFStream*, int, bool (*)(double, bool, void*), unsigned int*, void*) (PGFimage.cpp:933) ==15962== by 0x5154CDE: Digikam::writePGFImageData(QImage const&, QByteArray&, int) (pgfutils.cpp:139) ==15962== by 0x5133FD3: Digikam::ThumbnailCreator::storeInDatabase(Digikam::ThumbnailInfo const&, Digikam::ThumbnailImage const&) const (thumbnailcreator.cpp:695) ==15962== by 0x5135955: Digikam::ThumbnailCreator::store(QString const&, QImage const&, QRect const&, bool) const (thumbnailcreator.cpp:391) ==15962== by 0x5135A29: Digikam::ThumbnailCreator::storeDetailThumbnail(QString const&, QRect const&, QImage const&, bool) const (thumbnailcreator.cpp:367) ==15962== by 0x513846F: Digikam::ThumbnailLoadThread::storeDetailThumbnail(QString const&, QRect const&, QImage const&, bool) (thumbnailloadthread.cpp:907) ==15962== ==15962== Conditional jump or move depends on uninitialised value(s) ==15962== at 0x514A58B: CEncoder::RLESigsAndSigns(unsigned int*, unsigned int, unsigned int*, unsigned int) (Encoder.cpp:628) ==15962== by 0x514AF04: CEncoder::BitplaneEncode(unsigned int) (Encoder.cpp:380) ==15962== by 0x514B2DE: CEncoder::EncodeBuffer(ROIBlockHeader) (Encoder.cpp:274) ==15962== by 0x514B6DE: CEncoder::Flush() (Encoder.cpp:216) ==15962== by 0x5151CD7: CPGFImage::Write(CPGFStream*, int, bool (*)(double, bool, void*), unsigned int*, void*) (PGFimage.cpp:953) ==15962== by 0x5154CDE: Digikam::writePGFImageData(QImage const&, QByteArray&, int) (pgfutils.cpp:139) ==15962== by 0x5133FD3: Digikam::ThumbnailCreator::storeInDatabase(Digikam::ThumbnailInfo const&, Digikam::ThumbnailImage const&) const (thumbnailcreator.cpp:695) ==15962== by 0x5135955: Digikam::ThumbnailCreator::store(QString const&, QImage const&, QRect const&, bool) const (thumbnailcreator.cpp:391) ==15962== by 0x5135A29: Digikam::ThumbnailCreator::storeDetailThumbnail(QString const&, QRect const&, QImage const&, bool) const (thumbnailcreator.cpp:367) ==15962== by 0x513846F: Digikam::ThumbnailLoadThread::storeDetailThumbnail(QString const&, QRect const&, QImage const&, bool) (thumbnailloadthread.cpp:907) ==15962== by 0x830C1D0: Digikam::FaceIface::storeThumbnails(Digikam::ThumbnailLoadThread*, QString const&, QList<Digikam::DatabaseFace> const&, Digikam::DImg const&) (faceiface.cpp:634) ==15962== by 0x831A496: Digikam::DatabaseWriter::process(QExplicitlySharedDataPointer<Digikam::FacePipelineExtendedPackage>) (facepipeline.cpp:561) ==15962== ==15962== Syscall param write(buf) points to uninitialised byte(s) ==15962== at 0x73DDF7B: ??? (syscall-template.S:82) ==15962== by 0x12862122: net_real_write (in /usr/lib/libmysqlclient_r.so.16.0.0) ==15962== by 0x128623A7: net_flush (in /usr/lib/libmysqlclient_r.so.16.0.0) ==15962== by 0x12862668: net_write_command (in /usr/lib/libmysqlclient_r.so.16.0.0) ==15962== by 0x1285ED37: cli_advanced_command (in /usr/lib/libmysqlclient_r.so.16.0.0) ==15962== by 0x1282BE83: cli_stmt_execute (in /usr/lib/libmysqlclient_r.so.16.0.0) ==15962== by 0x128297BE: mysql_stmt_execute (in /usr/lib/libmysqlclient_r.so.16.0.0) ==15962== by 0x127C97D1: QMYSQLResult::exec() (qsql_mysql.cpp:1031) ==15962== by 0x4055B0B: QSqlQuery::exec() (qsqlquery.cpp:942) ==15962== by 0x50EB111: Digikam::DatabaseCoreBackend::exec(Digikam::SqlQuery&) (databasecorebackend.cpp:1404) ==15962== by 0x50ED582: Digikam::DatabaseCoreBackend::execQuery(Digikam::SqlQuery&, QVariant const&, QVariant const&, QVariant const&, QVariant const&) (databasecorebackend.cpp:1076) ==15962== by 0x50ED5ED: Digikam::DatabaseCoreBackend::execQuery(QString const&, QVariant const&, QVariant const&, QVariant const&, QVariant const&) (databasecorebackend.cpp:1021) ==15962== Address 0x17be3ba0 is 528 bytes inside a block of size 8,199 alloc'd ==15962== at 0x4025BD3: malloc (vg_replace_malloc.c:236) ==15962== by 0x1282E15E: my_malloc (in /usr/lib/libmysqlclient_r.so.16.0.0) ==15962== by 0x12862E0F: my_net_init (in /usr/lib/libmysqlclient_r.so.16.0.0) ==15962== by 0x1285D433: mysql_real_connect (in /usr/lib/libmysqlclient_r.so.16.0.0) ==15962== by 0x127CAB12: QMYSQLDriver::open(QString const&, QString const&, QString const&, QString const&, int, QString const&) (qsql_mysql.cpp:1271) ==15962== by 0x4057B30: QSqlDatabase::open() (qsqldatabase.cpp:842) ==15962== by 0x50E868C: Digikam::DatabaseCoreBackendPrivate::open(QSqlDatabase&) (databasecorebackend.cpp:218) ==15962== by 0x50E8E4B: Digikam::DatabaseCoreBackendPrivate::databaseForThread() (databasecorebackend.cpp:124) ==15962== by 0x50E9331: Digikam::DatabaseCoreBackend::getQuery() (databasecorebackend.cpp:1499) ==15962== by 0x50EAF18: Digikam::DatabaseCoreBackend::prepareQuery(QString const&) (databasecorebackend.cpp:1456) ==15962== by 0x50EDC72: Digikam::DatabaseCoreBackend::execQuery(QString const&, QVariant const&) (databasecorebackend.cpp:992) ==15962== by 0x50EDCEF: Digikam::DatabaseCoreBackend::execSql(QString const&, QVariant const&, QList<QVariant>*, QVariant*) (databasecorebackend.cpp:894) ==15962== ==15962== Thread 17: ==15962== Conditional jump or move depends on uninitialised value(s) ==15962== at 0x7E63802: ??? (in /usr/lib/libopencv_legacy.so.2.2.0) ==15962== by 0x7E63CA3: cvEigenProjection (in /usr/lib/libopencv_legacy.so.2.2.0) ==15962== by 0x1DF: ??? ==15962== ==15962== Thread 13: ==15962== Conditional jump or move depends on uninitialised value(s) ==15962== at 0x7E63EEB: icvJacobiEigens_32f(float*, float*, float*, int, float) (in /usr/lib/libopencv_legacy.so.2.2.0) ==15962== by 0x7E64B2C: ??? (in /usr/lib/libopencv_legacy.so.2.2.0) ==15962== by 0x7E65EDB: cvCalcEigenObjects (in /usr/lib/libopencv_legacy.so.2.2.0) ==15962== by 0x1798708F: ??? ==15962== ==15962== Conditional jump or move depends on uninitialised value(s) ==15962== at 0x7E64022: icvJacobiEigens_32f(float*, float*, float*, int, float) (in /usr/lib/libopencv_legacy.so.2.2.0) ==15962== by 0x7E64B2C: ??? (in /usr/lib/libopencv_legacy.so.2.2.0) ==15962== by 0x7E65EDB: cvCalcEigenObjects (in /usr/lib/libopencv_legacy.so.2.2.0) ==15962== by 0x1798708F: ??? ==15962== ==15962== Conditional jump or move depends on uninitialised value(s) ==15962== at 0x7E64066: icvJacobiEigens_32f(float*, float*, float*, int, float) (in /usr/lib/libopencv_legacy.so.2.2.0) ==15962== by 0x7E64B2C: ??? (in /usr/lib/libopencv_legacy.so.2.2.0) ==15962== by 0x7E65EDB: cvCalcEigenObjects (in /usr/lib/libopencv_legacy.so.2.2.0) ==15962== by 0x1798708F: ??? ==15962== ==15962== Conditional jump or move depends on uninitialised value(s) ==15962== at 0x7E642E7: icvJacobiEigens_32f(float*, float*, float*, int, float) (in /usr/lib/libopencv_legacy.so.2.2.0) ==15962== by 0x7E64B2C: ??? (in /usr/lib/libopencv_legacy.so.2.2.0) ==15962== by 0x7E65EDB: cvCalcEigenObjects (in /usr/lib/libopencv_legacy.so.2.2.0) ==15962== by 0x1798708F: ??? ==15962== ==15962== Conditional jump or move depends on uninitialised value(s) ==15962== at 0x7E6437F: icvJacobiEigens_32f(float*, float*, float*, int, float) (in /usr/lib/libopencv_legacy.so.2.2.0) ==15962== by 0x7E64B2C: ??? (in /usr/lib/libopencv_legacy.so.2.2.0) ==15962== by 0x7E65EDB: cvCalcEigenObjects (in /usr/lib/libopencv_legacy.so.2.2.0) ==15962== by 0x1798708F: ??? ==15962== ==15962== Conditional jump or move depends on uninitialised value(s) ==15962== at 0x72E9CD2: __ieee754_powf (e_powf.S:95) ==15962== by 0x7E65111: ??? (in /usr/lib/libopencv_legacy.so.2.2.0) ==15962== by 0x7E65EDB: cvCalcEigenObjects (in /usr/lib/libopencv_legacy.so.2.2.0) ==15962== by 0x1798708F: ??? ==15962== ==15962== Conditional jump or move depends on uninitialised value(s) ==15962== at 0x72E9CDB: __ieee754_powf (e_powf.S:98) ==15962== by 0x7E65111: ??? (in /usr/lib/libopencv_legacy.so.2.2.0) ==15962== by 0x7E65EDB: cvCalcEigenObjects (in /usr/lib/libopencv_legacy.so.2.2.0) ==15962== by 0x1798708F: ??? ==15962== ==15962== Conditional jump or move depends on uninitialised value(s) ==15962== at 0x72EC47C: powf (w_powf.c:41) ==15962== by 0x7E65111: ??? (in /usr/lib/libopencv_legacy.so.2.2.0) ==15962== by 0x7E65EDB: cvCalcEigenObjects (in /usr/lib/libopencv_legacy.so.2.2.0) ==15962== by 0x1798708F: ??? ==15962== ==15962== Conditional jump or move depends on uninitialised value(s) ==15962== at 0x72EC4C2: powf (w_powf.c:48) ==15962== by 0x7E65111: ??? (in /usr/lib/libopencv_legacy.so.2.2.0) ==15962== by 0x7E65EDB: cvCalcEigenObjects (in /usr/lib/libopencv_legacy.so.2.2.0) ==15962== by 0x1798708F: ??? ==15962== ==15962== Conditional jump or move depends on uninitialised value(s) ==15962== at 0x72EC535: powf (w_powf.c:61) ==15962== by 0x7E65111: ??? (in /usr/lib/libopencv_legacy.so.2.2.0) ==15962== by 0x7E65EDB: cvCalcEigenObjects (in /usr/lib/libopencv_legacy.so.2.2.0) ==15962== by 0x1798708F: ??? ==15962== ==15962== Conditional jump or move depends on uninitialised value(s) ==15962== at 0x72EC5A9: powf (w_powf.c:71) ==15962== by 0x7E65111: ??? (in /usr/lib/libopencv_legacy.so.2.2.0) ==15962== by 0x7E65EDB: cvCalcEigenObjects (in /usr/lib/libopencv_legacy.so.2.2.0) ==15962== by 0x1798708F: ??? ==15962== ==15962== Conditional jump or move depends on uninitialised value(s) ==15962== at 0x4BBB900: ??? (in /usr/lib/libkface.so.1.0.0) ==15962== by 0x4BBFA06: ??? (in /usr/lib/libkface.so.1.0.0) ==15962== by 0x4BAB0CF: KFaceIface::Database::recognizeFaces(QList<KFaceIface::Face>&) (in /usr/lib/libkface.so.1.0.0) ==15962== by 0x4BB2F4B: KFaceIface::RecognitionDatabase::recognizeFaces(QList<KFaceIface::Face>&) (in /usr/lib/libkface.so.1.0.0) ==15962== by 0x831A8E4: Digikam::RecognitionWorker::process(QExplicitlySharedDataPointer<Digikam::FacePipelineExtendedPackage>) (facepipeline.cpp:505) ==15962== by 0x831AEAC: Digikam::RecognitionWorker::qt_metacall(QMetaObject::Call, int, void**) (facepipeline_p.moc:373) ==15962== by 0x6F4F8C9: QMetaObject::metacall(QObject*, QMetaObject::Call, int, void**) (qmetaobject.cpp:237) ==15962== by 0x6F5ADF5: QMetaCallEvent::placeMetaCall(QObject*) (qobject.cpp:534) ==15962== by 0x6F5C6A1: QObject::event(QEvent*) (qobject.cpp:1219) ==15962== by 0x5157B10: Digikam::WorkerObject::event(QEvent*) (workerobject.cpp:160) ==15962== by 0x6147FDB: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:4396) ==15962== by 0x614E04D: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:3798) ==15962== digikam(15962)/digikam (core) Digikam::CollectionScanner::scanAlbum: Folder does not exist or is not readable: "/media/shirephoto/digikam/PictureProject/0046/DSC_2089.JPG15962" digikam(15962)/digikam (core) Digikam::CollectionScanner::scanAlbum: Folder does not exist or is not readable: "/media/shirephoto/digikam/PictureProject/0046/DSC_2089.JPG15962" digikam(15962)/digikam (core) Digikam::CollectionScanner::scanAlbum: Folder does not exist or is not readable: "/media/shirephoto/digikam/PictureProject/0046/DSC_2089.JPG" Object::disconnect: Unexpected null parameter Object::disconnect: Unexpected null parameter Cascade directory located as : /usr/share/opencv/haarcascades Cascade directory located as : /usr/share/opencv/haarcascades digikam(15962)/digikam (core) Digikam::PreviewLoadingTask::execute: Cannot extract preview for "/media/shirephoto/digikam/PictureProject/0099/DSC_7450.JPG" digikam(15962)/digikam (core) Digikam::PreviewLoadingTask::execute: Cannot extract preview for "/media/shirephoto/digikam/PictureProject/0099/DSC_7451.JPG" ==15962== Thread 1: ==15962== Conditional jump or move depends on uninitialised value(s) ==15962== at 0x77B3942: cvWriteRawData (in /usr/lib/libopencv_core.so.2.2.0) ==15962== by 0x77B4777: ??? (in /usr/lib/libopencv_core.so.2.2.0) ==15962== by 0x77A8EBA: cvWrite (in /usr/lib/libopencv_core.so.2.2.0) ==15962== by 0x4BBB437: ??? (in /usr/lib/libkface.so.1.0.0) ==15962== by 0x4BBF75C: ??? (in /usr/lib/libkface.so.1.0.0) ==15962== by 0x4BAE62C: ??? (in /usr/lib/libkface.so.1.0.0) ==15962== by 0x4BAE7F4: ??? (in /usr/lib/libkface.so.1.0.0) ==15962== by 0x4BAA5F7: KFaceIface::Database::~Database() (in /usr/lib/libkface.so.1.0.0) ==15962== by 0x4BB42D0: ??? (in /usr/lib/libkface.so.1.0.0) ==15962== by 0x4BB3437: KFaceIface::RecognitionDatabase::~RecognitionDatabase() (in /usr/lib/libkface.so.1.0.0) ==15962== by 0x831D2E7: Digikam::Trainer::~Trainer() (facepipeline_p.h:314) ==15962== by 0x8317EA9: Digikam::FacePipeline::~FacePipeline() (facepipeline.cpp:1095) ==15962== ==15962== Conditional jump or move depends on uninitialised value(s) ==15962== at 0x4026CBF: strlen (mc_replace_strmem.c:282) ==15962== by 0x77B36BC: cvWriteRawData (in /usr/lib/libopencv_core.so.2.2.0) ==15962== by 0x77B4777: ??? (in /usr/lib/libopencv_core.so.2.2.0) ==15962== by 0x77A8EBA: cvWrite (in /usr/lib/libopencv_core.so.2.2.0) ==15962== by 0x4BBB437: ??? (in /usr/lib/libkface.so.1.0.0) ==15962== by 0x4BBF75C: ??? (in /usr/lib/libkface.so.1.0.0) ==15962== by 0x4BAE62C: ??? (in /usr/lib/libkface.so.1.0.0) ==15962== by 0x4BAE7F4: ??? (in /usr/lib/libkface.so.1.0.0) ==15962== by 0x4BAA5F7: KFaceIface::Database::~Database() (in /usr/lib/libkface.so.1.0.0) ==15962== by 0x4BB42D0: ??? (in /usr/lib/libkface.so.1.0.0) ==15962== by 0x4BB3437: KFaceIface::RecognitionDatabase::~RecognitionDatabase() (in /usr/lib/libkface.so.1.0.0) ==15962== by 0x831D2E7: Digikam::Trainer::~Trainer() (facepipeline_p.h:314) ==15962== ==15962== Conditional jump or move depends on uninitialised value(s) ==15962== at 0x4026CC8: strlen (mc_replace_strmem.c:282) ==15962== by 0x77B36BC: cvWriteRawData (in /usr/lib/libopencv_core.so.2.2.0) ==15962== by 0x77B4777: ??? (in /usr/lib/libopencv_core.so.2.2.0) ==15962== by 0x77A8EBA: cvWrite (in /usr/lib/libopencv_core.so.2.2.0) ==15962== by 0x4BBB437: ??? (in /usr/lib/libkface.so.1.0.0) ==15962== by 0x4BBF75C: ??? (in /usr/lib/libkface.so.1.0.0) ==15962== by 0x4BAE62C: ??? (in /usr/lib/libkface.so.1.0.0) ==15962== by 0x4BAE7F4: ??? (in /usr/lib/libkface.so.1.0.0) ==15962== by 0x4BAA5F7: KFaceIface::Database::~Database() (in /usr/lib/libkface.so.1.0.0) ==15962== by 0x4BB42D0: ??? (in /usr/lib/libkface.so.1.0.0) ==15962== by 0x4BB3437: KFaceIface::RecognitionDatabase::~RecognitionDatabase() (in /usr/lib/libkface.so.1.0.0) ==15962== by 0x831D2E7: Digikam::Trainer::~Trainer() (facepipeline_p.h:314) ==15962== ==15962== Conditional jump or move depends on uninitialised value(s) ==15962== at 0x77B16C9: ??? (in /usr/lib/libopencv_core.so.2.2.0) ==15962== by 0x77B36CE: cvWriteRawData (in /usr/lib/libopencv_core.so.2.2.0) ==15962== by 0x77B4777: ??? (in /usr/lib/libopencv_core.so.2.2.0) ==15962== by 0x77A8EBA: cvWrite (in /usr/lib/libopencv_core.so.2.2.0) ==15962== by 0x4BBB437: ??? (in /usr/lib/libkface.so.1.0.0) ==15962== by 0x4BBF75C: ??? (in /usr/lib/libkface.so.1.0.0) ==15962== by 0x4BAE62C: ??? (in /usr/lib/libkface.so.1.0.0) ==15962== by 0x4BAE7F4: ??? (in /usr/lib/libkface.so.1.0.0) ==15962== by 0x4BAA5F7: KFaceIface::Database::~Database() (in /usr/lib/libkface.so.1.0.0) ==15962== by 0x4BB42D0: ??? (in /usr/lib/libkface.so.1.0.0) ==15962== by 0x4BB3437: KFaceIface::RecognitionDatabase::~RecognitionDatabase() (in /usr/lib/libkface.so.1.0.0) ==15962== by 0x831D2E7: Digikam::Trainer::~Trainer() (facepipeline_p.h:314) ==15962== ==15962== Conditional jump or move depends on uninitialised value(s) ==15962== at 0x77B16D6: ??? (in /usr/lib/libopencv_core.so.2.2.0) ==15962== by 0x77B36CE: cvWriteRawData (in /usr/lib/libopencv_core.so.2.2.0) ==15962== by 0x77B4777: ??? (in /usr/lib/libopencv_core.so.2.2.0) ==15962== by 0x77A8EBA: cvWrite (in /usr/lib/libopencv_core.so.2.2.0) ==15962== by 0x4BBB437: ??? (in /usr/lib/libkface.so.1.0.0) ==15962== by 0x4BBF75C: ??? (in /usr/lib/libkface.so.1.0.0) ==15962== by 0x4BAE62C: ??? (in /usr/lib/libkface.so.1.0.0) ==15962== by 0x4BAE7F4: ??? (in /usr/lib/libkface.so.1.0.0) ==15962== by 0x4BAA5F7: KFaceIface::Database::~Database() (in /usr/lib/libkface.so.1.0.0) ==15962== by 0x4BB42D0: ??? (in /usr/lib/libkface.so.1.0.0) ==15962== by 0x4BB3437: KFaceIface::RecognitionDatabase::~RecognitionDatabase() (in /usr/lib/libkface.so.1.0.0) ==15962== by 0x831D2E7: Digikam::Trainer::~Trainer() (facepipeline_p.h:314) ==15962== ==15962== Conditional jump or move depends on uninitialised value(s) ==15962== at 0x4026CE3: __GI_strlen (mc_replace_strmem.c:284) ==15962== by 0x737B527: fputs (iofputs.c:37) ==15962== by 0x77A1DF4: ??? (in /usr/lib/libopencv_core.so.2.2.0) ==15962== by 0x77A1FE0: ??? (in /usr/lib/libopencv_core.so.2.2.0) ==15962== by 0x77B172E: ??? (in /usr/lib/libopencv_core.so.2.2.0) ==15962== by 0x77B36CE: cvWriteRawData (in /usr/lib/libopencv_core.so.2.2.0) ==15962== by 0x77B4777: ??? (in /usr/lib/libopencv_core.so.2.2.0) ==15962== by 0x77A8EBA: cvWrite (in /usr/lib/libopencv_core.so.2.2.0) ==15962== by 0x4BBB437: ??? (in /usr/lib/libkface.so.1.0.0) ==15962== by 0x4BBF75C: ??? (in /usr/lib/libkface.so.1.0.0) ==15962== by 0x4BAE62C: ??? (in /usr/lib/libkface.so.1.0.0) ==15962== by 0x4BAE7F4: ??? (in /usr/lib/libkface.so.1.0.0) ==15962== ==15962== Syscall param write(buf) points to uninitialised byte(s) ==15962== at 0x73DDF7B: ??? (syscall-template.S:82) ==15962== by 0x7385D5E: new_do_write (fileops.c:530) ==15962== by 0x7386075: _IO_do_write@@GLIBC_2.1 (fileops.c:503) ==15962== by 0x7386B7C: _IO_file_overflow@@GLIBC_2.1 (fileops.c:881) ==15962== by 0x7385EA7: _IO_file_xsputn@@GLIBC_2.1 (fileops.c:1358) ==15962== by 0x737B58F: fputs (iofputs.c:42) ==15962== by 0x77A1DF4: ??? (in /usr/lib/libopencv_core.so.2.2.0) ==15962== by 0x77A1FE0: ??? (in /usr/lib/libopencv_core.so.2.2.0) ==15962== by 0x77B172E: ??? (in /usr/lib/libopencv_core.so.2.2.0) ==15962== by 0x77B36CE: cvWriteRawData (in /usr/lib/libopencv_core.so.2.2.0) ==15962== by 0x77B4777: ??? (in /usr/lib/libopencv_core.so.2.2.0) ==15962== by 0x77A8EBA: cvWrite (in /usr/lib/libopencv_core.so.2.2.0) ==15962== Address 0x13fc8137 is not stack'd, malloc'd or (recently) free'd ==15962== ==15962== Conditional jump or move depends on uninitialised value(s) ==15962== at 0x4026CE3: __GI_strlen (mc_replace_strmem.c:284) ==15962== by 0x737B527: fputs (iofputs.c:37) ==15962== by 0x77A1DF4: ??? (in /usr/lib/libopencv_core.so.2.2.0) ==15962== by 0x315F6E6E: ??? ==15962== QClipboard: Unable to receive an event from the clipboard manager in a reasonable time QSqlDatabasePrivate::removeDatabase: connection 'digikamDatabase-324750040' is still in use, all queries will cease to work. QSqlDatabasePrivate::removeDatabase: connection 'thumbnailDatabase-273722744' is still in use, all queries will cease to work. QSqlDatabasePrivate::removeDatabase: connection 'digikamDatabase-274653616' is still in use, all queries will cease to work. QSqlDatabasePrivate::removeDatabase: connection 'thumbnailDatabase-390731872' is still in use, all queries will cease to work. QSqlDatabasePrivate::removeDatabase: connection 'digikamDatabase-273722744' is still in use, all queries will cease to work. QSqlDatabasePrivate::removeDatabase: connection 'thumbnailDatabase-324596672' is still in use, all queries will cease to work. QSqlDatabasePrivate::removeDatabase: connection 'thumbnailDatabase-323745448' is still in use, all queries will cease to work. QSqlDatabasePrivate::removeDatabase: connection 'digikamDatabase-324596672' is still in use, all queries will cease to work. QSqlDatabasePrivate::removeDatabase: connection 'digikamDatabase-328558456' is still in use, all queries will cease to work. QSqlDatabasePrivate::removeDatabase: connection 'thumbnailDatabase-332844360' is still in use, all queries will cease to work. QSqlDatabasePrivate::removeDatabase: connection 'thumbnailDatabase-328558456' is still in use, all queries will cease to work. QSqlDatabasePrivate::removeDatabase: connection 'digikamDatabase-390731872' is still in use, all queries will cease to work. QSqlDatabasePrivate::removeDatabase: connection 'digikamDatabase-542047256' is still in use, all queries will cease to work. QSqlDatabasePrivate::removeDatabase: connection 'digikamDatabase-323745448' is still in use, all queries will cease to work. QSqlDatabasePrivate::removeDatabase: connection 'thumbnailDatabase-324750040' is still in use, all queries will cease to work. QSqlDatabasePrivate::removeDatabase: connection 'digikamDatabase-332844360' is still in use, all queries will cease to work. Error in my_thread_global_end(): 9 threads didn't exit ==15962== ==15962== HEAP SUMMARY: ==15962== in use at exit: 2,572,121 bytes in 23,210 blocks ==15962== total heap usage: 8,958,488 allocs, 8,935,278 frees, 7,256,424,684 bytes allocated ==15962== ==15962== LEAK SUMMARY: ==15962== definitely lost: 48,144 bytes in 3,345 blocks ==15962== indirectly lost: 615,284 bytes in 2,355 blocks ==15962== possibly lost: 1,078,036 bytes in 6,316 blocks ==15962== still reachable: 810,925 bytes in 10,841 blocks ==15962== suppressed: 19,732 bytes in 353 blocks ==15962== Rerun with --leak-check=full to see details of leaked memory ==15962== ==15962== For counts of detected and suppressed errors, rerun with: -v ==15962== Use --track-origins=yes to see where uninitialised values come from ==15962== ERROR SUMMARY: 223747 errors from 33 contexts (suppressed: 730 from 17) laptop@duncow:~$ I added the --track-origins=yes option to valgrind and ran some face detection again. This shows that the bulk of the uninitialised memory was allocated in one place. There are a few more reported after I started recognition but these only occured once or twice. Mindful that the full valgrind output is long I have included a couple of examples below and will attach the full log to the bug. Note that when reading the full log you will see some notes from myself describing what actions I had just taken and what was showing on the screen. These are mixed in with the valgrind output in places as I was just typing direct into the console session. Just in case it is useful in my setup I am using MySQL on a remote server with image storage being served from a CIFS mounted server. Running the 2.0.0~beta5-maverick~ppa2 packages on Ubuntu 10.10 with a gnome desktop environment. Examples of the valgrind output 1 - The main source of unallocated memory comes from libkface via KFaceIface::Database::updateFaces - 81 instances in the log e.g. ==20826== Thread 17: ==20826== Conditional jump or move depends on uninitialised value(s) ==20826== at 0x7E63802: ??? (in /usr/lib/libopencv_legacy.so.2.2.0) ==20826== by 0x7E63CA3: cvEigenProjection (in /usr/lib/libopencv_legacy.so.2.2.0) ==20826== by 0x1DF: ??? ==20826== Uninitialised value was created by a heap allocation ==20826== at 0x4025BD3: malloc (vg_replace_malloc.c:236) ==20826== by 0x4BBC60E: ??? (in /usr/lib/libkface.so.1.0.0) ==20826== by 0x4BBCD89: ??? (in /usr/lib/libkface.so.1.0.0) ==20826== by 0x4BC04CD: ??? (in /usr/lib/libkface.so.1.0.0) ==20826== by 0x4BAB91B: KFaceIface::Database::updateFaces(QList<KFaceIface::Face>&) (in /usr/lib/libkface.so.1.0.0) ==20826== by 0x4BB303B: KFaceIface::RecognitionDatabase::updateFaces(QList<KFaceIface::Face>&) (in /usr/lib/libkface.so.1.0.0) ==20826== by 0x8318E34: Digikam::Trainer::process(QExplicitlySharedDataPointer<Digikam::FacePipelineExtendedPackage>) (facepipeline.cpp:827) ==20826== by 0x8319249: Digikam::Trainer::qt_metacall(QMetaObject::Call, int, void**) (facepipeline_p.moc:590) ==20826== by 0x6F4F8C9: QMetaObject::metacall(QObject*, QMetaObject::Call, int, void**) (qmetaobject.cpp:237) ==20826== by 0x6F5ADF5: QMetaCallEvent::placeMetaCall(QObject*) (qobject.cpp:534) ==20826== by 0x6F5C6A1: QObject::event(QEvent*) (qobject.cpp:1219) ==20826== by 0x5157B10: Digikam::WorkerObject::event(QEvent*) (workerobject.cpp:160) ==20826== 2 - CEncoder setup. Not sure if this is core KDE or digikam specific (2 instances) ==20826== Conditional jump or move depends on uninitialised value(s) ==20826== at 0x514A58B: CEncoder::RLESigsAndSigns(unsigned int*, unsigned int, unsigned int*, unsigned int) (Encoder.cpp:628) ==20826== by 0x514AF04: CEncoder::BitplaneEncode(unsigned int) (Encoder.cpp:380) ==20826== by 0x514B2DE: CEncoder::EncodeBuffer(ROIBlockHeader) (Encoder.cpp:274) ==20826== by 0x514B446: CEncoder::WriteValue(CSubband*, int) (Encoder.cpp:253) ==20826== by 0x514B532: CEncoder::Partition(CSubband*, int, int, int, int) (Encoder.cpp:152) ==20826== by 0x5152AFC: CSubband::ExtractTile(CEncoder&, int, bool, unsigned int, unsigned int) (Subband.cpp:188) ==20826== by 0x5151C6E: CPGFImage::Write(CPGFStream*, int, bool (*)(double, bool, void*), unsigned int*, void*) (PGFimage.cpp:933) ==20826== by 0x5154CDE: Digikam::writePGFImageData(QImage const&, QByteArray&, int) (pgfutils.cpp:139) ==20826== by 0x5133FD3: Digikam::ThumbnailCreator::storeInDatabase(Digikam::ThumbnailInfo const&, Digikam::ThumbnailImage const&) const (thumbnailcreator.cpp:695) ==20826== by 0x5135955: Digikam::ThumbnailCreator::store(QString const&, QImage const&, QRect const&, bool) const (thumbnailcreator.cpp:391) ==20826== by 0x5135A29: Digikam::ThumbnailCreator::storeDetailThumbnail(QString const&, QRect const&, QImage const&, bool) const (thumbnailcreator.cpp:367) ==20826== by 0x513846F: Digikam::ThumbnailLoadThread::storeDetailThumbnail(QString const&, QRect const&, QImage const&, bool) (thumbnailloadthread.cpp:907) ==20826== Uninitialised value was created by a stack allocation ==20826== at 0x514A9C5: CEncoder::BitplaneEncode(unsigned int) (Encoder.cpp:338) 3 - mysql exec (1 instance) ==20826== Syscall param write(buf) points to uninitialised byte(s) ==20826== at 0x73DDF7B: ??? (syscall-template.S:82) ==20826== by 0x12862122: net_real_write (in /usr/lib/libmysqlclient_r.so.16.0.0) ==20826== by 0x128623A7: net_flush (in /usr/lib/libmysqlclient_r.so.16.0.0) ==20826== by 0x12862668: net_write_command (in /usr/lib/libmysqlclient_r.so.16.0.0) ==20826== by 0x1285ED37: cli_advanced_command (in /usr/lib/libmysqlclient_r.so.16.0.0) ==20826== by 0x1282BE83: cli_stmt_execute (in /usr/lib/libmysqlclient_r.so.16.0.0) ==20826== by 0x128297BE: mysql_stmt_execute (in /usr/lib/libmysqlclient_r.so.16.0.0) ==20826== by 0x127C97D1: QMYSQLResult::exec() (qsql_mysql.cpp:1031) ==20826== by 0x4055B0B: QSqlQuery::exec() (qsqlquery.cpp:942) ==20826== by 0x50EB111: Digikam::DatabaseCoreBackend::exec(Digikam::SqlQuery&) (databasecorebackend.cpp:1404) ==20826== by 0x50ED582: Digikam::DatabaseCoreBackend::execQuery(Digikam::SqlQuery&, QVariant const&, QVariant const&, QVariant const&, QVariant const&) (databasecorebackend.cpp:1076) ==20826== by 0x50ED5ED: Digikam::DatabaseCoreBackend::execQuery(QString const&, QVariant const&, QVariant const&, QVariant const&, QVariant const&) (databasecorebackend.cpp:1021) ==20826== Address 0x16bec688 is 296 bytes inside a block of size 8,199 alloc'd ==20826== at 0x4025BD3: malloc (vg_replace_malloc.c:236) ==20826== by 0x1282E15E: my_malloc (in /usr/lib/libmysqlclient_r.so.16.0.0) ==20826== by 0x12862E0F: my_net_init (in /usr/lib/libmysqlclient_r.so.16.0.0) ==20826== by 0x1285D433: mysql_real_connect (in /usr/lib/libmysqlclient_r.so.16.0.0) ==20826== by 0x127CAB12: QMYSQLDriver::open(QString const&, QString const&, QString const&, QString const&, int, QString const&) (qsql_mysql.cpp:1271) ==20826== by 0x4057B30: QSqlDatabase::open() (qsqldatabase.cpp:842) ==20826== by 0x50E868C: Digikam::DatabaseCoreBackendPrivate::open(QSqlDatabase&) (databasecorebackend.cpp:218) ==20826== by 0x50E8E4B: Digikam::DatabaseCoreBackendPrivate::databaseForThread() (databasecorebackend.cpp:124) ==20826== by 0x50E9331: Digikam::DatabaseCoreBackend::getQuery() (databasecorebackend.cpp:1499) ==20826== by 0x50EAF18: Digikam::DatabaseCoreBackend::prepareQuery(QString const&) (databasecorebackend.cpp:1456) ==20826== by 0x50EDC72: Digikam::DatabaseCoreBackend::execQuery(QString const&, QVariant const&) (databasecorebackend.cpp:992) ==20826== by 0x50EDCEF: Digikam::DatabaseCoreBackend::execSql(QString const&, QVariant const&, QList<QVariant>*, QVariant*) (databasecorebackend.cpp:894) ==20826== Uninitialised value was created by a stack allocation ==20826== at 0x5151346: CPGFImage::Write(CPGFStream*, int, bool (*)(double, bool, void*), unsigned int*, void*) (PGFimage.cpp:825) ==20826== Created attachment 60023 [details]
'valgrind --track-origins=yes digikam' command output
Thanks a lot Richard. 1) There seem to be memory issues in the Recognizer. Given reports like bug 271679 and potentially a student working on the recognition part this summer, I'm thinking to bypass this component for the final release, for the sake of stability. 2) CC'ing Raphael about the uninitialized memory in libpgf 3) This appears to be deep inside MySQL libraries Git commit 40397564b3ebf171ae3dd94ea5ccd6bdbeafb627 by Marcel Wiesweg. Committed on 21/05/2011 at 15:30. Pushed by mwiesweg into branch 'master'. Temporarily disable this code, which does not really work anyway, for the stable release because of related, unclear crashes, as discussed in 269720. CCBUG: 269720 M +4 -0 utilities/facedetection/facepipeline.cpp http://commits.kde.org/digikam/40397564b3ebf171ae3dd94ea5ccd6bdbeafb627 I fixed bug 274660, which has a different backtrace, but is also related to a directory with invalid images and face scanning. It's not completely impossible to be the underlying memory corruption here. digiKam 2.0.0 RC is out. Please check if crash is reproducible with this version. Thanks in advance Gilles Caulier Digikam compiled from master revision 5065db45. I'm getting pretty much the same backtrace as the opener of this bug. It does not matter, whether one selects a subset of albums or scann all of them. At some point it crashes. Unfortunately, I only have this backtrace, where I also removed some detected "faces" while the scanning was still in progress. GDB: Program received signal SIGSEGV, Segmentation fault. QVariant::QVariant (this=0x7fffffffc060, p=...) at kernel/qvariant.cpp:1419 1419 : d(p.d) (gdb) bt #0 QVariant::QVariant (this=0x7fffffffc060, p=...) at kernel/qvariant.cpp:1419 #1 0x00007ffff447e6b9 in Digikam::ImageModel::data (this=0xe235c0, index=<value optimized out>, role=<value optimized out>) at /kde/kdesrc/git/extragear/graphics/digikam/libs/models/imagemodel.cpp:1016 #2 0x00007ffff448f5f5 in Digikam::ImageThumbnailModel::data (this=0xe235c0, index=<value optimized out>, role=<value optimized out>) at /kde/kdesrc/git/extragear/graphics/digikam/libs/models/imagethumbnailmodel.cpp:279 #3 0x00007ffff448230d in data (this=<value optimized out>, left=..., right=...) at /usr/include/QtCore/qabstractitemmodel.h:398 #4 Digikam::ImageFilterModel::subSortLessThan (this=<value optimized out>, left=..., right=...) at /kde/kdesrc/git/extragear/graphics/digikam/libs/models/imagefiltermodel.cpp:1054 #5 0x00007ffff0539d4c in operator() (begin=0x3ab4bf0, pivot=<value optimized out>, end=<value optimized out>, t=<value optimized out>, lessThan=...) at itemviews/qsortfilterproxymodel.cpp:80 #6 QAlgorithmsPrivate::qMerge<int*, int const, QSortFilterProxyModelLessThan> (begin=0x3ab4bf0, pivot=<value optimized out>, end=<value optimized out>, t=<value optimized out>, lessThan=...) at ../../src/corelib/tools/qalgorithms.h:424 #7 0x00007ffff0539ec2 in QAlgorithmsPrivate::qStableSortHelper<int*, int, QSortFilterProxyModelLessThan> (begin=0x3ab4bf0, end=0x3ab4bf8, t=@0x3ab4bf0, lessThan=...) at ../../src/corelib/tools/qalgorithms.h:459 #8 0x00007ffff0532bb1 in qStableSort<int*, QSortFilterProxyModelLessThan> (this=<value optimized out>, source_rows=..., source_parent=<value optimized out>) at ../../src/corelib/tools/qalgorithms.h:212 #9 QSortFilterProxyModelPrivate::sort_source_rows (this=<value optimized out>, source_rows=..., source_parent=<value optimized out>) at itemviews/qsortfilterproxymodel.cpp:464 #10 0x00007ffff0535360 in QSortFilterProxyModelPrivate::source_items_inserted (this=0xd1c4a0, source_parent=..., start=<value optimized out>, end=<value optimized out>, orient=Qt::Vertical) at itemviews/qsortfilterproxymodel.cpp:803 #11 0x00007ffff053569f in QSortFilterProxyModelPrivate::_q_sourceRowsInserted (this=0xd1c4a0, source_parent=<value optimized out>, start=<value optimized out>, end=<value optimized out>) at itemviews/qsortfilterproxymodel.cpp:1278 #12 0x00007ffff053754c in QSortFilterProxyModel::qt_metacall (this=0xe233a0, _c=QMetaObject::InvokeMetaMethod, _id=12, _a=0x7fffffffc660) at .moc/release-shared/moc_qsortfilterproxymodel.cpp:135 #13 0x00007ffff4488976 in Digikam::ImageFilterModel::qt_metacall (this=0xe233a0, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fffffffc660) at /kde/kdebuild/kde/extragear/graphics/digikam/digikam/imagefiltermodel.moc:179 #14 0x0000000000551910 in Digikam::ImageAlbumFilterModel::qt_metacall (this=0xe233a0, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fffffffc660) at /kde/kdebuild/kde/extragear/graphics/digikam/digikam/imagealbumfiltermodel.moc:74 #15 0x00007ffff1085a5f in QMetaObject::activate (sender=0xe235c0, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x7fffffffc660) at kernel/qobject.cpp:3278 #16 0x00007ffff10cda94 in QAbstractItemModel::rowsInserted (this=<value optimized out>, _t1=<value optimized out>, _t2=474, _t3=475) at .moc/release-shared/moc_qabstractitemmodel.cpp:181 #17 0x00007ffff106bbcc in QAbstractItemModel::endInsertRows (this=0xe235c0) at kernel/qabstractitemmodel.cpp:2412 #18 0x00007ffff447dd40 in Digikam::ImageModel::publiciseInfos (this=0xe235c0, infos=..., extraValues=<value optimized out>) at /kde/kdesrc/git/extragear/graphics/digikam/libs/models/imagemodel.cpp:663 #19 0x00007ffff447dff6 in Digikam::ImageModel::qt_metacall (this=0xe235c0, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fffffffc8f0) at /kde/kdebuild/kde/extragear/graphics/digikam/digikam/imagemodel.moc:113 #20 0x00007ffff4490470 in Digikam::ImageThumbnailModel::qt_metacall (this=0xe235c0, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fffffffc8f0) at /kde/kdebuild/kde/extragear/graphics/digikam/digikam/imagethumbnailmodel.moc:86 #21 0x0000000000550fc0 in Digikam::ImageAlbumModel::qt_metacall (this=0xe235c0, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fffffffc8f0) at /kde/kdebuild/kde/extragear/graphics/digikam/digikam/imagealbummodel.moc:104 #22 0x00007ffff1085a5f in QMetaObject::activate (sender=0xe625a0, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x7fffffffc8f0) at kernel/qobject.cpp:3278 #23 0x00007ffff448272a in Digikam::ImageFilterModel::ImageFilterModelPrivate::reAddImageInfos (this=<value optimized out>, _t1=<value optimized out>, _t2=<value optimized out>) at /kde/kdebuild/kde/extragear/graphics/digikam/digikam/imagefiltermodelpriv.moc:123 #24 0x00007ffff448638f in Digikam::ImageFilterModel::ImageFilterModelPrivate::packageFinished (this=0xe625a0, package=...) at /kde/kdesrc/git/extragear/graphics/digikam/libs/models/imagefiltermodel.cpp:401 #25 0x00007ffff44864c0 in Digikam::ImageFilterModel::ImageFilterModelPrivate::qt_metacall (this=0xe625a0, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x3f06390) at /kde/kdebuild/kde/extragear/graphics/digikam/digikam/imagefiltermodelpriv.moc:96 #26 0x00007ffff108537a in QObject::event (this=0xe625a0, e=<value optimized out>) at kernel/qobject.cpp:1217 #27 0x00007fffeffa4144 in QApplicationPrivate::notify_helper (this=0xb4c6e0, receiver=0xe625a0, e=0x3a14700) at kernel/qapplication.cpp:4462 #28 0x00007fffeffac6fa in QApplication::notify (this=<value optimized out>, receiver=0xe625a0, e=0x3a14700) at kernel/qapplication.cpp:4341 #29 0x00007ffff1ab7656 in KApplication::notify (this=0x7fffffffd510, receiver=0xe625a0, event=0x3a14700) at /usr/src/debug/kdelibs-4.6.90/kdeui/kernel/kapplication.cpp:311 #30 0x00007ffff107147c in QCoreApplication::notifyInternal (this=0x7fffffffd510, receiver=0xe625a0, event=0x3a14700) at kernel/qcoreapplication.cpp:731 #31 0x00007ffff1074c75 in sendEvent (receiver=0x0, event_type=0, data=0xaf0fe0) at kernel/qcoreapplication.h:215 #32 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0xaf0fe0) at kernel/qcoreapplication.cpp:1372 #33 0x00007ffff109c093 in sendPostedEvents (s=0xb4edd0) at kernel/qcoreapplication.h:220 #34 postEventSourceDispatch (s=0xb4edd0) at kernel/qeventdispatcher_glib.cpp:277 #35 0x00007fffe9270bd3 in g_main_dispatch (context=0xb4ece0) at gmain.c:2440 #36 g_main_context_dispatch (context=0xb4ece0) at gmain.c:3013 #37 0x00007fffe92713b0 in g_main_context_iterate (context=0xb4ece0, block=1, dispatch=1, self=<value optimized out>) at gmain.c:3091 #38 0x00007fffe9271650 in g_main_context_iteration (context=0xb4ece0, may_block=1) at gmain.c:3154 #39 0x00007ffff109c22f in QEventDispatcherGlib::processEvents (this=0xb173a0, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:422 #40 0x00007ffff0049bae in QGuiEventDispatcherGlib::processEvents (this=<value optimized out>, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:204 #41 0x00007ffff10708d2 in QEventLoop::processEvents (this=<value optimized out>, flags=...) at kernel/qeventloop.cpp:149 #42 0x00007ffff1070ae5 in QEventLoop::exec (this=0x7fffffffd340, flags=...) at kernel/qeventloop.cpp:201 #43 0x00007ffff1074f2b in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1008 #44 0x00000000006847e5 in main (argc=11806976, argv=0x7fff00000000) at /kde/kdesrc/git/extragear/graphics/digikam/digikam/main/main.cpp:232 (gdb) continue Continuing. digikam(23377)/digikam (core) Digikam::DatabaseCoreBackendPrivate::debugOutputFailedQuery: Failure executing query: "SELECT modificationDate, fileSize, uniqueHash FROM Images WHERE id=?;" Error messages: "Zeile kann nicht abgeholt werden" "disk I/O error" 10 1 QSqlError(-1, "", "") Bound values: (QVariant(qlonglong, 1298) ) digikam(23377)/digikam (core) Digikam::DatabaseCoreBackendPrivate::debugOutputFailedQuery: Failure executing query: "SELECT orientation FROM ImageInformation WHERE imageid=?;" Error messages: "Zeile kann nicht abgeholt werden" "disk I/O error" 10 1 QSqlError(-1, "", "") Bound values: (QVariant(qlonglong, 1298) ) digikam(23377)/digikam (core) Digikam::DatabaseCoreBackendPrivate::debugOutputFailedQuery: Failure executing query: "SELECT id, type, modificationDate, orientationHint, data FROM FilePaths INNER JOIN Thumbnails ON thumbId = id WHERE path=?;" Error messages: "Zeile kann nicht abgeholt werden" "disk I/O error" 10 1 QSqlError(-1, "", "") Bound values: (QVariant(QString, "/media/Elements/Fotos/2004/USA-Party/03-023-0846.jpg") ) digikam(23377)/KEXIV2 KExiv2Iface::KExiv2::sidecarFilePathForFile: File path: "/media/Elements/Fotos/2004/USA-Party/03-023-0846.jpg" => XMP sidecar path: "/media/Elements/Fotos/2004/USA-Party/03-023-0846.jpg.xmp" KCrash: Application 'digikam' crashing... KCrash: Attempting to start /usr/lib64/kde4/libexec/drkonqi from kdeinit sock_file=/home/myself/.kde4/socket-suseTower/kdeinit4__0 QSocketNotifier: Invalid socket 21 and type 'Read', disabling... [Thread 0x7fffc3620700 (LWP 23420) exited] digikam(23377)/digikam (core) Digikam::DImg::load: "/media/Elements/Fotos/2004/USA-Party/03-023-0846.jpg" : JPEG file identified [Thread 0x7fffb96e6700 (LWP 23461) exited] [Thread 0x7fffbcf00700 (LWP 23460) exited] [Thread 0x7fffb66e2700 (LWP 23459) exited] [Thread 0x7fffb5c41700 (LWP 23449) exited] [Thread 0x7fffbc058700 (LWP 23443) exited] [Thread 0x7fffb4549700 (LWP 23427) exited] [Thread 0x7fffbb6e9700 (LWP 23426) exited] [Thread 0x7fffbdf02700 (LWP 23423) exited] [Thread 0x7fffbf43e700 (LWP 23422) exited] [Thread 0x7fffc87fe700 (LWP 23421) exited] [Thread 0x7fffc1dc7700 (LWP 23419) exited] [Thread 0x7fffc25c8700 (LWP 23418) exited] [Thread 0x7fffcdf40700 (LWP 23417) exited] [Thread 0x7fffd7e6d700 (LWP 23383) exited] [Thread 0x7fffd866e700 (LWP 23381) exited] [Thread 0x7fffd8e6f700 (LWP 23380) exited] [Thread 0x7fffbd701700 (LWP 23424) exited] Program terminated with signal SIGALRM, Alarm clock. The program no longer exists. (gdb) I tested face tagging last night and it is definitely much harder to crash now. I did manage to crash it (see bug 277099). That has been closed as a duplicate of bug 262596 but I wonder if this is the same issue too. The initial stacktrace is very similar to that one. Certainly the crash reported yesterday in comment 25 looks to be the same. *** Bug 280521 has been marked as a duplicate of this bug. *** digiKam 2.2.0 is out since few weeks. Crash still valid with this version ? Gilles Caulier Hello Gilles, I don't think that anyone could answer you that question with "yes". If I see it right, the author has commented out the corresponding code completely "for release" [see facepipeline.cpp, RecognitionWorker::process(...)]. That also would explain why "face recognition" does not recognize anything in released versions :-( I fetched the latest source from git, re-enabled that code and tried it. At least for me, it did not crash, but it also does not recognize anything. I added a lot of debug printf in the code to see what's going on. The "filter" stage seems to do something, the "recognition" seems to do something, but that "database" file is not created!? Is it possible that this stuff is disabled as well, somewhere - and that the recognition simply does not work because it does not have any "database" behind against which it could compare? Thomas, It's simple : in libkface, face detection is implemented and face recognition is not yet. In fact face recognition is under development. There is a student working on through SoK project. Gilles Caulier So if that is really the case, please allow the question why this option is available in the GUI and announced on the homepage in big letters - whereas on the other side it is not implemented? I digged a bit deeper, and I can only see that there is a notable amount of code that seems to have a chance to work, but Database::recognizeFaces(...) [libkface/database.cpp] always bails out right at the start because the database is empty. But I cannot see where this database should get initially filled!? By manually tagging some pictures, I attached "tags" to some files, but not (knowingly) put any entries into some database. Where is the link between these two things? I think there is some more stuff to do... Please consider the distinction between face detection and face recognition (as used as technical terms in this context). Eigenfaces was implemented in 2010's GSoC, but a) the implementation never worked and b) even a working implementation of this technology would probably not yield good results with real-life pictures Marcel, What's the status of new implementation done by current SoK student ? Gilles I did not hear from him for a long time. One of the things a planned for the coding sprint... Kristian, Can you reproduce the crash using digiKam 2.4 ? Gilles Caulier No I can not. I don't have problems with this in 2.4 or greater. Created attachment 66948 [details]
New crash information added by DrKonqi
digikam (2.4.0) on KDE Platform 4.7.3 (4.7.3) using Qt 4.8.0
- What I was doing when the application crashed:
In the "Unkwown people" tag, I selected several faces using Ctrl (the selection was not contiguous).
The "face name" field was already set (I tagged one face with this name just previously)
I hit the "confirm" button (not using "Return"), and boom!
Unfortunately for you, I was actually using digikam 2.4.0, built from git version :
digikam-core : 3b25c8453f15f4e23a1e3fa348c502101658a44e
digikam parent repo : e4b416163f8cceb08f42d16b37d1074e79b2dc68
-- Backtrace (Reduced):
#6 0x0000003aa959a5e6 in QVariant::QVariant(QVariant const&) () from /usr/lib64/libQtCore.so.4
#7 0x00007f1e618fafe2 in Digikam::ImageModel::data (this=0x20fec30, index=<optimized out>, role=<optimized out>) at /home/goulou/digikam/digikam-sc/core/libs/models/imagemodel.cpp:1101
#8 0x00007f1e6190df0e in Digikam::ImageThumbnailModel::data (this=0x20fec30, index=<optimized out>, role=<optimized out>) at /home/goulou/digikam/digikam-sc/core/libs/models/imagethumbnailmodel.cpp:261
#9 0x0000003aac569bfc in QSortFilterProxyModel::data(QModelIndex const&, int) const () from /usr/lib64/libQtGui.so.4
#10 0x00007f1e61900b1a in Digikam::ImageFilterModel::data (this=0x2101b60, index=<optimized out>, role=<optimized out>) at /home/goulou/digikam/digikam-sc/core/libs/models/imagefiltermodel.cpp:554
Additionnal information : the faces have actually been tagged correctly (and the crash occured afterward) I could not reproduce it easily Official digiKam 2.6.0 release is out since few days now : http://www.digikam.org/drupal/node/656 Please, check if this entry still valid, or update report accordingly. Thanks in advance. Gilles Caulier *** Bug 302354 has been marked as a duplicate of this bug. *** This bug is not valid anymore. It's fixed. *** Bug 311934 has been marked as a duplicate of this bug. *** |