Bug 285517

Summary: digiKam crashed when tagging faces
Product: [Applications] digikam Reporter: Rodrigo Larrabure <rodrigo.larrabure>
Component: Faces-EngineAssignee: Digikam Developers <digikam-bugs-null>
Status: RESOLVED FIXED    
Severity: crash CC: caulier.gilles, jeremy, mail, pkoper
Priority: NOR    
Version: 2.1.1   
Target Milestone: ---   
Platform: Ubuntu   
OS: Linux   
Latest Commit: Version Fixed In: 7.0.0
Sentry Crash Report:
Attachments: New crash information added by DrKonqi
New crash information added by DrKonqi

Description Rodrigo Larrabure 2011-11-01 22:28:36 UTC
Application: digikam (2.1.1)
KDE Platform Version: 4.7.2 (4.7.2)
Qt Version: 4.7.4
Operating System: Linux 3.0.0-12-generic x86_64
Distribution: Ubuntu 11.10

-- Information about the crash:
- What I was doing when the application crashed:
I was manually tagging some pictures after running the face recognition tool when digiKam crashed.

The crash does not seem to be reproducible.

-- Backtrace:
Application: digiKam (digikam), signal: Segmentation fault
[Current thread is 1 (Thread 0x7fc67daeba20 (LWP 3073))]

Thread 5 (Thread 0x7fc65d01c700 (LWP 3074)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007fc67845f1ab in wait (time=18446744073709551615, this=0x23615c0) at thread/qwaitcondition_unix.cpp:88
#2  QWaitCondition::wait (this=<optimized out>, mutex=0x2361468, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:160
#3  0x00000000005c2e20 in Digikam::ScanController::run (this=0x23610e0) at /build/buildd/digikam-2.1.1/core/digikam/database/scancontroller.cpp:647
#4  0x00007fc67845ed05 in QThreadPrivate::start (arg=0x23610e0) at thread/qthread_unix.cpp:331
#5  0x00007fc67319cefc in start_thread (arg=0x7fc65d01c700) at pthread_create.c:304
#6  0x00007fc67770189d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#7  0x0000000000000000 in ?? ()

Thread 4 (Thread 0x7fc65c81b700 (LWP 3075)):
#0  0x00007fc6776f5773 in __GI___poll (fds=<optimized out>, nfds=<optimized out>, timeout=<optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00007fc671279f68 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007fc67127a429 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007fc678570f3e in QEventDispatcherGlib::processEvents (this=0x236f410, flags=<optimized out>) at kernel/qeventdispatcher_glib.cpp:424
#4  0x00007fc678544cf2 in QEventLoop::processEvents (this=<optimized out>, flags=...) at kernel/qeventloop.cpp:149
#5  0x00007fc678544ef7 in QEventLoop::exec (this=0x7fc65c81ab30, flags=...) at kernel/qeventloop.cpp:201
#6  0x00007fc67845c27f in QThread::exec (this=<optimized out>) at thread/qthread.cpp:498
#7  0x00007fc678527cbf in QInotifyFileSystemWatcherEngine::run (this=0x236d6a0) at io/qfilesystemwatcher_inotify.cpp:248
#8  0x00007fc67845ed05 in QThreadPrivate::start (arg=0x236d6a0) at thread/qthread_unix.cpp:331
#9  0x00007fc67319cefc in start_thread (arg=0x7fc65c81b700) at pthread_create.c:304
#10 0x00007fc67770189d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#11 0x0000000000000000 in ?? ()

Thread 3 (Thread 0x7fc657fff700 (LWP 3078)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007fc67845f1ab in wait (time=18446744073709551615, this=0x2674b60) at thread/qwaitcondition_unix.cpp:88
#2  QWaitCondition::wait (this=<optimized out>, mutex=0x268e728, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:160
#3  0x00007fc67b3a3737 in Digikam::ParkingThread::run (this=0x268e710) at /build/buildd/digikam-2.1.1/core/libs/threads/threadmanager.cpp:119
#4  0x00007fc67845ed05 in QThreadPrivate::start (arg=0x268e710) at thread/qthread_unix.cpp:331
#5  0x00007fc67319cefc in start_thread (arg=0x7fc657fff700) at pthread_create.c:304
#6  0x00007fc67770189d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#7  0x0000000000000000 in ?? ()

Thread 2 (Thread 0x7fc6552ba700 (LWP 3079)):
#0  pthread_mutex_unlock (mutex=0x2bbae58) at forward.c:184
#1  0x00007fc671279900 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007fc67127a258 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007fc67127a429 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007fc678570f3e in QEventDispatcherGlib::processEvents (this=0x2bb9400, flags=<optimized out>) at kernel/qeventdispatcher_glib.cpp:424
#5  0x00007fc678544cf2 in QEventLoop::processEvents (this=<optimized out>, flags=...) at kernel/qeventloop.cpp:149
#6  0x00007fc678544ef7 in QEventLoop::exec (this=0x7fc6552b9b30, flags=...) at kernel/qeventloop.cpp:201
#7  0x00007fc67845c27f in QThread::exec (this=<optimized out>) at thread/qthread.cpp:498
#8  0x00007fc678527cbf in QInotifyFileSystemWatcherEngine::run (this=0x220e8f0) at io/qfilesystemwatcher_inotify.cpp:248
#9  0x00007fc67845ed05 in QThreadPrivate::start (arg=0x220e8f0) at thread/qthread_unix.cpp:331
#10 0x00007fc67319cefc in start_thread (arg=0x7fc6552ba700) at pthread_create.c:304
#11 0x00007fc67770189d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#12 0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7fc67daeba20 (LWP 3073)):
[KCrash Handler]
#6  deref (this=0x40023) at ../../include/QtCore/../../src/corelib/arch/qatomic_x86_64.h:133
#7  QVariant::~QVariant (this=0x7fff6fb05ae0, __in_chrg=<optimized out>) at kernel/qvariant.cpp:1407
#8  0x00000000005ff145 in Digikam::AssignNameOverlay::checkIndex (this=<optimized out>, index=<optimized out>) at /build/buildd/digikam-2.1.1/core/digikam/items/assignnameoverlay.cpp:241
#9  0x00007fc67b3f0a9f in checkIndexOnEnter (index=..., this=0x2bab380) at /build/buildd/digikam-2.1.1/core/libs/widgets/itemview/imagedelegateoverlay.cpp:282
#10 Digikam::AbstractWidgetDelegateOverlay::checkIndexOnEnter (this=0x2bab380, index=...) at /build/buildd/digikam-2.1.1/core/libs/widgets/itemview/imagedelegateoverlay.cpp:270
#11 0x00007fc67b3f0b07 in Digikam::PersistentWidgetDelegateOverlay::slotEntered (this=0x2bab380, index=...) at /build/buildd/digikam-2.1.1/core/libs/widgets/itemview/imagedelegateoverlay.cpp:577
#12 0x00000000005ff02b in Digikam::AssignNameOverlay::eventFilter (this=0x2bab380, o=<optimized out>, e=<optimized out>) at /build/buildd/digikam-2.1.1/core/digikam/items/assignnameoverlay.cpp:351
#13 0x00007fc678545c88 in QCoreApplicationPrivate::sendThroughObjectEventFilters (this=<optimized out>, receiver=0x34f1320, event=0x7fff6fb05f30) at kernel/qcoreapplication.cpp:902
#14 0x00007fc678f463ef in notify_helper (e=0x7fff6fb05f30, receiver=0x34f1320, this=0x21834e0) at kernel/qapplication.cpp:4482
#15 QApplicationPrivate::notify_helper (this=0x21834e0, receiver=0x34f1320, e=0x7fff6fb05f30) at kernel/qapplication.cpp:4458
#16 0x00007fc678f4b291 in QApplication::notify (this=0x7fff6fb071a0, receiver=0x34f1320, e=0x7fff6fb05f30) at kernel/qapplication.cpp:4365
#17 0x00007fc679c5a126 in KApplication::notify (this=0x7fff6fb071a0, receiver=0x34f1320, event=0x7fff6fb05f30) at ../../kdeui/kernel/kapplication.cpp:311
#18 0x00007fc678545afc in QCoreApplication::notifyInternal (this=0x7fff6fb071a0, receiver=0x34f1320, event=0x7fff6fb05f30) at kernel/qcoreapplication.cpp:787
#19 0x00007fc678f44c3e in sendEvent (event=0x7fff6fb05f30, receiver=0x34f1320) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#20 QApplicationPrivate::setFocusWidget (focus=0x28233c0, reason=Qt::MouseFocusReason) at kernel/qapplication.cpp:2246
#21 0x00007fc678f8a799 in QWidget::setFocus (this=0x28233c0, reason=Qt::MouseFocusReason) at kernel/qwidget.cpp:6391
#22 0x00007fc678f4cf54 in QApplication::notify (this=0x7fff6fb071a0, receiver=0xb2d85c0, e=0x7fff6fb06430) at kernel/qapplication.cpp:4004
#23 0x00007fc679c5a126 in KApplication::notify (this=0x7fff6fb071a0, receiver=0xb2d85c0, event=0x7fff6fb06430) at ../../kdeui/kernel/kapplication.cpp:311
#24 0x00007fc678545afc in QCoreApplication::notifyInternal (this=0x7fff6fb071a0, receiver=0xb2d85c0, event=0x7fff6fb06430) at kernel/qcoreapplication.cpp:787
#25 0x00007fc678f473f2 in sendEvent (event=<optimized out>, receiver=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#26 QApplicationPrivate::sendMouseEvent (receiver=0xb2d85c0, event=0x7fff6fb06430, alienWidget=0xb2d85c0, nativeWidget=0x28233c0, buttonDown=0xb2d85c0, lastMouseReceiver=..., spontaneous=true) at kernel/qapplication.cpp:3146
#27 0x00007fc678fc6945 in QETWidget::translateMouseEvent (this=0x28233c0, event=<optimized out>) at kernel/qapplication_x11.cpp:4568
#28 0x00007fc678fc58be in QApplication::x11ProcessEvent (this=0x7fff6fb071a0, event=0x7fff6fb06c50) at kernel/qapplication_x11.cpp:3690
#29 0x00007fc678fee412 in x11EventSourceDispatch (s=0x2189d60, callback=0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146
#30 0x00007fc671279a5d in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#31 0x00007fc67127a258 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#32 0x00007fc67127a429 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#33 0x00007fc678570ed6 in QEventDispatcherGlib::processEvents (this=0x2128270, flags=<optimized out>) at kernel/qeventdispatcher_glib.cpp:422
#34 0x00007fc678fee07e in QGuiEventDispatcherGlib::processEvents (this=<optimized out>, flags=<optimized out>) at kernel/qguieventdispatcher_glib.cpp:204
#35 0x00007fc678544cf2 in QEventLoop::processEvents (this=<optimized out>, flags=...) at kernel/qeventloop.cpp:149
#36 0x00007fc678544ef7 in QEventLoop::exec (this=0x7fff6fb07020, flags=...) at kernel/qeventloop.cpp:201
#37 0x00007fc678549789 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1064
#38 0x00000000004893fd in main (argc=1, argv=<optimized out>) at /build/buildd/digikam-2.1.1/core/digikam/main/main.cpp:232

Reported using DrKonqi
Comment 1 caulier.gilles 2011-11-03 12:42:46 UTC
digiKam 2.2.0 is out since few weeks. Crash still valid with this version ?

Gilles Caulier
Comment 2 caulier.gilles 2011-12-01 07:58:31 UTC
*** Bug 287961 has been marked as a duplicate of this bug. ***
Comment 3 caulier.gilles 2011-12-01 08:00:42 UTC
This entry is similar, but not exactly the same that bug 277808, fixed with 2.3.0

Can you test with this release ?

Thanks in advance

Gilles Caulier
Comment 4 Jeremy Fitzhardinge 2011-12-01 08:11:27 UTC
Bug 287961, which you marked as a duplicate, happened on 2.3.0.
Comment 5 caulier.gilles 2011-12-14 13:38:31 UTC
Rodrigo,

Can you reproduce the crash with digiKam 2.4 ?

Gilles Caulier
Comment 6 Rodrigo Larrabure 2011-12-14 16:54:02 UTC
Hello Giles,
I'm waiting untill 2.4 is available at Ubuntu's repositories.

Enviado via iPhone

Em 14/12/2011, às 11:38, Gilles Caulier <caulier.gilles@gmail.com> escreveu:

> https://bugs.kde.org/show_bug.cgi?id=285517
> 
> 
> 
> 
> 
> --- Comment #5 from Gilles Caulier <caulier gilles gmail com>  2011-12-14 13:38:31 ---
> Rodrigo,
> 
> Can you reproduce the crash with digiKam 2.4 ?
> 
> Gilles Caulier
> 
> -- 
> Configure bugmail: https://bugs.kde.org/userprefs.cgi?tab=email
> ------- You are receiving this mail because: -------
> You reported the bug.
Comment 7 mail 2012-04-24 19:29:56 UTC
Created attachment 70630 [details]
New crash information added by DrKonqi

digikam (2.5.0) on KDE Platform 4.8.2 (4.8.2) using Qt 4.8.1

- What I was doing when the application crashed:
I was manually tagging some pictures after running the face recognition tool when digiKam crashed.

The crash does not seem to be reproducible.

-- Backtrace (Reduced):
#7  QVariant::~QVariant (this=0x7fffdc9539a0, __in_chrg=<optimized out>) at kernel/qvariant.cpp:1399
#8  0x0000000000607f95 in Digikam::AssignNameOverlay::checkIndex (this=<optimized out>, index=...) at /build/buildd/digikam-2.5.0/core/digikam/items/assignnameoverlay.cpp:248
#9  0x00007f4e552251ff in checkIndexOnEnter (index=..., this=0x22fa440) at /build/buildd/digikam-2.5.0/core/libs/widgets/itemview/imagedelegateoverlay.cpp:282
#10 Digikam::AbstractWidgetDelegateOverlay::checkIndexOnEnter (this=0x22fa440, index=...) at /build/buildd/digikam-2.5.0/core/libs/widgets/itemview/imagedelegateoverlay.cpp:270
#11 0x00007f4e55225267 in Digikam::PersistentWidgetDelegateOverlay::slotEntered (this=0x22fa440, index=...) at /build/buildd/digikam-2.5.0/core/libs/widgets/itemview/imagedelegateoverlay.cpp:577
Comment 8 Pkoper 2012-05-16 14:20:26 UTC
Created attachment 71140 [details]
New crash information added by DrKonqi

digikam (2.2.0) on KDE Platform 4.7.2 (4.7.2) "release 5" using Qt 4.7.4

- What I was doing when the application crashed:
I was manually tagging some pictures after running the face recognition tool when digiKam crashed.

- Unusual behavior I noticed:

- Custom settings of the application:

-- Backtrace (Reduced):
#7  0x000000000060dc0b in data (arole=37, this=<optimized out>) at /usr/include/QtCore/qabstractitemmodel.h:398
#8  Digikam::AssignNameOverlay::checkIndex (this=<optimized out>, index=<optimized out>) at /usr/src/debug/digikam-2.2.0/core/digikam/items/assignnameoverlay.cpp:241
#9  0x00007fa59422e0af in checkIndexOnEnter (index=..., this=0xdd0850) at /usr/src/debug/digikam-2.2.0/core/libs/widgets/itemview/imagedelegateoverlay.cpp:282
#10 Digikam::AbstractWidgetDelegateOverlay::checkIndexOnEnter (this=0xdd0850, index=...) at /usr/src/debug/digikam-2.2.0/core/libs/widgets/itemview/imagedelegateoverlay.cpp:270
#11 0x00007fa59422e117 in Digikam::PersistentWidgetDelegateOverlay::slotEntered (this=0xdd0850, index=...) at /usr/src/debug/digikam-2.2.0/core/libs/widgets/itemview/imagedelegateoverlay.cpp:577
Comment 9 caulier.gilles 2012-06-22 08:53:19 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 10 caulier.gilles 2014-05-16 07:30:41 UTC
digiKam 4.0.0 is out :

http://www.digikam.org/node/713

Please check if this entry still valid with this new version.

Thanks in advance

Gilles Caulier
Comment 11 caulier.gilles 2014-06-11 21:31:15 UTC
With next digiKam 4.1.0, i fixed libkface to handle all C++ exception (and not only OpenCV exception).

So, at least, digiKam must crash lesser now. If you want to review this entry again, use current implementation from git/master, or wait next 4.1.0 release...

Thanks to update your feedback

Gilles Caulier
Comment 12 caulier.gilles 2014-06-11 21:40:22 UTC
Git commit fa909aa96e7e41225551cd9e866618717f1ea546 by Gilles Caulier.
Committed on 11/06/2014 at 21:06.
Pushed by cgilles into branch 'master'.

use a better C++ exception wrapper to handle non OpenCV exceptions (as pure C++ one)
Related: bug 335624, bug 330342, bug 329873, bug 326742, bug 326586, bug 326585, bug 324774, bug 323888, bug 323361, bug 320812, bug 312440, bug 309027, bug 308645, bug 301611, bug 297558

M  +4    -0    libkface/facedetector.cpp
M  +17   -2    libkface/recognitiondatabase.cpp

http://commits.kde.org/libkface/fa909aa96e7e41225551cd9e866618717f1ea546
Comment 13 caulier.gilles 2014-06-18 14:40:26 UTC
Git commit 4662dd94102f8144bc65ce1cb66d6b6cb1d500fd by Gilles Caulier.
Committed on 18/06/2014 at 14:22.
Pushed by cgilles into branch 'master'.

Libkface now depand of last stable OpenCV library version 2.4.9
This prevent internal crash int Cv:Algorithm that we cannot handle in libkface as exception.
Now, Face Recognition do not crash but still report Exception at training operations, especially about wrong Cv:Matrix size :

digikam(8673)/digikam (core) Digikam::DImg::load:"/mnt/data2/photos/GILLES/NEW/Adrien/2010-04-13/20100413_009.jpg"  :
JPEG file identified
OpenCV Error: Assertion failed (0 <= _dims && _dims <= CV_MAX_DIM) in setSize, file /mnt/devel/opencv/modules/core/src/matrix.cpp, line 89
digikam(8673)/KFACE: cv::Exception training LBPH: /mnt/devel/opencv/modules/core/src/matrix.cpp:89: error: (-215) 0 <=_dims && _dims <= CV_MAX_DIM in function setSize

It still a problem somwhere, but it's better than previous state.
Related: bug 335624, bug 330342, bug 329873, bug 326742, bug 326586, bug 326585, bug 324774, bug 323888, bug 323361, bug 320812, bug 312440, bug 309027, bug 308645, bug 301611, bug 297558

M  +1    -1    CMakeLists.txt

http://commits.kde.org/libkface/4662dd94102f8144bc65ce1cb66d6b6cb1d500fd
Comment 14 caulier.gilles 2014-06-24 13:10:23 UTC
Git commit 1fff86f31e3bf47a2a2cfa6eaa98bb1bdf1a863b by Gilles Caulier.
Committed on 24/06/2014 at 12:32.
Pushed by cgilles into branch 'master'.

add more test before to commit/checkout compressed histogram data in Face database, to prevent crashes, especially if data are corrupted from database.
Related: bug 335624, bug 330342, bug 329873, bug 326742, bug 326586, bug 326585, bug 324774, bug 323888, bug 320812, bug 312440, bug 309027, bug 308645, bug 301611, bug 297558

M  +62   -28   libkface/database/trainingdb.cpp

http://commits.kde.org/libkface/1fff86f31e3bf47a2a2cfa6eaa98bb1bdf1a863b
Comment 15 caulier.gilles 2014-06-24 13:38:20 UTC

*** This bug has been marked as a duplicate of bug 297558 ***
Comment 16 caulier.gilles 2019-12-23 06:22:18 UTC
Problem is fixed with new 7.0.0-beta1 through this long story from this bug

https://bugs.kde.org/show_bug.cgi?id=399923

You can test digiKam 7.0.0-beta1 with bundle available here:

https://download.kde.org/unstable/digikam/

Don't hesitate to give us a fresh feedback about his entry.

Thanks in advance

Gilles Caulier