[Digikam-devel] [Bug 263272] Face Detection crashes on folders containing videos

Andrew Coles andrew_coles at yahoo.co.uk
Sun Jan 16 22:37:01 GMT 2011


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





--- Comment #3 from Andrew Coles <andrew_coles yahoo co uk>  2011-01-16 23:36:58 ---
Okay I have a set of photos and videos which trigger the crash every time, so
I've been able to do some more testing.

1) If I run digikam as-is, it crashes part-way through face-recognition,
printing out:

pure virtual method called
terminate called without an active exception
Unable to start Dr. Konqi

2) If I run it through gdb, it gives the backtrace I gave when reporting the
bug.

3) If I run it through valgrind, I get the output at the bottom of this
comment.

If there's anything else that would be helpful, let me know.

==3498== Thread 18:
==3498== Invalid read of size 4
==3498==    at 0x532ECD9:
Digikam::LoadingCache::notifyNewLoadingProcess(Digikam::LoadingProcess*,
Digikam::LoadingDescription) (loadingcache.cpp:171)
==3498==    by 0x53394AC: Digikam::PreviewLoadingTask::execute()
(previewtask.cpp:171)
==3498==    by 0x5320BD2: Digikam::LoadSaveThread::run()
(loadsavethread.cpp:116)
==3498==    by 0x536E8ED: Digikam::DynamicThread::DynamicThreadPriv::run()
(dynamicthread.cpp:324)
==3498==    by 0x70B0522: QThreadPoolThread::run() (qthreadpool.cpp:106)
==3498==    by 0x70BBDF8: QThreadPrivate::start(void*) (qthread_unix.cpp:266)
==3498==    by 0x92D4CC8: start_thread (pthread_create.c:304)
==3498==    by 0x766269D: clone (clone.S:130)
==3498==  Address 0x27eaa4c0 is 344 bytes inside a block of size 700 free'd
==3498==    at 0x4025504: operator delete(void*) (vg_replace_malloc.c:387)
==3498==    by 0x533A768: Digikam::PreviewLoadingTask::~PreviewLoadingTask()
(previewtask.h:40)
==3498==    by 0x5320B0E: Digikam::LoadSaveThread::run()
(loadsavethread.cpp:94)
==3498==    by 0x536E8ED: Digikam::DynamicThread::DynamicThreadPriv::run()
(dynamicthread.cpp:324)
==3498==    by 0x70B0522: QThreadPoolThread::run() (qthreadpool.cpp:106)
==3498==    by 0x70BBDF8: QThreadPrivate::start(void*) (qthread_unix.cpp:266)
==3498==    by 0x92D4CC8: start_thread (pthread_create.c:304)
==3498==    by 0x766269D: clone (clone.S:130)
==3498== 
pure virtual method called
==3498== Thread 16:
==3498== Invalid read of size 1
==3498==    at 0x5338B23: Digikam::PreviewLoadingTask::execute()
(previewtask.cpp:219)
==3498==    by 0x5320BD2: Digikam::LoadSaveThread::run()
(loadsavethread.cpp:116)
==3498==    by 0x536E8ED: Digikam::DynamicThread::DynamicThreadPriv::run()
(dynamicthread.cpp:324)
==3498==    by 0x70B0522: QThreadPoolThread::run() (qthreadpool.cpp:106)
==3498==    by 0x70BBDF8: QThreadPrivate::start(void*) (qthread_unix.cpp:266)
==3498==    by 0x92D4CC8: start_thread (pthread_create.c:304)
==3498==    by 0x766269D: clone (clone.S:130)
==3498==  Address 0x27eaa49c is 308 bytes inside a block of size 700 free'd
==3498==    at 0x4025504: operator delete(void*) (vg_replace_malloc.c:387)
==3498==    by 0x533A768: Digikam::PreviewLoadingTask::~PreviewLoadingTask()
(previewtask.h:40)
==3498==    by 0x5320B0E: Digikam::LoadSaveThread::run()
(loadsavethread.cpp:94)
==3498==    by 0x536E8ED: Digikam::DynamicThread::DynamicThreadPriv::run()
(dynamicthread.cpp:324)
==3498==    by 0x70B0522: QThreadPoolThread::run() (qthreadpool.cpp:106)
==3498==    by 0x70BBDF8: QThreadPrivate::start(void*) (qthread_unix.cpp:266)
==3498==    by 0x92D4CC8: start_thread (pthread_create.c:304)
==3498==    by 0x766269D: clone (clone.S:130)
==3498== 
==3498== Invalid read of size 4
==3498==    at 0x53399DB: Digikam::PreviewLoadingTask::execute()
(previewtask.cpp:247)
==3498==    by 0x5320BD2: Digikam::LoadSaveThread::run()
(loadsavethread.cpp:116)
==3498==    by 0x536E8ED: Digikam::DynamicThread::DynamicThreadPriv::run()
(dynamicthread.cpp:324)
==3498==    by 0x70B0522: QThreadPoolThread::run() (qthreadpool.cpp:106)
==3498==    by 0x70BBDF8: QThreadPrivate::start(void*) (qthread_unix.cpp:266)
==3498==    by 0x92D4CC8: start_thread (pthread_create.c:304)
==3498==    by 0x766269D: clone (clone.S:130)
==3498==  Address 0x27eaa368 is 0 bytes inside a block of size 700 free'd
==3498==    at 0x4025504: operator delete(void*) (vg_replace_malloc.c:387)
==3498==    by 0x533A768: Digikam::PreviewLoadingTask::~PreviewLoadingTask()
(previewtask.h:40)
==3498==    by 0x5320B0E: Digikam::LoadSaveThread::run()
(loadsavethread.cpp:94)
==3498==    by 0x536E8ED: Digikam::DynamicThread::DynamicThreadPriv::run()
(dynamicthread.cpp:324)
==3498==    by 0x70B0522: QThreadPoolThread::run() (qthreadpool.cpp:106)
==3498==    by 0x70BBDF8: QThreadPrivate::start(void*) (qthread_unix.cpp:266)
==3498==    by 0x92D4CC8: start_thread (pthread_create.c:304)
==3498==    by 0x766269D: clone (clone.S:130)
==3498== 
==3498== Invalid read of size 4
==3498==    at 0x54CD68B: ??? (in
/home/amanda/tools/lib/libdigikamcore.so.2.0.0)
==3498==    by 0x5320BD2: Digikam::LoadSaveThread::run()
(loadsavethread.cpp:116)
==3498==    by 0x536E8ED: Digikam::DynamicThread::DynamicThreadPriv::run()
(dynamicthread.cpp:324)
==3498==    by 0x70B0522: QThreadPoolThread::run() (qthreadpool.cpp:106)
==3498==    by 0x70BBDF8: QThreadPrivate::start(void*) (qthread_unix.cpp:266)
==3498==    by 0x92D4CC8: start_thread (pthread_create.c:304)
==3498==    by 0x766269D: clone (clone.S:130)
==3498==  Address 0x68 is not stack'd, malloc'd or (recently) free'd
==3498== 
KCrash: Application 'digikam' crashing...
KCrash: Attempting to start /usr/lib/kde4/libexec/drkonqi from kdeinit
digikam: Fatal IO error: client killed
QSocketNotifier: Invalid socket 17 and type 'Read', disabling...
terminate called without an active exception
sock_file=/home/amanda/.kde/socket-AmandaVaio/kdeinit4__0
==3498== Thread 3:
==3498== Invalid read of size 2
==3498==    at 0x71ECA05: socketNotifierSourceCheck(_GSource*)
(qeventdispatcher_glib.cpp:92)
==3498==    by 0x941FB38: g_main_context_check (in
/lib/libglib-2.0.so.0.2600.1)
==3498==    by 0x942045D: ??? (in /lib/libglib-2.0.so.0.2600.1)
==3498==    by 0x9420847: g_main_context_iteration (in
/lib/libglib-2.0.so.0.2600.1)
==3498==    by 0x71EC564:
QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
(qeventdispatcher_glib.cpp:415)
==3498==    by 0x71BC608:
QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
(qeventloop.cpp:149)
==3498==    by 0x71BCA89:
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (qeventloop.cpp:201)
==3498==    by 0x70B8B7D: QThread::exec() (qthread.cpp:490)
==3498==    by 0x719B35A: QInotifyFileSystemWatcherEngine::run()
(qfilesystemwatcher_inotify.cpp:248)
==3498==    by 0x70BBDF8: QThreadPrivate::start(void*) (qthread_unix.cpp:266)
==3498==    by 0x92D4CC8: start_thread (pthread_create.c:304)
==3498==    by 0x766269D: clone (clone.S:130)
==3498==  Address 0xe4dda6e is 6 bytes inside a block of size 12 free'd
==3498==    at 0x4025504: operator delete(void*) (vg_replace_malloc.c:387)
==3498==    by 0x71ED0B4:
QEventDispatcherGlib::unregisterSocketNotifier(QSocketNotifier*)
(qeventdispatcher_glib.cpp:496)
==3498==    by 0x71DB1D9: QSocketNotifier::setEnabled(bool)
(qsocketnotifier.cpp:298)
==3498==    by 0x71ECA01: socketNotifierSourceCheck(_GSource*)
(qeventdispatcher_glib.cpp:92)
==3498==    by 0x941FB38: g_main_context_check (in
/lib/libglib-2.0.so.0.2600.1)
==3498==    by 0x942045D: ??? (in /lib/libglib-2.0.so.0.2600.1)
==3498==    by 0x9420847: g_main_context_iteration (in
/lib/libglib-2.0.so.0.2600.1)
==3498==    by 0x71EC564:
QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
(qeventdispatcher_glib.cpp:415)
==3498==    by 0x71BC608:
QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
(qeventloop.cpp:149)
==3498==    by 0x71BCA89:
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (qeventloop.cpp:201)
==3498==    by 0x70B8B7D: QThread::exec() (qthread.cpp:490)
==3498==    by 0x719B35A: QInotifyFileSystemWatcherEngine::run()
(qfilesystemwatcher_inotify.cpp:248)
==3498== 
==3498== Invalid read of size 2
==3498==    at 0x71ECA09: socketNotifierSourceCheck(_GSource*)
(qeventdispatcher_glib.cpp:83)
==3498==    by 0x941FB38: g_main_context_check (in
/lib/libglib-2.0.so.0.2600.1)
==3498==    by 0x942045D: ??? (in /lib/libglib-2.0.so.0.2600.1)
==3498==    by 0x9420847: g_main_context_iteration (in
/lib/libglib-2.0.so.0.2600.1)
==3498==    by 0x71EC564:
QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
(qeventdispatcher_glib.cpp:415)
==3498==    by 0x71BC608:
QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
(qeventloop.cpp:149)
==3498==    by 0x71BCA89:
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (qeventloop.cpp:201)
==3498==    by 0x70B8B7D: QThread::exec() (qthread.cpp:490)
==3498==    by 0x719B35A: QInotifyFileSystemWatcherEngine::run()
(qfilesystemwatcher_inotify.cpp:248)
==3498==    by 0x70BBDF8: QThreadPrivate::start(void*) (qthread_unix.cpp:266)
==3498==    by 0x92D4CC8: start_thread (pthread_create.c:304)
==3498==    by 0x766269D: clone (clone.S:130)
==3498==  Address 0xe4dda6c is 4 bytes inside a block of size 12 free'd
==3498==    at 0x4025504: operator delete(void*) (vg_replace_malloc.c:387)
==3498==    by 0x71ED0B4:
QEventDispatcherGlib::unregisterSocketNotifier(QSocketNotifier*)
(qeventdispatcher_glib.cpp:496)
==3498==    by 0x71DB1D9: QSocketNotifier::setEnabled(bool)
(qsocketnotifier.cpp:298)
==3498==    by 0x71ECA01: socketNotifierSourceCheck(_GSource*)
(qeventdispatcher_glib.cpp:92)
==3498==    by 0x941FB38: g_main_context_check (in
/lib/libglib-2.0.so.0.2600.1)
==3498==    by 0x942045D: ??? (in /lib/libglib-2.0.so.0.2600.1)
==3498==    by 0x9420847: g_main_context_iteration (in
/lib/libglib-2.0.so.0.2600.1)
==3498==    by 0x71EC564:
QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
(qeventdispatcher_glib.cpp:415)
==3498==    by 0x71BC608:
QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
(qeventloop.cpp:149)
==3498==    by 0x71BCA89:
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (qeventloop.cpp:201)
==3498==    by 0x70B8B7D: QThread::exec() (qthread.cpp:490)
==3498==    by 0x719B35A: QInotifyFileSystemWatcherEngine::run()
(qfilesystemwatcher_inotify.cpp:248)
==3498== 
QSocketNotifier: Invalid socket 30 and type 'Read', disabling...
Unable to start Dr. Konqi

-- 
Configure bugmail: https://bugs.kde.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the Digikam-devel mailing list