Bug 261779 - Digicam crashes in Digikam::DynamicThread::DynamicThreadPriv::transitionToRunning while scanning faces
Summary: Digicam crashes in Digikam::DynamicThread::DynamicThreadPriv::transitionToRun...
Status: RESOLVED FIXED
Alias: None
Product: digikam
Classification: Applications
Component: Faces-Engine (show other bugs)
Version: 2.0.0
Platform: Compiled Sources Linux
: NOR crash
Target Milestone: ---
Assignee: Digikam Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-01-01 12:51 UTC by rene
Modified: 2012-06-27 10:29 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In: 2.0.0
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description rene 2011-01-01 12:51:12 UTC
Version:           2.0.0 (using KDE 4.4.5) 
OS:                Linux

running the latest version of 2.0.0 compiled from subversion.

from about digikam:
digiKam
Version 2.0.0-beta1 (rev.: 1209972)
Unter KDE 4.5.1 (KDE 4.5.1)
Build date: Jan 1 2011 (target: debugfull)

System: Ubuntu 10.10


Reproducible: Always

Steps to Reproduce:
* start digikam
* switch to people
* select scan collection for faces
* ok
* wait till digikam crashes

Actual Results:  
Scanning starts and proceeds for a few minutes, than digikam crashes

backtrace generated using gdb:

digikam(31988)/digikam (core) Digikam::DImg::load: "/home/myhome/Eigene Dateien/Eigene Bilder/2003/2003_04_27/103_0306.AVI"  : QIMAGE file identified
digikam(31988)/digikam (core) Digikam::QImageLoader::load: Can not load " "/home/myhome/Eigene Dateien/Eigene Bilder/2003/2003_04_27/103_0306.AVI" " using DImg::QImageLoader!
digikam(31988)/digikam (core) Digikam::PreviewLoadingTask::execute: Cannot extract preview for  "/home/myhome/Eigene Dateien/Eigene Bilder/2003/2003_04_27/103_0306.AVI" 
digikam(31988)/KEXIV2 KExiv2Iface::KExiv2::KExiv2Priv::printExiv2ExceptionError: Cannot load metadata using Exiv2   (Error # 11 :  /home/myhome/Eigene Dateien/Eigene Bilder/2003/2003_04_27/103_0306.AVI: Die Datei enthält Daten eines unbekannten Bildtyps.
digikam(31988)/digikam (core) Digikam::FacePipeline::FacePipelinePriv::checkFinished: Check for finish:  13 packages, 0 infos to filter, hasFinished() false
digikam(31988)/digikam (core) Digikam::DynamicThread::DynamicThreadPriv::transitionToRunning: Transition to Running: Invalid Running state Digikam::PreviewLoader(0xabbe460)
pure virtual method called
terminate called without an active exception

Program received signal SIGABRT, Aborted.
[Switching to Thread 0x98830b70 (LWP 515)]
0x0012e416 in __kernel_vsyscall ()
(gdb) bt
#0  0x0012e416 in __kernel_vsyscall ()
#1  0x036b1941 in raise (sig=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#2  0x036b4e42 in abort () at abort.c:92
#3  0x03608055 in __gnu_cxx::__verbose_terminate_handler() () from /usr/lib/libstdc++.so.6
#4  0x03605f35 in ?? () from /usr/lib/libstdc++.so.6
#5  0x03605f72 in std::terminate() () from /usr/lib/libstdc++.so.6
#6  0x03606b85 in __cxa_pure_virtual () from /usr/lib/libstdc++.so.6
#7  0x013fd1bf in Digikam::LoadingCache::notifyNewLoadingProcess (this=0xb35035e0, process=0xabacd54, description=...)
    at /home/myhome/Development/digikam-2.0/digikam/digikam/core/libs/threadimageio/loadingcache.cpp:174
#8  0x0140746d in Digikam::PreviewLoadingTask::execute (this=0xabacc10) at /home/myhome/Development/digikam-2.0/digikam/digikam/core/libs/threadimageio/previewtask.cpp:171
#9  0x013f629a in Digikam::LoadSaveThread::run (this=0xabbe460) at /home/myhome/Development/digikam-2.0/digikam/digikam/core/libs/threadimageio/loadsavethread.cpp:124
#10 0x0143c6a5 in Digikam::DynamicThread::DynamicThreadPriv::run (this=0xabbe500) at /home/myhome/Development/digikam-2.0/digikam/digikam/core/libs/threads/dynamicthread.cpp:306
#11 0x03022523 in QThreadPoolThread::run (this=0xb350d670) at concurrent/qthreadpool.cpp:106
#12 0x0302ddf9 in QThreadPrivate::start (arg=0xb350d670) at thread/qthread_unix.cpp:266
#13 0x03269cc9 in start_thread (arg=0x98830b70) at pthread_create.c:304
#14 0x0375769e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130


Expected Results:  
Collection will be scanned for faces
Comment 1 Marcel Wiesweg 2011-01-01 16:09:34 UTC
Does this always happen after the failed loading of the .AVI file I see in the logs, or is this coincidence?
Comment 2 Marcel Wiesweg 2011-01-01 16:36:21 UTC
SVN commit 1210643 by mwiesweg:

Try to strictly avoid requesting more than one thread from the pool.
This seems to be possible with a fast start+stop+start sequence.

CCBUG: 261779


 M  +19 -1     dynamicthread.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1210643
Comment 3 rene 2011-01-01 17:10:26 UTC
as far as I can see, all produced crashes had a message about failed AVI file in the log.
Comment 4 Andrew Coles 2011-01-22 18:38:57 UTC
This looks like it has the same cause as https://bugs.kde.org/show_bug.cgi?id=263272 - a race-condition affecting DynamicThreads, giving the symptom of a 'pure virtual method' function.  This has now been fixed.

Rene - could you try the latest SVN version and see if it fixes this bug too?
Comment 5 rene 2011-01-25 08:37:12 UTC
Hi,

now digikam happily scans for faces ;-)