[Digikam-devel] [digikam] [Bug 317413] digiKam crashed while tagging faces

Michal Sylwester msylwester at gmail.com
Fri Jan 10 07:37:25 GMT 2014


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

--- Comment #15 from Michal Sylwester <msylwester at gmail.com> ---
I tried to find out more (this problem makes face tagging unusable for me...),
and I'm just more confused now. But perhaps someone can make something out of
this...

I tried to use a combination of kDebug() and attaching gdb to the "hungry"
digikam process to try to figure where exactly it's getting stuck. I've got a
backtrace that is rather different from any posted here in the bug reports.
Unfortunately I wasn't able to get DrKonqui generate another report for me this
time.

Backtrace from the stuck thread:
#0  0x00007f200194a322 in ___printf_fp (fp=fp at entry=0x7f1f9dff8d30,
info=info at entry=0x7f1f9dff7dd0, args=args at entry=0x7f1f9dff8840) at
printf_fp.c:1220
#1  0x00007f200194669c in _IO_vfprintf_internal (s=s at entry=0x7f1f9dff8d30,
format=<optimized out>, format at entry=0x7f1fff43c51d "%.8e",
ap=ap at entry=0x7f1f9dff8e58) at vfprintf.c:2034
#2  0x00007f2001a0a544 in ___vsprintf_chk (s=0x7f1f9dff93f0 "0.", flags=1,
slen=256, format=0x7f1fff43c51d "%.8e", args=args at entry=0x7f1f9dff8e58) at
vsprintf_chk.c:84
#3  0x00007f2001a0a48d in ___sprintf_chk (s=<optimized out>, flags=<optimized
out>, slen=<optimized out>, format=<optimized out>) at sprintf_chk.c:32
#4  0x00007f1fff3f0fec in cvWriteRawData () from /usr/lib/libopencv_core.so.2.4
#5  0x00007f1fff3f1b91 in ?? () from /usr/lib/libopencv_core.so.2.4
#6  0x00007f1fff3e5576 in cvWrite () from /usr/lib/libopencv_core.so.2.4
#7  0x00007f1fff3e5dc4 in cv::write(cv::FileStorage&, std::string const&,
cv::Mat const&) () from /usr/lib/libopencv_core.so.2.4
#8  0x00007f200649a8e2 in ?? () from /usr/lib/libkface.so.2
#9  0x00007f20064cdedc in ?? () from /usr/lib/libkface.so.2
#10 0x00007f200649cefe in ?? () from /usr/lib/libkface.so.2
#11 0x00007f20064b6633 in
KFaceIface::RecognitionDatabase::Private::train(KFaceIface::OpenCVLBPHFaceRecognizer*,
QList<KFaceIface::Identity> const&, KFaceIface::TrainingDataProvider*, QString
const&) ()
   from /usr/lib/libkface.so.2
#12 0x00007f20064b6a75 in
KFaceIface::RecognitionDatabase::train(QList<KFaceIface::Identity> const&,
KFaceIface::TrainingDataProvider*, QString const&) () from
/usr/lib/libkface.so.2
#13 0x00000000006d348e in Digikam::Trainer::process (this=0x34c79d0,
package=...) at
/build/buildd/digikam-3.5.0/core/utilities/facemanagement/facepipeline.cpp:974
#14 0x00000000006d3911 in Digikam::Trainer::qt_static_metacall (_o=<optimized
out>, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>)
    at
/build/buildd/digikam-3.5.0/obj-x86_64-linux-gnu/core/digikam/facepipeline_p.moc:580
#15 0x00007f20028eddce in QObject::event (this=0x34c79d0, e=<optimized out>) at
kernel/qobject.cpp:1194
#16 0x00007f20032c6dfc in QApplicationPrivate::notify_helper
(this=this at entry=0x2c97020, receiver=receiver at entry=0x34c79d0,
e=e at entry=0x7f1fc40035d0) at kernel/qapplication.cpp:4567
#17 0x00007f20032cd470 in QApplication::notify (this=this at entry=0x7fff46330be0,
receiver=receiver at entry=0x34c79d0, e=e at entry=0x7f1fc40035d0) at
kernel/qapplication.cpp:4353
#18 0x00007f2003fd0c6a in KApplication::notify (this=0x7fff46330be0,
receiver=0x34c79d0, event=0x7f1fc40035d0) at
../../kdeui/kernel/kapplication.cpp:311
#19 0x00007f20028d58bd in QCoreApplication::notifyInternal
(this=0x7fff46330be0, receiver=receiver at entry=0x34c79d0,
event=event at entry=0x7f1fc40035d0) at kernel/qcoreapplication.cpp:946
#20 0x00007f20028d8e1f in sendEvent (event=0x7f1fc40035d0, receiver=0x34c79d0)
at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231
#21 QCoreApplicationPrivate::sendPostedEvents (receiver=receiver at entry=0x0,
event_type=event_type at entry=0, data=0x4e8b1c0) at
kernel/qcoreapplication.cpp:1570
#22 0x00007f20028d92c3 in QCoreApplication::sendPostedEvents
(receiver=receiver at entry=0x0, event_type=event_type at entry=0) at
kernel/qcoreapplication.cpp:1463
#23 0x00007f2002903073 in sendPostedEvents () at
../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:236
#24 postEventSourceDispatch (s=0x7f1fd4007e60) at
kernel/qeventdispatcher_glib.cpp:279
#25 0x00007f1ffa3133b6 in g_main_context_dispatch () from
/lib/x86_64-linux-gnu/libglib-2.0.so.0
#26 0x00007f1ffa313708 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#27 0x00007f1ffa3137ac in g_main_context_iteration () from
/lib/x86_64-linux-gnu/libglib-2.0.so.0
#28 0x00007f2002902a76 in QEventDispatcherGlib::processEvents
(this=0x7f1fd4043290, flags=...) at kernel/qeventdispatcher_glib.cpp:426
#29 0x00007f20028d45ef in QEventLoop::processEvents
(this=this at entry=0x7f1f9dffaa40, flags=...) at kernel/qeventloop.cpp:149
#30 0x00007f20028d48e5 in QEventLoop::exec (this=this at entry=0x7f1f9dffaa40,
flags=...) at kernel/qeventloop.cpp:204
#31 0x00007f200564f073 in Digikam::WorkerObjectRunnable::run (this=0x12b730c0)
at /build/buildd/digikam-3.5.0/core/libs/threads/threadmanager.cpp:196
#32 0x00007f20027c97ae in QThreadPoolThread::run (this=0x4e8b020) at
concurrent/qthreadpool.cpp:107
#33 0x00007f20027d5f2f in QThreadPrivate::start (arg=0x4e8b020) at
thread/qthread_unix.cpp:338
#34 0x00007f1ffcd40f6e in start_thread (arg=0x7f1f9dffb700) at
pthread_create.c:311
#35 0x00007f20019f49cd in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:113

Some more playing around indicated that most likely cvWriteRawData (#4) never
exits. This could indicate wrong usage or bug in opencv. 

If someone would like to reproduce this, here is what I did:
1. Disable swap: swapoff -a  (this gives less time to start gdb before digikam
is killed by kernel, but system won't get unresponsive, may be good to wait a
little afterwards for system to stabilize)
2. Start Digikam
3. Tag some face from "Unknowns"
4. Use htop to figure out the cpu eating digikam pids (I had 2) 
5. Attach gdb to one of them: gdb --pid=12345 (had to run this as root)
6. Show backtrace: bt
7. Bonus: try to find on which function digikam is stuck: next many times until
it won't get back to prompt anymore

That's all I know, hope this helps someone...

-- 
You are receiving this mail because:
You are the assignee for the bug.



More information about the Digikam-devel mailing list