Bug 269720 - Digikam SIGSEGV during face scanning
Summary: Digikam SIGSEGV during face scanning
Status: CLOSED FIXED
Alias: None
Product: digikam
Classification: Applications
Component: Faces-Engine (show other bugs)
Version: 2.0.0
Platform: Ubuntu Linux
: NOR crash
Target Milestone: ---
Assignee: Digikam Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-03-29 19:44 UTC by Kristian Karl
Modified: 2013-12-30 19:50 UTC (History)
12 users (show)

See Also:
Latest Commit:
Version Fixed In: 2.8.0


Attachments
'valgrind --track-origins=yes digikam' command output (159.93 KB, text/plain)
2011-05-15 14:50 UTC, Richard Mortimer
Details
New crash information added by DrKonqi (19.39 KB, text/plain)
2011-12-20 19:19 UTC, Frederic Grelot
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Kristian Karl 2011-03-29 19:44:51 UTC
Version:           2.0.0 (using KDE 4.6.1) 
OS:                Linux

Digikam receives a signal SIGSEGV during face scanning.

I reproduced the crash using gdb:
=================================
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 4609)]
[New Thread 0x7fffd49de700 (LWP 4610)]
[New Thread 0x7fffcffff700 (LWP 4611)]
QSqlDatabasePrivate::removeDatabase: connection 'ConnectionTest' is still in use, all queries will cease to work.
[Thread 0x7fffcffff700 (LWP 4611) exited]
digikam(4571)/digikam (core) Digikam::CollectionScanner::scanAlbum: Folder does not exist or is not readable:  "/nfs/media/media/Pictures" 
[New Thread 0x7fffcffff700 (LWP 4612)]
QInotifyFileSystemWatcherEngine::addPaths: inotify_add_watch failed: No such file or directory
[New Thread 0x7fffcd07d700 (LWP 4613)]
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 0x7fffc3b97700 (LWP 4614)]
[New Thread 0x7fffc295e700 (LWP 4615)]
[New Thread 0x7fffc215d700 (LWP 4616)]
[New Thread 0x7fffc1757700 (LWP 4617)]
[New Thread 0x7fffbcf55700 (LWP 4618)]
digikam(4571)/digikam (core) Digikam::ImageInfoJob::slotResult: Failed to list url:  "" 
digikam(4571)/digikam (core) Digikam::ImageInfoJob::slotResult: Failed to list url:  "" 
[New Thread 0x7fffbc754700 (LWP 4621)]
[New Thread 0x7fffb2bde700 (LWP 4632)]
[New Thread 0x7fffb23dd700 (LWP 4633)]
[New Thread 0x7fffb1bdc700 (LWP 4635)]
Object::disconnect: Unexpected null parameter
Object::disconnect: Unexpected null parameter
[New Thread 0x7fffabfff700 (LWP 4653)]
[New Thread 0x7fffab7fe700 (LWP 4654)]
[New Thread 0x7fffaaffd700 (LWP 4655)]
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 0x7fffa6523700 (LWP 4656)]
[New Thread 0x7fff9d9d7700 (LWP 4657)]
[New Thread 0x7fff99ef6700 (LWP 4659)]
digikam(4571)/digikam (core): Bogus marker length 
digikam(4571)/digikam (core) Digikam::PreviewLoadingTask::execute: Cannot extract preview for  "/home/krikar/Pictures/CF-00039/103_0973.JPG" 
[Thread 0x7fffbc754700 (LWP 4621) exited]

Program received signal SIGSEGV, Segmentation fault.
QVariant::QVariant (this=0x7fffffffc5a0, p=...) at kernel/qvariant.cpp:1419
1419	kernel/qvariant.cpp: No such file or directory.
	in kernel/qvariant.cpp
(gdb) bt
#0  QVariant::QVariant (this=0x7fffffffc5a0, p=...) at kernel/qvariant.cpp:1419
#1  0x00007ffff4422704 in Digikam::ImageModel::data (this=0xd457c0, 
    index=<value optimized out>, role=37)
    at /build/buildd/digikam2-2.0.0~beta4+maverick~ppa1kde46/libs/models/imagemodel.cpp:994
#2  0x00007ffff4435373 in Digikam::ImageThumbnailModel::data (this=0xd457c0, 
    index=..., role=37)
    at /build/buildd/digikam2-2.0.0~beta4+maverick~ppa1kde46/libs/models/imagethumbnailmodel.cpp:253
#3  0x00007ffff4428877 in data (this=0xcf3810, left=..., right=...)
    at /usr/include/qt4/QtCore/qabstractitemmodel.h:398
#4  Digikam::ImageFilterModel::subSortLessThan (this=0xcf3810, left=..., 
    right=...)
    at /build/buildd/digikam2-2.0.0~beta4+maverick~ppa1kde46/libs/models/imagefiltermodel.cpp:1038
#5  0x00007ffff1338c4f in void QAlgorithmsPrivate::qMerge<int*, int const, QSortFilterProxyModelLessThan>(int*, int*, int*, int const&, QSortFilterProxyModelLessThan) () from /usr/lib/libQtGui.so.4
#6  0x00007ffff1338e0c in void QAlgorithmsPrivate::qStableSortHelper<int*, int, QSortFilterProxyModelLessThan>(int*, int*, int const&, QSortFilterProxyModelLessThan) () from /usr/lib/libQtGui.so.4
#7  0x00007ffff132eff3 in qStableSort<int*, QSortFilterProxyModelLessThan> (
    this=<value optimized out>, source_rows=..., 
---Type <return> to continue, or q <return> to quit---
    source_parent=<value optimized out>)
    at ../../include/QtCore/../../src/corelib/tools/qalgorithms.h:212
#8  QSortFilterProxyModelPrivate::sort_source_rows (
    this=<value optimized out>, source_rows=..., 
    source_parent=<value optimized out>)
    at itemviews/qsortfilterproxymodel.cpp:464
#9  0x00007ffff1334f90 in QSortFilterProxyModelPrivate::source_items_inserted (
    this=0xcde4b0, source_parent=..., start=368, end=367, orient=Qt::Vertical)
    at itemviews/qsortfilterproxymodel.cpp:803
#10 0x00007ffff133529f in QSortFilterProxyModelPrivate::_q_sourceRowsInserted (
    this=0x7fffffffc5a0, source_parent=..., start=373, end=37)
    at itemviews/qsortfilterproxymodel.cpp:1278
#11 0x00007ffff133711c in QSortFilterProxyModel::qt_metacall (this=0xcf3810, 
    _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, 
    _a=0x7fffffffcc10) at .moc/release-shared/moc_qsortfilterproxymodel.cpp:135
#12 0x00007ffff442c306 in Digikam::ImageFilterModel::qt_metacall (
    this=0x7fffffffc5a0, _c=4292598231, _id=373, _a=0x25)
    at /build/buildd/digikam2-2.0.0~beta4+maverick~ppa1kde46/obj-x86_64-linux-gnu/digikam/imagefiltermodel.moc:179
#13 0x000000000058d820 in Digikam::ImageAlbumFilterModel::qt_metacall (
    this=0x7fffffffc5a0, _c=4292598231, _id=373, _a=0x25)
    at /build/buildd/digikam2-2.0.0~beta4+maverick~ppa1kde46/obj-x86_64-linux-gnu/digikam/imagealbumfiltermodel.moc:74
---Type <return> to continue, or q <return> to quit---
#14 0x00007ffff012ab27 in QMetaObject::activate (sender=0xd457c0, 
    m=<value optimized out>, local_signal_index=<value optimized out>, 
    argv=0x25) at kernel/qobject.cpp:3280
#15 0x00007ffff01761a4 in QAbstractItemModel::rowsInserted (
    this=0x7fffffffc5a0, _t1=<value optimized out>, _t2=366, _t3=367)
    at .moc/release-shared/moc_qabstractitemmodel.cpp:181
#16 0x00007ffff010c007 in QAbstractItemModel::endInsertRows (this=0xd457c0)
    at kernel/qabstractitemmodel.cpp:2413
#17 0x00007ffff4423dc8 in Digikam::ImageModel::publiciseInfos (this=0xd457c0, 
    infos=<value optimized out>, extraValues=...)
    at /build/buildd/digikam2-2.0.0~beta4+maverick~ppa1kde46/libs/models/imagemodel.cpp:655
#18 0x00007ffff4424086 in Digikam::ImageModel::qt_metacall (this=0xd457c0, 
    _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, 
    _a=0x7fffffffcec0)
    at /build/buildd/digikam2-2.0.0~beta4+maverick~ppa1kde46/obj-x86_64-linux-gnu/digikam/imagemodel.moc:113
#19 0x00007ffff4435a40 in Digikam::ImageThumbnailModel::qt_metacall (
    this=0x7fffffffc5a0, _c=4292598231, _id=373, _a=0x25)
    at /build/buildd/digikam2-2.0.0~beta4+maverick~ppa1kde46/obj-x86_64-linux-gnu/digikam/imagethumbnailmodel.moc:86
#20 0x000000000058ce30 in Digikam::ImageAlbumModel::qt_metacall (
    this=0x7fffffffc5a0, _c=4292598231, _id=373, _a=0x25)
---Type <return> to continue, or q <return> to quit---
    at /build/buildd/digikam2-2.0.0~beta4+maverick~ppa1kde46/obj-x86_64-linux-gnu/digikam/imagealbummodel.moc:104
#21 0x00007ffff012ab27 in QMetaObject::activate (sender=0xcea770, 
    m=<value optimized out>, local_signal_index=<value optimized out>, 
    argv=0x25) at kernel/qobject.cpp:3280
#22 0x00007ffff442796a in Digikam::ImageFilterModelPrivate::reAddImageInfos (
    this=0x7fffffffc5a0, _t1=<value optimized out>, _t2=<value optimized out>)
    at /build/buildd/digikam2-2.0.0~beta4+maverick~ppa1kde46/obj-x86_64-linux-gnu/digikam/imagefiltermodelpriv.moc:123
#23 0x00007ffff442bfd1 in Digikam::ImageFilterModelPrivate::packageFinished (
    this=0xcea770, package=...)
    at /build/buildd/digikam2-2.0.0~beta4+maverick~ppa1kde46/libs/models/imagefiltermodel.cpp:785
#24 0x00007ffff442c210 in Digikam::ImageFilterModelPrivate::qt_metacall (
    this=0xcea770, _c=QMetaObject::InvokeMetaMethod, 
    _id=<value optimized out>, _a=0x7fffd00dd4a0)
    at /build/buildd/digikam2-2.0.0~beta4+maverick~ppa1kde46/obj-x86_64-linux-gnu/digikam/imagefiltermodelpriv.moc:96
#25 0x00007ffff0124bde in QObject::event (this=0xcea770, e=0x7fffffffc5a0)
    at kernel/qobject.cpp:1219
#26 0x00007ffff0d50fdc in QApplicationPrivate::notify_helper (this=0xbeb850, 
    receiver=0xcea770, e=0x7fffd2a807c0) at kernel/qapplication.cpp:4396
#27 0x00007ffff0d56aed in QApplication::notify (this=0x7fffffffdac0, 
---Type <return> to continue, or q <return> to quit---
    receiver=0xcea770, e=0x7fffd2a807c0) at kernel/qapplication.cpp:4277
#28 0x00007ffff1ae12c6 in KApplication::notify (this=0x7fffffffdac0, 
    receiver=0xcea770, event=0x7fffd2a807c0)
    at ../../kdeui/kernel/kapplication.cpp:311
#29 0x00007ffff0112cdc in QCoreApplication::notifyInternal (this=
    0x7fffffffdac0, receiver=0xcea770, event=0x7fffd2a807c0)
    at kernel/qcoreapplication.cpp:732
#30 0x00007ffff0115c22 in sendEvent (receiver=0x0, 
    event_type=<value optimized out>, data=0xb80890)
    at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#31 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, 
    event_type=<value optimized out>, data=0xb80890)
    at kernel/qcoreapplication.cpp:1373
#32 0x00007ffff013f653 in sendPostedEvents (s=0xbef3f0)
    at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:220
#33 postEventSourceDispatch (s=0xbef3f0)
    at kernel/qeventdispatcher_glib.cpp:277
#34 0x00007fffea6ac342 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#35 0x00007fffea6b02a8 in ?? () from /lib/libglib-2.0.so.0
#36 0x00007fffea6b045c in g_main_context_iteration ()
   from /lib/libglib-2.0.so.0
#37 0x00007ffff013f193 in QEventDispatcherGlib::processEvents (this=0xb7ffb0, 
    flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:415
---Type <return> to continue, or q <return> to quit---
#38 0x00007ffff0e03a4e in QGuiEventDispatcherGlib::processEvents (this=
    0x7fffffffc5a0, flags=<value optimized out>)
    at kernel/qguieventdispatcher_glib.cpp:204
#39 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
#40 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
#41 0x00007ffff0115ebb in QCoreApplication::exec ()
    at kernel/qcoreapplication.cpp:1009
#42 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) 


Reproducible: Always

Steps to Reproduce:
1) Started Digikam 2.0.0 Beta 4
2) Choose People, and clicked 'Scan collection for faces'-button
3) Selected Rescan of particular Album
4) Digikam displayed progress dialog of face scanning
5) After 25% scanning, the program received signal SIGS
Comment 1 Kristian Karl 2011-03-29 19:51:33 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)
Comment 2 Marcel Wiesweg 2011-04-07 22:13:30 UTC
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?
Comment 3 Kristian Karl 2011-04-08 13:25:02 UTC
(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.
Comment 4 Marcel Wiesweg 2011-04-13 22:33:52 UTC
*** Bug 270410 has been marked as a duplicate of this bug. ***
Comment 5 Marcel Wiesweg 2011-04-24 15:18:42 UTC
*** Bug 271375 has been marked as a duplicate of this bug. ***
Comment 6 Thomas Eschenbacher 2011-04-25 09:46:05 UTC
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?
Comment 7 Thomas Eschenbacher 2011-04-25 17:45:31 UTC
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 :-)
Comment 8 caulier.gilles 2011-04-25 19:52:53 UTC
What's the type mime of the corrupted files ? JPEG, RAW ?

Gilles Caulier
Comment 9 Kristian Karl 2011-04-25 20:01:01 UTC
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.
Comment 10 Thomas Eschenbacher 2011-04-26 19:18:00 UTC
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...
Comment 11 Marcel Wiesweg 2011-04-30 22:00:54 UTC
@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.
Comment 12 Marcel Wiesweg 2011-04-30 22:03:45 UTC
*** Bug 271791 has been marked as a duplicate of this bug. ***
Comment 13 Thomas Eschenbacher 2011-05-01 15:52:21 UTC
@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" 
---------------
Comment 14 Kristian Karl 2011-05-04 21:59:58 UTC
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.
Comment 15 Kristian Karl 2011-05-04 22:02:56 UTC
(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.
Comment 16 Marcel Wiesweg 2011-05-14 14:19:33 UTC
*** Bug 273161 has been marked as a duplicate of this bug. ***
Comment 17 Marcel Wiesweg 2011-05-14 15:37:59 UTC
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!
Comment 18 Richard Mortimer 2011-05-15 11:09:27 UTC
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:~$
Comment 19 Richard Mortimer 2011-05-15 14:48:28 UTC
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==
Comment 20 Richard Mortimer 2011-05-15 14:50:06 UTC
Created attachment 60023 [details]
'valgrind --track-origins=yes digikam'   command output
Comment 21 Marcel Wiesweg 2011-05-15 15:36:14 UTC
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
Comment 22 Marcel Wiesweg 2011-05-21 15:31:58 UTC
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
Comment 23 Marcel Wiesweg 2011-06-11 16:46:36 UTC
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.
Comment 24 caulier.gilles 2011-07-02 10:02:12 UTC
digiKam 2.0.0 RC is out. Please check if crash is reproducible with this version.

Thanks in advance

Gilles Caulier
Comment 25 Torbjörn K. 2011-07-04 07:14:11 UTC
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)
Comment 26 Richard Mortimer 2011-07-05 07:39:58 UTC
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.
Comment 27 Marcel Wiesweg 2011-08-21 14:34:06 UTC
*** Bug 280521 has been marked as a duplicate of this bug. ***
Comment 28 caulier.gilles 2011-11-03 12:42:08 UTC
digiKam 2.2.0 is out since few weeks. Crash still valid with this version ?

Gilles Caulier
Comment 29 Thomas Eschenbacher 2011-11-04 19:39:40 UTC
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?
Comment 30 caulier.gilles 2011-11-04 19:53:24 UTC
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
Comment 31 Thomas Eschenbacher 2011-11-04 20:23:33 UTC
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...
Comment 32 Marcel Wiesweg 2011-11-05 12:42:34 UTC
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
Comment 33 caulier.gilles 2011-11-05 13:23:33 UTC
Marcel,

What's the status of new implementation done by current SoK student ?

Gilles
Comment 34 Marcel Wiesweg 2011-11-05 14:39:28 UTC
I did not hear from him for a long time. One of the things a planned for the coding sprint...
Comment 35 caulier.gilles 2011-12-14 13:41:19 UTC
Kristian,

Can you reproduce the crash using digiKam 2.4 ?

Gilles Caulier
Comment 36 Kristian Karl 2011-12-14 14:02:59 UTC
No I can not. I don't have problems with this in 2.4 or greater.
Comment 37 Frederic Grelot 2011-12-20 19:19:32 UTC
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
Comment 38 Frederic Grelot 2011-12-20 20:47:13 UTC
Additionnal information : the faces have actually been tagged correctly (and the crash occured afterward)
I could not reproduce it easily
Comment 39 caulier.gilles 2012-06-22 08:52:09 UTC
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
Comment 40 Marcel Wiesweg 2012-06-24 12:53:07 UTC
*** Bug 302354 has been marked as a duplicate of this bug. ***
Comment 41 Kristian Karl 2012-08-05 15:41:48 UTC
This bug is not valid anymore. It's fixed.
Comment 42 caulier.gilles 2012-12-19 14:06:07 UTC
*** Bug 311934 has been marked as a duplicate of this bug. ***