Bug 326959

Summary: Digikam crash while scanning pictures for thumnails maintenance
Product: [Applications] digikam Reporter: e.longuemare
Component: Maintenance-ThumbsAssignee: Digikam Developers <digikam-bugs-null>
Status: RESOLVED FIXED    
Severity: crash CC: bugs.kde.org, caulier.gilles, julien.t43+kde, lukas.karas, marcel.wiesweg, mvpereira
Priority: NOR Keywords: drkonqi
Version: 4.0.0   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Linux   
Latest Commit: Version Fixed In: 4.0.0
Sentry Crash Report:
Attachments: bootstrap-eclipse.local for building digikam in out-of-source to local dev dir for eclipse kepler C++ 4.3
starting script for launching digikam in local dev folder for testing, debugging ..
starting script for launching digikam in local dev folder with GDB for testing, debugging ..
diff between old digikamrc and new one
diff between old digikamrc and new one
gdb trace log
New crash information added by DrKonqi

Description e.longuemare 2013-10-31 19:41:04 UTC
Application: digikam (4.0.0-beta1)
KDE Platform Version: 4.11.2 (Compiled from sources)
Qt Version: 4.8.2
Operating System: Linux 3.2.0-55-generic i686
Distribution: Ubuntu 12.04.3 LTS

-- Information about the crash:
- What I was doing when the application crashed:
look at pictures while thumbnail maintenance (all collection)

-- Backtrace:
Application: digiKam (digikam), signal: Aborted
Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1".
[Current thread is 1 (Thread 0xb5141780 (LWP 29444))]

Thread 6 (Thread 0xb2d8ab40 (LWP 29445)):
#0  0x008e7416 in __kernel_vsyscall ()
#1  0x00f7e96b in pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_wait.S:169
#2  0x077546ec in __pthread_cond_wait (cond=0x9f3c078, mutex=0x9f3c060) at forward.c:139
#3  0x02c26420 in wait (time=4294967295, this=0x9f3c060) at thread/qwaitcondition_unix.cpp:86
#4  QWaitCondition::wait (this=0x9f3bfd4, mutex=0x9f3bfd0, time=4294967295) at thread/qwaitcondition_unix.cpp:158
#5  0x0820b3e6 in Digikam::ScanController::run (this=0x9f34290) at /home/eric/digikamgit2/dkgitdigikamsoftwarecompilation/core/digikam/database/scancontroller.cpp:725
#6  0x02c25eb0 in QThreadPrivate::start (arg=0x9f34290) at thread/qthread_unix.cpp:307
#7  0x00f7ad4c in start_thread (arg=0xb2d8ab40) at pthread_create.c:308
#8  0x07746dde in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 5 (Thread 0xb23ffb40 (LWP 29446)):
#0  0x008e7416 in __kernel_vsyscall ()
#1  0x07738690 in __GI___poll (fds=0xb1a02178, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:87
#2  0x03b3ca3b in g_poll () from /lib/i386-linux-gnu/libglib-2.0.so.0
#3  0x03b2f06e in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#4  0x03b2f1c1 in g_main_context_iteration () from /lib/i386-linux-gnu/libglib-2.0.so.0
#5  0x02d6dde7 in QEventDispatcherGlib::processEvents (this=0xb1a00468, flags=...) at kernel/qeventdispatcher_glib.cpp:426
#6  0x02d396ad in QEventLoop::processEvents (this=0xb23ff200, flags=...) at kernel/qeventloop.cpp:149
#7  0x02d39949 in QEventLoop::exec (this=0xb23ff200, flags=...) at kernel/qeventloop.cpp:204
#8  0x02c22a1c in QThread::exec (this=0x9f4fab0) at thread/qthread.cpp:501
#9  0x02d16cfd in QInotifyFileSystemWatcherEngine::run (this=0x9f4fab0) at io/qfilesystemwatcher_inotify.cpp:248
#10 0x02c25eb0 in QThreadPrivate::start (arg=0x9f4fab0) at thread/qthread_unix.cpp:307
#11 0x00f7ad4c in start_thread (arg=0xb23ffb40) at pthread_create.c:308
#12 0x07746dde in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 4 (Thread 0xb19ffb40 (LWP 29450)):
#0  0x008e7416 in __kernel_vsyscall ()
#1  0x00f7e96b in pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_wait.S:169
#2  0x077546ec in __pthread_cond_wait (cond=0xa0c8e08, mutex=0xa0c8df0) at forward.c:139
#3  0x02c26420 in wait (time=4294967295, this=0xa0c8df0) at thread/qwaitcondition_unix.cpp:86
#4  QWaitCondition::wait (this=0xa0ca498, mutex=0xa0ca494, time=4294967295) at thread/qwaitcondition_unix.cpp:158
#5  0x012e3da8 in Digikam::ParkingThread::run (this=0xa0ca488) at /home/eric/digikamgit2/dkgitdigikamsoftwarecompilation/core/libs/threads/threadmanager.cpp:119
#6  0x02c25eb0 in QThreadPrivate::start (arg=0xa0ca488) at thread/qthread_unix.cpp:307
#7  0x00f7ad4c in start_thread (arg=0xb19ffb40) at pthread_create.c:308
#8  0x07746dde in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 3 (Thread 0xa4711b40 (LWP 29540)):
#0  0x008e7416 in __kernel_vsyscall ()
#1  0x00f7e96b in pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_wait.S:169
#2  0x077546ec in __pthread_cond_wait (cond=0xeb2cc80, mutex=0xeb2cc68) at forward.c:139
#3  0x02c26420 in wait (time=4294967295, this=0xeb2cc68) at thread/qwaitcondition_unix.cpp:86
#4  QWaitCondition::wait (this=0xe936e04, mutex=0xe936e08, time=4294967295) at thread/qwaitcondition_unix.cpp:158
#5  0x00d7e4c5 in KDcrawIface::RActionThreadBase::run (this=0xa6cb6e0) at /home/eric/digikamgit2/dkgitdigikamsoftwarecompilation/extra/libkdcraw/libkdcraw/ractionthreadbase.cpp:138
#6  0x02c25eb0 in QThreadPrivate::start (arg=0xa6cb6e0) at thread/qthread_unix.cpp:307
#7  0x00f7ad4c in start_thread (arg=0xa4711b40) at pthread_create.c:308
#8  0x07746dde in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 2 (Thread 0xa6f16b40 (LWP 29541)):
[KCrash Handler]
#7  0x008e7416 in __kernel_vsyscall ()
#8  0x076861df in __GI_raise (sig=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#9  0x07689825 in __GI_abort () at abort.c:91
#10 0x0767f085 in __assert_fail_base (fmt=0xb3d9c764 "%s%s%s\302\240:%u\302\240:\302\240%s%s l'assertion \302\253\302\240%s\302\240\302\273 a \303\251chou\303\251.\n%n", assertion=0x98fafdd "!xcb_xlib_unknown_req_in_deq", file=0x98fafca "../../src/xcb_io.c", line=179, function=0x98fb0a0 "dequeue_pending_request") at assert.c:94
#11 0x0767f137 in __GI___assert_fail (assertion=0x98fafdd "!xcb_xlib_unknown_req_in_deq", file=0x98fafca "../../src/xcb_io.c", line=179, function=0x98fb0a0 "dequeue_pending_request") at assert.c:103
#12 0x098824c6 in ?? () from /usr/lib/i386-linux-gnu/libX11.so.6
#13 0x0988378f in _XReply () from /usr/lib/i386-linux-gnu/libX11.so.6
#14 0x098793c4 in XQueryTree () from /usr/lib/i386-linux-gnu/libX11.so.6
#15 0x01783203 in QWidgetPrivate::updateFrameStrut (this=0x9fd7480) at kernel/qwidget_x11.cpp:2942
#16 0x0172a86e in QWidgetPrivate::frameStrut (this=0x9fd7480) at kernel/qwidget.cpp:12038
#17 0x0172b2e0 in QWidget::frameGeometry (this=0x9f93af8) at kernel/qwidget.cpp:3534
#18 0x0177bfb8 in QDesktopWidget::screenNumber (this=0x9eb8040, widget=0x9f93af8) at kernel/qdesktopwidget_x11.cpp:393
#19 0x011a12fd in Digikam::IccSettings::Private::profileFromWindowSystem (this=0x9f9b548, widget=0x9f93af8) at /home/eric/digikamgit2/dkgitdigikamsoftwarecompilation/core/libs/dimg/filters/icc/iccsettings.cpp:204
#20 0x011a0efd in Digikam::IccSettings::monitorProfile (this=0xa021628, widget=0x9f93af8) at /home/eric/digikamgit2/dkgitdigikamsoftwarecompilation/core/libs/dimg/filters/icc/iccsettings.cpp:134
#21 0x01195f7a in Digikam::IccManager::displayProfile (displayingWidget=0x9f93af8) at /home/eric/digikamgit2/dkgitdigikamsoftwarecompilation/core/libs/dimg/filters/icc/iccmanager.cpp:385
#22 0x012c81cb in Digikam::ThumbnailLoadThread::Private::createLoadingDescription (this=0x130ed570, filePath=..., size=254, setLastDescription=true) at /home/eric/digikamgit2/dkgitdigikamsoftwarecompilation/core/libs/threadimageio/thumbnailloadthread.cpp:335
#23 0x012c8944 in Digikam::ThumbnailLoadThread::find (this=0x130ed280, filePath=..., size=256, retPixmap=0x0, emitSignal=true, detailRect=...) at /home/eric/digikamgit2/dkgitdigikamsoftwarecompilation/core/libs/threadimageio/thumbnailloadthread.cpp:454
#24 0x012c8ca7 in Digikam::ThumbnailLoadThread::find (this=0x130ed280, filePath=..., size=256) at /home/eric/digikamgit2/dkgitdigikamsoftwarecompilation/core/libs/threadimageio/thumbnailloadthread.cpp:517
#25 0x012c8c53 in Digikam::ThumbnailLoadThread::find (this=0x130ed280, filePath=...) at /home/eric/digikamgit2/dkgitdigikamsoftwarecompilation/core/libs/threadimageio/thumbnailloadthread.cpp:512
#26 0x0814a814 in Digikam::ThumbsTask::run (this=0x130ed320) at /home/eric/digikamgit2/dkgitdigikamsoftwarecompilation/core/utilities/maintenance/thumbstask.cpp:85
#27 0x00b47f33 in ThreadWeaver::JobRunHelper::runTheJob (this=0xa6f161ec, th=0x181f8698, job=0x130ed320) at ../../../threadweaver/Weaver/Job.cpp:106
#28 0x00b480d3 in ThreadWeaver::Job::execute (this=0x130ed320, th=0x181f8698) at ../../../threadweaver/Weaver/Job.cpp:135
#29 0x00b495f5 in ThreadWeaver::JobCollectionJobRunner::execute (this=0x130edb58, t=0x181f8698) at ../../../threadweaver/Weaver/JobCollection.cpp:82
#30 0x00b475d6 in ThreadWeaver::Thread::run (this=0x181f8698) at ../../../threadweaver/Weaver/Thread.cpp:108
#31 0x02c25eb0 in QThreadPrivate::start (arg=0x181f8698) at thread/qthread_unix.cpp:307
#32 0x00f7ad4c in start_thread (arg=0xa6f16b40) at pthread_create.c:308
#33 0x07746dde in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 1 (Thread 0xb5141780 (LWP 29444)):
#0  0x09883618 in _XReply () from /usr/lib/i386-linux-gnu/libX11.so.6
#1  0x09868aa8 in XGetWindowProperty () from /usr/lib/i386-linux-gnu/libX11.so.6
#2  0x01759d25 in QETWidget::translatePropertyEvent (this=0x9f93af8, event=0xbfcb733c) at kernel/qapplication_x11.cpp:5150
#3  0x01768be0 in QApplication::x11ProcessEvent (this=0xbfcb7768, event=0xbfcb733c) at kernel/qapplication_x11.cpp:4002
#4  0x01795e1c in x11EventSourceDispatch (s=0x9d60e90, callback=0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146
#5  0x03b2ed46 in g_main_context_dispatch () from /lib/i386-linux-gnu/libglib-2.0.so.0
#6  0x03b2f0e5 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#7  0x03b2f1c1 in g_main_context_iteration () from /lib/i386-linux-gnu/libglib-2.0.so.0
#8  0x02d6dd87 in QEventDispatcherGlib::processEvents (this=0x9d05bb0, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#9  0x01795a1a in QGuiEventDispatcherGlib::processEvents (this=0x9d05bb0, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#10 0x02d396ad in QEventLoop::processEvents (this=0xbfcb7634, flags=...) at kernel/qeventloop.cpp:149
#11 0x02d39949 in QEventLoop::exec (this=0xbfcb7634, flags=...) at kernel/qeventloop.cpp:204
#12 0x02d3f34a in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1187
#13 0x016da9c4 in QApplication::exec () at kernel/qapplication.cpp:3817
#14 0x0830e0e3 in main (argc=1, argv=0xbfcb79c4) at /home/eric/digikamgit2/dkgitdigikamsoftwarecompilation/core/digikam/main/main.cpp:235

Possible duplicates by query: bug 315521, bug 311955.

Reported using DrKonqi
Comment 1 e.longuemare 2013-10-31 19:42:15 UTC
from console log :

digikam(29444)/KEXIV2 KExiv2Iface::KExiv2::Private::printExiv2MessageHandler: Exiv2 ( 2 ) :  Directory Minolta, entry 0x0088: Data area exceeds data buffer, ignoring it.
digikam(29444)/digikam (core) Digikam::DImg::load: "/media/DiskphotosTests/maison annoeullin/PICT0538.JPG"  : JPEG file identified
digikam(29444)/KEXIV2 KExiv2Iface::KExiv2::getImageOrientation: Orientation => Exif.Image.Orientation =>  1
[xcb] Unknown request in queue while dequeuing
[xcb] Most likely this is a multi-threaded client and XInitThreads has not been called
[xcb] Aborting, sorry about that.
digikam: ../../src/xcb_io.c :179 : dequeue_pending_request:  l'assertion « !xcb_xlib_unknown_req_in_deq » a échoué.
KCrash: Application 'digikam' crashing...
Comment 2 e.longuemare 2013-10-31 19:45:20 UTC
maintenance tool options :
digikam(30351)/digikam (core) Digikam::MaintenanceMngr::setSettings:
wholeAlbums         : true
wholeTags           : true
Albums              : 387
Tags                : 495
useMutiCoreCPU      : false
newItems            : false
thumbnails          : true
scanThumbs          : false
fingerPrints        : false
scanFingerPrints    : false
duplicates          : false
similarity          : 90
faceManagement      : false
faceScannedHandling : 0
qualitySort         : false
quality             :
EnableSorter      : false
DetectBlur        : true
DetectNoise       : true
DetectCompression : true
LowQRejected      : true
MediumQPending    : true
HighQAccepted     : true
Speed             : 1
Rejected Threshold: 10
Pending Threshold : 40
Accepted Threshold: 60
Blur Weight       : 100
Noise Weight      : 100
Compression Weight: 100

qualityScanMode     : 0
metadataSync        : false
syncDirection       : 0
Comment 3 e.longuemare 2013-10-31 20:04:06 UTC
Installed components :
digiKam version 4.0.0-beta1
Codec PGF parallélisé: Non
Composant graphique Marble: 0.16.2 (stable version)
Demosaic GPL2 pack support: Inconnu
Demosaic GPL3 pack support: Inconnu
Dématriçage parallélisé: Inconnu
Exiv2 peut écrire dans un fichier JP2: Oui
Exiv2 peut écrire dans un fichier JPEG: Oui
Exiv2 peut écrire dans un fichier PGF: Oui
Exiv2 peut écrire dans un fichier PNG: Oui
Exiv2 peut écrire dans un fichier TIFF: Oui
Exiv2 prend en charge les métadonnées XMP: Oui
LibCImg: 130
LibEigen: 3.0.5
LibExiv2: 0.22
LibJPEG: 80
LibJasper: 1.900.1
LibKDE: 4.11.2
LibKExiv2: 2.3.1
LibKGeoMap: 2.0.0
LibKdcraw: 2.4.0
LibLCMS: 2040
LibLensFun: 0.2.7-0
LibPGF: 6.12.27 - bibliothèque interne
LibPNG: 1.2.46
LibQt: 4.8.2
LibRaw: 0.15.4
LibTIFF: LIBTIFF, Version 3.9.5 Copyright (c) 1988-1996 Sam Leffler Copyright (c) 1991-1996 Silicon Graphics, Inc.
Prise en charge du codec RawSpeed: Inconnu
LibGphoto2: 2.4.14
LibKface: 3.0.0
LibKipi: 2.1.0
LibOpenCV: 2.4.5
Modules externes KIPI: 3.5.0
Moteur de base de données: QMYSQL
Serveur interne de base de données: Non
Comment 4 e.longuemare 2013-10-31 22:14:26 UTC
Hello,

I launch the same process now to see if I can reproduce it.

Eric
Comment 5 caulier.gilles 2013-10-31 22:42:04 UTC
I recently fixed a huge memory leak in thumbnail process from maintenance tool. Look this entry for details :

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

Gilles Caulier
Comment 6 e.longuemare 2013-10-31 22:59:21 UTC
Hello,

I have read that post.

I use : Date de compilation : Oct 31 2013 (cible : debugfull)
Rév. : ea2847ec161df82f8d64e70afdbc5d12feb7708e

I update my git repositories on git digikamsoftwarecompilation yesterday.

So your modification have been apply (ensure by a diff on files that have been modified).

I use a local start, with a script from terminal. Since this last update, I can't quit digikam too, no crash, but I have to do ctrl+c after clicking on quit in menu. It's hang on a "infinite time" without closing digikam.

terminal output :
digikam(30861)/digikam (core) Digikam::ImageScanner::commit: Scanning took 61 ms
digikam(30861)/digikam (core) Digikam::ImageScanner::~ImageScanner: Finishing took 538 ms
digikam(30861)/digikam (core) Digikam::CollectionScanner::completeHistoryScanning: items to tag (22180)
digikam(30861)/digikam (core) Digikam::ImageScanner::tagImageHistoryGraph: Graph with 2 vertices:
"{ Id: 22180 UUID: 3b6a2a... } -> { Id: 61131 UUID: ac2c01... }"
digikam(30861)/digikam (core) Digikam::ImageScanner::tagImageHistoryGraph: Image 22180 type QFlags(0x1|0x8)
digikam(30861)/digikam (core) Digikam::ImageScanner::tagImageHistoryGraph: Image 61131 type QFlags(0x8)

Digikam never close, and no more logs or shutdown message (quit in menu, ctrl+q) .

I try to reproduce it : I'm not sure it's related to thumbnail maintenance : maybe something with threads and closing opening windows.

Thank you,

Eric
Comment 7 e.longuemare 2013-10-31 23:09:51 UTC
And for memory, it's good. Digikam don't full fill memory anymore when rebuilding thumbnails.
Comment 8 e.longuemare 2013-10-31 23:44:18 UTC
This is gdb backtrace for "Digikam doesn't properly close - never close" :

#########################
START then c
#########################
.... cut the lines
#########################
digikam(31394)/KGEOMAP KGeoMap::ItemMarkerTiler::slotSourceModelReset: ----
digikam(31394)/KGEOMAP KGeoMap::ItemMarkerTiler::slotSourceModelReset: ----
[Thread 0xa343fb40 (LWP 31460) exited]
########################
Press ctrl+q to quit digikam
###########################
Nothing append (digikam windows close but digikam not close)
###########################
Press ctrl+c
##########################
^C
Program received signal SIGINT, Interrupt.
0x00132416 in __kernel_vsyscall ()
(gdb) backtrace
#0  0x00132416 in __kernel_vsyscall ()
#1  0x035be690 in __GI___poll (fds=0xa0774a8, nfds=19, timeout=29999) at ../sysdeps/unix/sysv/linux/poll.c:87
#2  0x05066a3b in g_poll () from /lib/i386-linux-gnu/libglib-2.0.so.0
#3  0x0505906e in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#4  0x050591c1 in g_main_context_iteration () from /lib/i386-linux-gnu/libglib-2.0.so.0
#5  0x03200d87 in QEventDispatcherGlib::processEvents (this=0x8626bb0, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#6  0x0249ba1a in QGuiEventDispatcherGlib::processEvents (this=0x8626bb0, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#7  0x031cc6ad in QEventLoop::processEvents (this=0x89bf470, flags=...) at kernel/qeventloop.cpp:149
#8  0x031cc949 in QEventLoop::exec (this=0x89bf470, flags=...) at kernel/qeventloop.cpp:204
#9  0x00ecc4dc in Digikam::ProgressManager::slotAbortAll (this=0x89ca0e8) at /home/eric/digikamgit2/dkgitdigikamsoftwarecompilation/core/libs/progressmanager/progressmanager.cpp:594
#10 0x081b6c03 in Digikam::DigikamApp::~DigikamApp (this=0x88b86c8, __in_chrg=<optimized out>, __vtt_parm=<optimized out>) at /home/eric/digikamgit2/dkgitdigikamsoftwarecompilation/core/digikam/main/digikamapp.cpp:307
#11 0x081b6efd in Digikam::DigikamApp::~DigikamApp (this=0x88b86c8, __in_chrg=<optimized out>, __vtt_parm=<optimized out>) at /home/eric/digikamgit2/dkgitdigikamsoftwarecompilation/core/digikam/main/digikamapp.cpp:369
#12 0x031e2203 in qDeleteInEventHandler (o=0x88b86c8) at kernel/qobject.cpp:4277
#25 0x031d229c in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at kernel/qcoreapplication.cpp:1432
#26 0x03200994 in sendPostedEvents () at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:236
#27 postEventSourceDispatch (s=0x8681f28) at kernel/qeventdispatcher_glib.cpp:279
#28 0x05058d46 in g_main_context_dispatch () from /lib/i386-linux-gnu/libglib-2.0.so.0
#29 0x050590e5 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#30 0x050591c1 in g_main_context_iteration () from /lib/i386-linux-gnu/libglib-2.0.so.0
#31 0x03200d87 in QEventDispatcherGlib::processEvents (this=0x8626bb0, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#32 0x0249ba1a in QGuiEventDispatcherGlib::processEvents (this=0x8626bb0, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#33 0x031cc6ad in QEventLoop::processEvents (this=0xbfffebd4, flags=...) at kernel/qeventloop.cpp:149
#34 0x031cc949 in QEventLoop::exec (this=0xbfffebd4, flags=...) at kernel/qeventloop.cpp:204
#35 0x031d234a in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1187
#36 0x023e09c4 in QApplication::exec () at kernel/qapplication.cpp:3817
#37 0x0830e0e3 in main (argc=1, argv=0xbfffef64) at /home/eric/digikamgit2/dkgitdigikamsoftwarecompilation/core/digikam/main/main.cpp:235
##################
try to start but digikam not properly closed
##################
(gdb) start
The program being debugged has been started already.
Start it from the beginning? (y or n) n
Program not restarted.
######################
Press c and digikam continuing to doing nothing (no digikam windows)
####################################################################
(gdb) c
Continuing.
################
second ctrl+c and same backtrace (no digikam window but digikam is still there)
#################################
^C
Program received signal SIGINT, Interrupt.
0x00132416 in __kernel_vsyscall ()
(gdb) backtrace
#0  0x00132416 in __kernel_vsyscall ()
#1  0x035be690 in __GI___poll (fds=0xa0774a8, nfds=13, timeout=9986) at ../sysdeps/unix/sysv/linux/poll.c:87
#2  0x05066a3b in g_poll () from /lib/i386-linux-gnu/libglib-2.0.so.0
#3  0x0505906e in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#4  0x050591c1 in g_main_context_iteration () from /lib/i386-linux-gnu/libglib-2.0.so.0
#5  0x03200d87 in QEventDispatcherGlib::processEvents (this=0x8626bb0, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#6  0x0249ba1a in QGuiEventDispatcherGlib::processEvents (this=0x8626bb0, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#7  0x031cc6ad in QEventLoop::processEvents (this=0x89bf470, flags=...) at kernel/qeventloop.cpp:149
#8  0x031cc949 in QEventLoop::exec (this=0x89bf470, flags=...) at kernel/qeventloop.cpp:204
#9  0x00ecc4dc in Digikam::ProgressManager::slotAbortAll (this=0x89ca0e8) at /home/eric/digikamgit2/dkgitdigikamsoftwarecompilation/core/libs/progressmanager/progressmanager.cpp:594
#10 0x081b6c03 in Digikam::DigikamApp::~DigikamApp (this=0x88b86c8, __in_chrg=<optimized out>, __vtt_parm=<optimized out>) at /home/eric/digikamgit2/dkgitdigikamsoftwarecompilation/core/digikam/main/digikamapp.cpp:307
#11 0x081b6efd in Digikam::DigikamApp::~DigikamApp (this=0x88b86c8, __in_chrg=<optimized out>, __vtt_parm=<optimized out>) at /home/eric/digikamgit2/dkgitdigikamsoftwarecompilation/core/digikam/main/digikamapp.cpp:369
#12 0x031e2203 in qDeleteInEventHandler (o=0x88b86c8) at kernel/qobject.cpp:4277
#13 0x031e91a8 in QObject::event (this=0x88b86c8, e=0xc2906e0) at kernel/qobject.cpp:1176
#14 0x0243ccb2 in QWidget::event (this=0x88b86c8, event=0xc2906e0) at kernel/qwidget.cpp:8830
#15 0x0287885c in QMainWindow::event (this=0x88b86c8, event=0xc2906e0) at widgets/qmainwindow.cpp:1478
#16 0x0212da94 in KMainWindow::event (this=0x88b86c8, ev=0xc2906e0) at ../../kdeui/widgets/kmainwindow.cpp:1084
#17 0x02177972 in KXmlGuiWindow::event (this=0x88b86c8, ev=0xc2906e0) at ../../kdeui/xmlgui/kxmlguiwindow.cpp:126
#18 0x023e2df4 in notify_helper (e=0xc2906e0, receiver=0x88b86c8, this=0x86825d8) at kernel/qapplication.cpp:4556
#19 QApplicationPrivate::notify_helper (this=0x86825d8, receiver=0x88b86c8, e=0xc2906e0) at kernel/qapplication.cpp:4528
#20 0x023e81f2 in QApplication::notify (this=0x86825d8, receiver=0x88b86c8, e=0xc2906e0) at kernel/qapplication.cpp:4521
#21 0x02051ed1 in KApplication::notify (this=0xbfffed08, receiver=0x88b86c8, event=0xc2906e0) at ../../kdeui/kernel/kapplication.cpp:311
#22 0x031cde0e in QCoreApplication::notifyInternal (this=0xbfffed08, receiver=0x88b86c8, event=0xc2906e0) at kernel/qcoreapplication.cpp:915
#23 0x031d1f68 in sendEvent (event=<optimized out>, receiver=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231
#24 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x8626050) at kernel/qcoreapplication.cpp:1539
#25 0x031d229c in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at kernel/qcoreapplication.cpp:1432
#26 0x03200994 in sendPostedEvents () at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:236
#27 postEventSourceDispatch (s=0x8681f28) at kernel/qeventdispatcher_glib.cpp:279
#28 0x05058d46 in g_main_context_dispatch () from /lib/i386-linux-gnu/libglib-2.0.so.0
#29 0x050590e5 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#30 0x050591c1 in g_main_context_iteration () from /lib/i386-linux-gnu/libglib-2.0.so.0
#31 0x03200d87 in QEventDispatcherGlib::processEvents (this=0x8626bb0, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#32 0x0249ba1a in QGuiEventDispatcherGlib::processEvents (this=0x8626bb0, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#33 0x031cc6ad in QEventLoop::processEvents (this=0xbfffebd4, flags=...) at kernel/qeventloop.cpp:149
#34 0x031cc949 in QEventLoop::exec (this=0xbfffebd4, flags=...) at kernel/qeventloop.cpp:204
#35 0x031d234a in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1187
#36 0x023e09c4 in QApplication::exec () at kernel/qapplication.cpp:3817
#37 0x0830e0e3 in main (argc=1, argv=0xbfffef64) at /home/eric/digikamgit2/dkgitdigikamsoftwarecompilation/core/digikam/main/main.cpp:235
######
end of backtrace
###############

? perhaps something to do with the progressmanager modification ?
Comment 9 caulier.gilles 2013-11-01 07:10:36 UTC
yes, the crash is due to my last changes in progress manager, from this entry :

https://bugs.kde.org/show_bug.cgi?id=302810#c5

Before this fix, digiKAm crash because main application is closed when progress tasks still running.

My patch must wait than all progress tasks are stopped before to close main application.

Here it doesn't crash when thumbnails are processed in progress manager and when i close digiKam by window manager close button.

Which condition you use exactly to reproduce the crash as :

- how many progress task are running ?
- Which progress tasks are running ?
- which digiKam windows are open when you close application (as light table, albumui, import tool, BQM) ?
- You press CTRL+Q to quit application ?
- It crash when you close application through window manager close button ?

Gilles Caulier
Comment 10 e.longuemare 2013-11-01 07:42:52 UTC
Hello,

I - For the  "Digikam doesn't properly close - never close" :  nothing is done, simply start digikam wait all digikam starting task are to end then ctrl+q (or other stuff to close) .

In this exemple :

digikam(30861)/digikam (core) Digikam::ImageScanner::commit: Scanning took 61 ms digikam(30861)/digikam (core) Digikam::ImageScanner::~ImageScanner: Finishing took 538 ms digikam(30861)/digikam (core) Digikam::CollectionScanner::completeHistoryScanning: items to tag (22180) digikam(30861)/digikam (core) Digikam::ImageScanner::tagImageHistoryGraph: Graph with 2 vertices: "{ Id: 22180 UUID: 3b6a2a... } -> { Id: 61131 UUID: ac2c01... }" digikam(30861)/digikam (core) Digikam::ImageScanner::tagImageHistoryGraph: Image 22180 type QFlags(0x1|0x8) digikam(30861)/digikam (core) Digikam::ImageScanner::tagImageHistoryGraph: Image 61131 type QFlags(0x8)

I only wait digikam finish starting and then ctrl+q.

- how many progress task are running ?
none

 - Which progress tasks are running ? 
none
- which digiKam windows are open when you close application (as light table, albumui, import tool, BQM) ? 
only main windows
- You press CTRL+Q to quit application ? 
yes, and try other like clic on quit in menu 
- It crash when you close application through window manager close button ?
No, for this "Digikam doesn't properly close - never close", not crash.

II - I was thinking it should be in link with :
Digikam crash while scanning pictures for thumbnails maintenance which produce this:

digikam(29444)/KEXIV2 KExiv2Iface::KExiv2::Private::printExiv2MessageHandler: Exiv2 ( 2 ) : Directory Minolta, entry 0x0088: Data area exceeds data buffer, ignoring it. digikam(29444)/digikam (core) Digikam::DImg::load: "/media/DiskphotosTests/maison annoeullin/PICT0538.JPG" : JPEG file identified digikam(29444)/KEXIV2 KExiv2Iface::KExiv2::getImageOrientation: Orientation => Exif.Image.Orientation => 1
 [xcb] Unknown request in queue while dequeuing 
[xcb] Most likely this is a multi-threaded client and XInitThreads has not been called 
[xcb] Aborting, sorry about that. digikam: ../../src/xcb_io.c :179 : dequeue_pending_request: l'assertion « !xcb_xlib_unknown_req_in_deq » a échoué.

- how many progress task are running ?
only one, scanning thumbnail with maintenance tool (no analyse)
 - Which progress tasks are running ? 
only one : scanning thumbnail
- which digiKam windows are open when you close application (as light table, albumui, import tool, BQM) ?
only main window
 - You press CTRL+Q to quit application ? 
no, I play with reduce and resize with digikam main windows : 
- It crash when you close application through window manager close button ?
no, when play with windows. When I'm trying to close digikam, it never end and no crash.

I have two problems which are in relation I think.

Thank you,

Eric
Comment 11 caulier.gilles 2013-11-01 07:50:07 UTC
None of both case are reproducible on my computer.

I suspect that problem is in another place that first expected...

Just to be sure :

- Do you compile digiKam with this cmake option : "-DDIGIKAMSC_USE_PRIVATE_KDEGRAPHICS=on". This force digiKam to use libkipi, libkdcraw, libkexiv2 from digiKam SC source code instead shared libs in your system. HEre it's compiled like this. This includes all last code from git/master
- Can you clean up whole digiKam compilation and make a new cmake config (use bootstrap.linux script) and recompile all. You can remore "build" sub-dir to clean-up. After that try again to reproduce the problem...

Gilles Caulier
Comment 12 e.longuemare 2013-11-01 07:51:55 UTC
Gilles,

I'm trying now to reproduce the II.
1 - launch digikam
2 - launch in main window a maintenance thumbnail scan with no analyse
3 - wait it run for a while, then play with digikam window (reduce ... but not close)

and try to give you a backtrace for :
[xcb] Unknown request in queue while dequeuing 
[xcb] Most likely this is a multi-threaded client and XInitThreads has not been called 
[xcb] Aborting, sorry about that. digikam: ../../src/xcb_io.c :179 : dequeue_pending_request: l'assertion « !xcb_xlib_unknown_req_in_deq » a échoué.

Thank you
Comment 13 e.longuemare 2013-11-01 08:03:42 UTC
- Do you compile digiKam with this cmake option :"-DDIGIKAMSC_USE_PRIVATE_KDEGRAPHICS=on" ?
Yes and it does

HEre it's compiled like this. This includes all last code from git/master - Can you clean up whole digiKam compilation and make a new cmake config (use bootstrap.linux script) and recompile all. You can remore "build" sub-dir to clean-up. After that try again to reproduce the problem...

I use to cmake config with bootstrap.local (to have a working digikam 3.5.0 stable and beta version for test).

As I'm trying to use eclipse, I've made my "own" cmake script :

#!/bin/sh

# Copyright (c) 2008-2012, Gilles Caulier, <caulier dot gilles at gmail dot com>
# Copyright (c)      2012, Benjamin Girault <benjamin dot girault at gmail dot com>
#
# Redistribution and use is allowed according to the terms of the BSD license.
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
#
# See README.LOCAL for more information

########################## CONFIG ######################

# Set to 1 if you want to clean that directory (this script will delete and recreate it)
CLEANROOT=1

# Set the ccache path for faster compile cycles
CCACHE_PATH=/usr/lib/ccache/bin

# Replace path/to/your/root/directory with the directory where you want your local digikam

DIGIKAM_INSTALL_PREFIX=$HOME/kdedev-install-digikamsoftwarecompilation #Hacked for eclipse build (out-off-source build) - choose install directory
BUILD_PREFIX=$HOME/digikamgit2 ##ADD FOR ECLIPSE BUILD (out-off-source build) - choose subfolder for source and build

###################### END CONFIG ######################

QT_INSTALL_PREFIX=`qmake -query "QT_INSTALL_PREFIX"`
QT_BIN=$QT_INSTALL_PREFIX/bin
export PATH=$QT_BIN:$PATH
export MAKEFILES_TYPE='Eclipse CDT4 - Unix Makefiles' #Hacked for eclipse build
export ECLIPSE_VERSION='4.3' #Hacked for eclipse build - choose eclipse version number
export DIGIKAM_SOURCE='dkgitdigikamsoftwarecompilation' #Hacked for eclipse build - choose source folder to build
export BUILD_ECLIPSE='builddigikamsoftwarecompilation'

export PATH=$CCACHE_PATH:$DIGIKAM_INSTALL_PREFIX/bin:$PATH
export LD_LIBRARY_PATH=$DIGIKAM_INSTALL_PREFIX/lib:$LD_LIBRARY_PATH
export PKG_CONFIG_PATH=$DIGIKAM_INSTALL_PREFIX/lib/pkgconfig:/usr/lib/pkgconfig

#export VERBOSE=1
#export CC=gcc4.4
#export CXX=g++4.4

# Manage local install dir
if [ $CLEANROOT == 1 ]
then
    rm -Rf $DIGIKAM_INSTALL_PREFIX
fi
mkdir -p $DIGIKAM_INSTALL_PREFIX

# Manage build sub-dir
cd $BUILD_PREFIX
if [ ! -d "$BUILD_ECLIPSE" ]
then
    mkdir $BUILD_ECLIPSE
fi
cd $BUILD_ECLIPSE

cmake -G "$MAKEFILES_TYPE" . \
      -DCMAKE_BUILD_TYPE=debugfull \
      -DCMAKE_INSTALL_PREFIX=$DIGIKAM_INSTALL_PREFIX/ \
      -DCMAKE_CXX_FLAGS="-pedantic -Werror=return-type" \
      -DCMAKE_C_FLAGS="-pedantic -Werror=return-type" \
      -DKDE4_BUILD_TESTS=on \
      -DDIGIKAMSC_USE_PRIVATE_KDEGRAPHICS=on \
      -DDIGIKAMSC_COMPILE_DOC=on \
      -DDIGIKAMSC_CHECKOUT_PO=off \
      -DENABLE_PRESENTATIONMODE=off\
      -DENABLE_LCMS2=on \
      -DENABLE_NEPOMUKSUPPORT=ON \
      -DCMAKE_ECLIPSE_GENERATE_SOURCE_PROJECT=ON \
      -D_ECLIPSE_VERSION=$ECLIPSE_VERSION \
      -Wno-dev \
      ../$DIGIKAM_SOURCE

and launch digikam with that script :
#!/bin/bash
#./digikam_env.sh /home/eric/digikamgit2/builddigikamsoftwarecompilation/core/digikam/digikam
export DIGIKAMCORE=$HOME/digikamgit2/builddigikamsoftwarecompilation/core/digikam/digikam
export DIGIKAMLIB=$HOME/digikamgit2/builddigikamsoftwarecompilation/core/digikam/lib
export DIGIKAMINSTALL=$HOME/kdedev-install-digikamsoftwarecompilation
export KDEDIR=$DIGIKAMCORE
export KDEDIRS="$DIGIKAMCORE:$DIGIKAMLIB:$DIGIKAMINSTALL" 
export KDEHOME="$HOME/.kde-dev-SC"
export LD_LIBRARY_PATH="$DIGIKAMLIB:$DIGIKAMINSTALL/lib:$LD_LIBRARY_PATH"
export LDPATH="$DIGIKAMLIB:$LD_LIBRARY_PATH"
# update KDE's system configuration cache
kbuildsycoca4
# start app
$@ 

for gdb I only add :
gdb $@ to the end.

First I try to reproduce then rebuild and compile with bootstrap.linux

Thank you,

Eric
Comment 14 caulier.gilles 2013-11-01 08:39:17 UTC
I can reproduce the problem here, to reduce and restore main window during a progress task.

Gilles Caulier
Comment 15 caulier.gilles 2013-11-01 08:54:23 UTC
Marcel,

I can reproduce this crash here when digikam main window is reduced and restored quickly while a progress task (thumbnails generator for ex) is processed.

The trace said :

[xcb] Unknown sequence number while processing queue
[xcb] Most likely this is a multi-threaded client and XInitThreads has not been called
[xcb] Aborting, sorry about that.
digikam: xcb_io.c :274 : poll_for_event:  l'assertion « !xcb_xlib_threads_sequence_lost » a échoué.
KCrash: Application 'digikam' crashing...
X Error: BadImplementation (server does not implement operation) 17
  Major opcode: 20 (X_GetProperty)
  Resource id:  0x0
digikam: Fatal IO error: client killed

After investigations, i identified that my patch below is the problem :

https://bugs.kde.org/show_bug.cgi?id=302810#c5

... especially, the QEventLoop that i plugin in ProgressManager class here :

https://projects.kde.org/projects/extragear/graphics/digikam/repository/revisions/master/entry/libs/progressmanager/progressmanager.cpp#L384

I use it to wait progressitems cancellation when digiKam is closed (see bug #302810)

Why i cannot use QEventLoop here ?
Or i use it in the wrong way ? 

I suspect that ProgressManager run in a separated thread, and X11 don't like it... But it's not the case... right ?

Gilles
Comment 16 e.longuemare 2013-11-01 09:24:47 UTC
Hello,

Reproduce it too : digikam crash when a task is process and quickly reduce and restore digikam main window.

gdb :

digikam(338)/KDCRAW KDcrawIface::RWeaverObserver::slotThreadBusy: RWeaverObserver: thread  1  busy
digikam(338)/digikam (core) Digikam::DImg::load: "/media/DiskphotosTests/chasse pape moere/0025.jpg"  : JPEG file identified
######
Reduce, restore ... quickly and digikam crash with following backtrace :
#######
[xcb] Unknown request in queue while dequeuing
[xcb] Most likely this is a multi-threaded client and XInitThreads has not been called
[xcb] Aborting, sorry about that.
digikam: ../../src/xcb_io.c :179 : dequeue_pending_request:  l'assertion « !xcb_xlib_unknown_req_in_deq » a échoué.

Program received signal SIGABRT, Aborted.
[Switching to Thread 0xa04dfb40 (LWP 413)]
0x00132416 in __kernel_vsyscall ()
(gdb) backtrace
#0  0x00132416 in __kernel_vsyscall ()
#1  0x0350c1df in __GI_raise (sig=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#2  0x0350f825 in __GI_abort () at abort.c:91
#3  0x03505085 in __assert_fail_base (fmt=0xb50ab764 "%s%s%s :%u : %s%s l'assertion « %s » a échoué.\n%n", assertion=0x3a41fdd "!xcb_xlib_unknown_req_in_deq", file=0x3a41fca "../../src/xcb_io.c", line=179, 
    function=0x3a420a0 "dequeue_pending_request") at assert.c:94
#4  0x03505137 in __GI___assert_fail (assertion=0x3a41fdd "!xcb_xlib_unknown_req_in_deq", file=0x3a41fca "../../src/xcb_io.c", line=179, function=0x3a420a0 "dequeue_pending_request") at assert.c:103
#5  0x039c94c6 in ?? () from /usr/lib/i386-linux-gnu/libX11.so.6
#6  0x039ca78f in _XReply () from /usr/lib/i386-linux-gnu/libX11.so.6
#7  0x039c03c4 in XQueryTree () from /usr/lib/i386-linux-gnu/libX11.so.6
#8  0x02489203 in QWidgetPrivate::updateFrameStrut (this=0x893bb80) at kernel/qwidget_x11.cpp:2942
#9  0x0243086e in QWidgetPrivate::frameStrut (this=0x893bb80) at kernel/qwidget.cpp:12038
#10 0x024312e0 in QWidget::frameGeometry (this=0x88d0a28) at kernel/qwidget.cpp:3534
#11 0x02481fb8 in QDesktopWidget::screenNumber (this=0x87d8e20, widget=0x88d0a28) at kernel/qdesktopwidget_x11.cpp:393
#12 0x00ddf2fd in Digikam::IccSettings::Private::profileFromWindowSystem (this=0x88d4428, widget=0x88d0a28) at /home/eric/digikamgit2/dkgitdigikamsoftwarecompilation/core/libs/dimg/filters/icc/iccsettings.cpp:204
#13 0x00ddeefd in Digikam::IccSettings::monitorProfile (this=0x88d5c20, widget=0x88d0a28) at /home/eric/digikamgit2/dkgitdigikamsoftwarecompilation/core/libs/dimg/filters/icc/iccsettings.cpp:134
#14 0x00dd3f7a in Digikam::IccManager::displayProfile (displayingWidget=0x88d0a28) at /home/eric/digikamgit2/dkgitdigikamsoftwarecompilation/core/libs/dimg/filters/icc/iccmanager.cpp:385
#15 0x00f061cb in Digikam::ThumbnailLoadThread::Private::createLoadingDescription (this=0xfba0738, filePath=..., size=254, setLastDescription=true)
    at /home/eric/digikamgit2/dkgitdigikamsoftwarecompilation/core/libs/threadimageio/thumbnailloadthread.cpp:335
#16 0x00f06944 in Digikam::ThumbnailLoadThread::find (this=0xfba0560, filePath=..., size=256, retPixmap=0x0, emitSignal=true, detailRect=...)
    at /home/eric/digikamgit2/dkgitdigikamsoftwarecompilation/core/libs/threadimageio/thumbnailloadthread.cpp:454
#17 0x00f06ca7 in Digikam::ThumbnailLoadThread::find (this=0xfba0560, filePath=..., size=256) at /home/eric/digikamgit2/dkgitdigikamsoftwarecompilation/core/libs/threadimageio/thumbnailloadthread.cpp:517
#18 0x00f06c53 in Digikam::ThumbnailLoadThread::find (this=0xfba0560, filePath=...) at /home/eric/digikamgit2/dkgitdigikamsoftwarecompilation/core/libs/threadimageio/thumbnailloadthread.cpp:512
#19 0x0814a814 in Digikam::ThumbsTask::run (this=0xfba0488) at /home/eric/digikamgit2/dkgitdigikamsoftwarecompilation/core/utilities/maintenance/thumbstask.cpp:85
#20 0x00a06f33 in ThreadWeaver::JobRunHelper::runTheJob (this=0xa04df1ec, th=0xb22b5e60, job=0xfba0488) at ../../../threadweaver/Weaver/Job.cpp:106
#21 0x00a070d3 in ThreadWeaver::Job::execute (this=0xfba0488, th=0xb22b5e60) at ../../../threadweaver/Weaver/Job.cpp:135
#22 0x00a085f5 in ThreadWeaver::JobCollectionJobRunner::execute (this=0xfba0d58, t=0xb22b5e60) at ../../../threadweaver/Weaver/JobCollection.cpp:82
#23 0x00a065d6 in ThreadWeaver::Thread::run (this=0xb22b5e60) at ../../../threadweaver/Weaver/Thread.cpp:108
#24 0x030b8eb0 in QThreadPrivate::start (arg=0xb22b5e60) at thread/qthread_unix.cpp:307
#25 0x04c34d4c in start_thread (arg=0xa04dfb40) at pthread_create.c:308
#26 0x035ccdde in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Eric
Comment 17 e.longuemare 2013-11-01 11:18:23 UTC
Created attachment 83265 [details]
bootstrap-eclipse.local for building digikam in out-of-source to local dev dir for eclipse kepler C++  4.3
Comment 18 e.longuemare 2013-11-01 11:27:14 UTC
Created attachment 83266 [details]
starting script for launching digikam in local dev folder for testing, debugging ..
Comment 19 e.longuemare 2013-11-01 11:32:21 UTC
Created attachment 83267 [details]
starting script for launching digikam in local dev folder with GDB for testing, debugging ..

Should be use in debug C++ config (debug properties panel) for launching digikam with gdb in eclipse or standalone.
Source : http://www.baekhoej.com/node/195
Comment 20 caulier.gilles 2013-11-02 08:29:35 UTC
e.longuemare,

I found something interesting. I see in your last backtrace some line about color management.
Here, it's the same.

If i disable CM, crash is not reproducible. Can you confirm ?

Gilles Caulier
Comment 21 caulier.gilles 2013-11-02 08:38:19 UTC
Git commit ee22c2cc043b604698f5637d12437ecd909108a9 by Gilles Caulier.
Committed on 02/11/2013 at 08:36.
Pushed by cgilles into branch 'master'.

move event loop after thread host thread reassignement.

M  +2    -2    libs/progressmanager/progressmanager.cpp

http://commits.kde.org/digikam/ee22c2cc043b604698f5637d12437ecd909108a9

diff --git a/libs/progressmanager/progressmanager.cpp b/libs/progressmanager/progressmanager.cpp
index 7f763b9..ac6a0f7 100644
--- a/libs/progressmanager/progressmanager.cpp
+++ b/libs/progressmanager/progressmanager.cpp
@@ -381,13 +381,13 @@ void ProgressManager::Private::removeItem(ProgressItem* const t)
 ProgressManager::ProgressManager()
     : d(new Private)
 {
-    d->waitingLoop = new QEventLoop(this);
-
     if (thread() != QApplication::instance()->thread())
     {
         kWarning() << "Attention: ProgressManager was created from a thread. Create it in the main thread!";
         moveToThread(QApplication::instance()->thread());
     }
+
+    d->waitingLoop = new QEventLoop();
 }

 ProgressManager::~ProgressManager()
Comment 22 e.longuemare 2013-11-02 08:39:16 UTC
Hello,

I launch the test now and see if it's the same :
1 - disable color management in digikam conf
2 - then launch a task (thumbnails maintenance)
3 - and reduce and restore windows

Thank you.

Eric
Comment 23 caulier.gilles 2013-11-02 08:40:54 UTC
To disable CM, just go to digiKam CM setup panel and turn off lead CM option. No need to touch digikamrc file. digiKam setup will do it for you...

Gilles Caulier
Comment 24 caulier.gilles 2013-11-02 08:51:59 UTC
Marcel,

My first investigations about QEventLoop has been a wrong way.

It sound like problem is about CM enabled on computer. This setting is used in ThumbnailLoadThread. As instance is created in a separated thread and not main application thread, through a ThreadWeaver::Job, it try to access on X11 API which crash due to non re-entrance...

I see in ThumbnailLoadThread::Private::createLoadingDescription() that so bracket play with CM. I forced displayingWidget to null in ThumbnailLoadThread properties, but i think it's not enough to disable CM in ThumbnailLoadThread.

Perhaps it's the wrong way, and i must to move ThumbnailLoadThread instance outside ThreadWeaver::Job ?

Gilles Caulier
Comment 25 e.longuemare 2013-11-02 10:01:20 UTC
Gilles,

For the moment I try but can't reproduce with cm enable or disable.

What have been changed since yesterday :

I have removed my second display monitor (it will be back in a few hour).
I look at digikamrc and the file was corrupted (but can't reproduce even with this corrupted RC file).

What have not changed :
Digikam can't be quit without ctrl+ c
I have not updated and rebuild digikam (same version which produced the crash yesterday)

So, is it something with Color Management and dual screen ?
Or is it something with some files that aren't process at the moment ?

So I relaunch a thumbnail scan (all collection, all tag) and wait, then try to reproduce.

component (no change) :
digiKam version 4.0.0-beta1
Codec PGF parallélisé: Non
Composant graphique Marble: 0.16.2 (stable version)
Demosaic GPL2 pack support: Inconnu
Demosaic GPL3 pack support: Inconnu
Dématriçage parallélisé: Inconnu
Exiv2 peut écrire dans un fichier JP2: Oui
Exiv2 peut écrire dans un fichier JPEG: Oui
Exiv2 peut écrire dans un fichier PGF: Oui
Exiv2 peut écrire dans un fichier PNG: Oui
Exiv2 peut écrire dans un fichier TIFF: Oui
Exiv2 prend en charge les métadonnées XMP: Oui
LibCImg: 130
LibEigen: 3.0.5
LibExiv2: 0.22
LibJPEG: 80
LibJasper: 1.900.1
LibKDE: 4.11.2
LibKExiv2: 2.3.1
LibKGeoMap: 2.0.0
LibKdcraw: 2.4.0
LibLCMS: 2040
LibLensFun: 0.2.7-0
LibPGF: 6.12.27 - bibliothèque interne
LibPNG: 1.2.46
LibQt: 4.8.2
LibRaw: 0.15.4
LibTIFF: LIBTIFF, Version 3.9.5 Copyright (c) 1988-1996 Sam Leffler Copyright (c) 1991-1996 Silicon Graphics, Inc.
Prise en charge du codec RawSpeed: Inconnu
LibGphoto2: 2.4.14
LibKface: 3.0.0
LibKipi: 2.1.0
LibOpenCV: 2.4.5
Modules externes KIPI: 3.5.0
Moteur de base de données: QMYSQL
Serveur interne de base de données: Non

Digikam (no change):
Date de compilation : Oct 31 2013 (cible : debugfull)
Rév. : ea2847ec161df82f8d64e70afdbc5d12feb7708e

Database stats :
digiKam version 4.0.0-beta1
Images: 
BMP: 5
GIF: 56
JP2: 16
JPG: 22735
PNG: 130
RAW-CR2: 3464
XCF: 209
total: 26615
: 
: 
Vidéos: 
AVI: 29
MOV: 186
MP4: 43
MPEG: 2
WMV: 1
total: 261
: 
: 
Total des éléments: 26876
Albums: 386
Étiquettes: 495
Moteur de base de données: QMYSQL
Serveur interne de base de données: Non

Eric.
Comment 26 e.longuemare 2013-11-02 10:39:15 UTC
Created attachment 83282 [details]
diff between old digikamrc and new one

I made a mistake in thumbnail database name (digikam main database was the good one). Use the production thumbnail database for the test this morning : digikam_thumbnail (test one is digikam_thumbnail_clone). There are over differences.
Comment 27 e.longuemare 2013-11-02 11:04:07 UTC
Created attachment 83285 [details]
diff between old digikamrc and new one

diff between old digikamrc and new one I made a mistake in thumbnail database name (digikam main database was the good one). Use the production thumbnail database for the test this morning : digikam_thumbnail (test one is digikam_thumbnail_clone). There are over differences.
Comment 28 caulier.gilles 2013-11-02 11:10:44 UTC
Do you have a dual screen. For me, it's my case.

I calibrated one screen and as both are the same, i set color profile file in digiKam CM settings (there is no way that i know under linux to assign a profile for each monitor)

Gilles Caulier
Comment 29 e.longuemare 2013-11-02 12:04:12 UTC
Yes Gilles.
I have lend it to a friend. It will be back this afternoon.
I will try to reproduce.
Comment 30 e.longuemare 2013-11-02 12:05:35 UTC
Yes I use dual screen. But not this morning.
Comment 31 caulier.gilles 2013-11-02 13:14:10 UTC
And you want mean that using only one screen and to enable CM, stressing digiKam to reduce/expand main window during thumbnails task do not crash it ?

Gilles Caulier
Comment 32 e.longuemare 2013-11-02 13:24:22 UTC
Yes
Comment 33 e.longuemare 2013-11-02 13:51:07 UTC
Gilles,

I reconnect my second display monitor.
Launch digikam.
Launch thumbnail scan
#####
then clicking on reduce and restore
################
digikam(4595)/digikam (core) Digikam::MaintenanceMngr::stage1: stage1
digikam(4595)/digikam (core) Digikam::MaintenanceMngr::stage2: stage2
digikam(4595)/KDCRAW KDcrawIface::RActionThreadBase::RActionThreadBase: Starting Main Thread
[Thread 0x95594b40 (LWP 4637) exited]
[Thread 0x94592b40 (LWP 4639) exited]
[Thread 0x94d93b40 (LWP 4638) exited]
[New Thread 0x94d93b40 (LWP 4657)]
digikam(4595)/KDCRAW KDcrawIface::RActionThreadBase::run: In action thread Run
[New Thread 0x94592b40 (LWP 4658)]
[New Thread 0x95594b40 (LWP 4659)]
##########
clic and clic waiting scan is really launch - no crash
###################
scan is really launch - then crash
################
digikam(4595)/digikam (core) Digikam::DImg::load: "/media/DiskphotosTests/age_taille_mortalite_maturite_cabillaud.jpg"  : JPEG file identified
[New Thread 0x93d91b40 (LWP 4660)]
digikam(4595)/digikam (core) Digikam::DImg::load: "/media/DiskphotosTests/age_taille_mortalite_maturite_cabillaud.jpg"  : JPEG file identified
[xcb] Unknown request in queue while dequeuing
[xcb] Most likely this is a multi-threaded client and XInitThreads has not been called
[xcb] Aborting, sorry about that.
digikam: ../../src/xcb_io.c :179 : dequeue_pending_request:  l'assertion « !xcb_xlib_unknown_req_in_deq » a échoué.

Program received signal SIGABRT, Aborted.
[Switching to Thread 0x94592b40 (LWP 4658)]
0xb7fdd424 in __kernel_vsyscall ()

Try now with only one display monitor.
Comment 34 e.longuemare 2013-11-02 13:54:43 UTC
###########
digikam(4595)/digikam (core) Digikam::MaintenanceMngr::stage1: stage1
digikam(4595)/digikam (core) Digikam::MaintenanceMngr::stage2: stage2
digikam(4595)/KDCRAW KDcrawIface::RActionThreadBase::RActionThreadBase: Starting Main Thread
[Thread 0x95594b40 (LWP 4637) exited]
[Thread 0x94592b40 (LWP 4639) exited]
[Thread 0x94d93b40 (LWP 4638) exited]
[New Thread 0x94d93b40 (LWP 4657)]
digikam(4595)/KDCRAW KDcrawIface::RActionThreadBase::run: In action thread Run
[New Thread 0x94592b40 (LWP 4658)]
[New Thread 0x95594b40 (LWP 4659)]
digikam(4595)/digikam (core) Digikam::DImg::load: "/media/DiskphotosTests/age_taille_mortalite_maturite_cabillaud.jpg"  : JPEG file identified
[New Thread 0x93d91b40 (LWP 4660)]
digikam(4595)/digikam (core) Digikam::DImg::load: "/media/DiskphotosTests/age_taille_mortalite_maturite_cabillaud.jpg"  : JPEG file identified
[xcb] Unknown request in queue while dequeuing
[xcb] Most likely this is a multi-threaded client and XInitThreads has not been called
[xcb] Aborting, sorry about that.
digikam: ../../src/xcb_io.c :179 : dequeue_pending_request:  l'assertion « !xcb_xlib_unknown_req_in_deq » a échoué.

Program received signal SIGABRT, Aborted.
[Switching to Thread 0x94592b40 (LWP 4658)]
0xb7fdd424 in __kernel_vsyscall ()
#####################
between those lines nothing as been cut (complete log)

So as soon as scan start scanning pictures, digikam crash
Comment 35 e.longuemare 2013-11-02 14:35:21 UTC
Now with only one main monitor no crash.

It's look like digikam quit normally when you launch a process and quit :

digikam(4782)/digikam (core) Digikam::DImg::load: "/media/DiskphotosTests/14 juillet 2006 - Tardinghem/tardinghem_2006 022.jpg"  : JPEG file identified
digikam(4782)/KEXIV2 KExiv2Iface::KExiv2::getImageOrientation: Orientation => Exif.Image.Orientation =>  1
#######################
Clic on quit while scan process is in progress
###################################
digikam(4782)/KDCRAW KDcrawIface::RActionThreadBase::cancel: Cancel Main Thread
digikam(4782)/digikam (core) Digikam::MaintenanceMngr::stage3: stage3
digikam(4782)/digikam (core) Digikam::MaintenanceMngr::stage4: stage4
digikam(4782)/digikam (core) Digikam::MaintenanceMngr::stage5: stage5
digikam(4782)/digikam (core) Digikam::MaintenanceMngr::stage6: stage6
digikam(4782)/digikam (core) Digikam::MaintenanceMngr::stage7: stage7
digikam(4782)/KDCRAW KDcrawIface::RActionThreadBase::run: Exiting Action Thread
[Thread 0x94d11b40 (LWP 4844) exited]
digikam(4782)/KDCRAW KDcrawIface::RWeaverObserver::slotThreadSuspended: RWeaverObserver: thread  1  suspended
digikam(4782)/digikam (core) Digikam::MaintenanceThread::slotThreadFinished: List of Pending Jobs is empty
digikam(4782)/KGEOMAP KGeoMap::ItemMarkerTiler::slotSourceModelReset: ----
[Thread 0xab654b40 (LWP 4785) exited]
digikam(4782)/KDCRAW KDcrawIface::RActionThreadBase::cancel: Cancel Main Thread
Thread::requestAbort: not running.
digikam(4782)/KDCRAW KDcrawIface::RActionThreadBase::~RActionThreadBase: calling action thread destructor
digikam(4782)/KDCRAW KDcrawIface::RActionThreadBase::cancel: Cancel Main Thread
Thread::requestAbort: not running.
[Thread 0x94510b40 (LWP 4845) exited]
digikam(4782)/KDCRAW KDcrawIface::RActionThreadBase::cancel: Cancel Main Thread
digikam(4782)/KDCRAW KDcrawIface::RActionThreadBase::~RActionThreadBase: calling action thread destructor
digikam(4782)/KDCRAW KDcrawIface::RActionThreadBase::cancel: Cancel Main Thread
[Thread 0xaa2ffb40 (LWP 4790) exited]
[Thread 0x93d0fb40 (LWP 4846) exited]
[Thread 0x95512b40 (LWP 4847) exited]
[Thread 0xaacffb40 (LWP 4786) exited]
#########################
Digikam quit (close) normally, not hang indefinitely
####################################
[Inferior 1 (process 4782) exited normally]

I try now with dual monitors and no color management.
Comment 36 e.longuemare 2013-11-02 14:53:53 UTC
So,

With only one monitor, CM check, no crash but if nothing is in progress digikam doesn't quit.
With only one monitor, CM check and a task in progress digikam quit.
With two monitor, CM uncheck, no crash and quit normally while a task is in progress.
With two monitor, CM check, digikam crash on reduce restore, and crash or don't quit while a task is in progress :

####
quit while digikam scan pictures for thumbnails
####################
digikam(4951)/digikam (core) Digikam::DImg::load: "/media/DiskphotosTests/photo 8 288.jpg"  : JPEG file identified
digikam(4951)/KEXIV2 KExiv2Iface::KExiv2::getImageOrientation: Orientation => Exif.Image.Orientation =>  1
digikam(4951)/KDCRAW KDcrawIface::RWeaverObserver::slotThreadBusy: RWeaverObserver: thread  1  busy
digikam(4951)/KEXIV2 KExiv2Iface::KExiv2::Private::printExiv2ExceptionError: Cannot load metadata from file   (Error # 11 :  /media/DiskphotosTests/planche_poisson_IFREMER.xcf: The file contains data of an unknown image type
digikam(4951)/KDCRAW KDcrawIface::KDcraw::loadEmbeddedPreview: Failed to load embedded RAW preview
digikam(4951)/digikam (core) Digikam::DImg::load: "/media/DiskphotosTests/planche_poisson_IFREMER.xcf"  : QIMAGE file identified
##################
QUIT
####################
digikam(4951)/KDCRAW KDcrawIface::RActionThreadBase::cancel: Cancel Main Thread
digikam(4951)/digikam (core) Digikam::MaintenanceMngr::stage3: stage3
digikam(4951)/digikam (core) Digikam::MaintenanceMngr::stage4: stage4
digikam(4951)/digikam (core) Digikam::MaintenanceMngr::stage5: stage5
digikam(4951)/digikam (core) Digikam::MaintenanceMngr::stage6: stage6
digikam(4951)/digikam (core) Digikam::MaintenanceMngr::stage7: stage7
digikam(4951)/KDCRAW KDcrawIface::RActionThreadBase::run: Exiting Action Thread
[Thread 0x93d91b40 (LWP 5013) exited]
digikam(4951)/KDCRAW KDcrawIface::RWeaverObserver::slotThreadSuspended: RWeaverObserver: thread  1  suspended
digikam(4951)/digikam (core) Digikam::MaintenanceThread::slotThreadFinished: List of Pending Jobs is empty
digikam(4951)/KGEOMAP KGeoMap::ItemMarkerTiler::slotSourceModelReset: ----
[Thread 0xab654b40 (LWP 4953) exited]
digikam(4951)/KDCRAW KDcrawIface::RActionThreadBase::cancel: Cancel Main Thread
Thread::requestAbort: not running.
digikam(4951)/KDCRAW KDcrawIface::RActionThreadBase::~RActionThreadBase: calling action thread destructor
digikam(4951)/KDCRAW KDcrawIface::RActionThreadBase::cancel: Cancel Main Thread
Thread::requestAbort: not running.
[Thread 0x94592b40 (LWP 5014) exited]
digikam(4951)/KDCRAW KDcrawIface::RActionThreadBase::cancel: Cancel Main Thread
digikam(4951)/KDCRAW KDcrawIface::RActionThreadBase::~RActionThreadBase: calling action thread destructor
digikam(4951)/KDCRAW KDcrawIface::RActionThreadBase::cancel: Cancel Main Thread
[Thread 0xaa2ffb40 (LWP 4958) exited]
digikam(4951)/digikam (core) Digikam::KMemoryInfo::update: Platform identified :  "LINUX"
digikam(4951)/digikam (core) Digikam::KMemoryInfo::bytes: AvailableRam:  141615104  (cache:  640679936 )
digikam(4951)/digikam (core) Digikam::KMemoryInfo::bytes: AvailableSwap:  1934073856
Fatal Error: Accessed global static 'FileReadWriteLockStaticPrivate *static_d()' after destruction. Defined at /home/eric/digikamgit2/dkgitdigikamsoftwarecompilation/core/libs/threadimageio/filereadwritelock.cpp:385

Program received signal SIGABRT, Aborted.
[Switching to Thread 0x95594b40 (LWP 5016)]
0xb7fdd424 in __kernel_vsyscall ()
Comment 37 e.longuemare 2013-11-02 15:03:04 UTC
With two monitor, CM check, digikam crash on reduce restore, and crash or don't quit while a task is in progress

--> crash when quit and a task is in progress
--> doesn't crash but doesn't quit when no task is in progress
Comment 38 e.longuemare 2013-11-02 15:22:23 UTC
Color profile was default digikam one, default CM config, no change except check or uncheck CM.
Comment 39 Marcel Wiesweg 2013-11-03 16:53:29 UTC
There is indeed a problem of having a static variable of a displaying widget in ThumbnailLoadThread. At the time of writing, I assume I was not aware of the implications.
A workaround for now could be storing an IccProfile for now in the static_d, instead of storing the QWidget, which is retrieved in setDisplayingWidget.
Comment 40 Marcel Wiesweg 2013-11-03 18:22:16 UTC
Git commit 5e19edff8afc8eeca9f3b9cbc92d3a54f23ae533 by Marcel Wiesweg.
Committed on 03/11/2013 at 18:16.
Pushed by mwiesweg into branch 'master'.

Do not store a QWidget in a static variable to retrieve the IccProfile for thumbnails.
This crashes in case the thread is used from a non-UI thread.
Instead, store the IccProfile when the widget is set. This is not perfect, the
previous solution was not perfect either.
Note: For thumbnails, the profile setting is global for performance reasons

M  +5    -5    libs/threadimageio/thumbnailloadthread.cpp
M  +0    -1    utilities/maintenance/thumbstask.cpp

http://commits.kde.org/digikam/5e19edff8afc8eeca9f3b9cbc92d3a54f23ae533
Comment 41 caulier.gilles 2013-11-03 21:27:35 UTC
Eric,

After last Marcel commit from comment #40, are you able to reproduce the crash ?

Gilles Caulier
Comment 42 caulier.gilles 2013-11-04 08:34:20 UTC
Eric,

I checked last commit from Marcel, and crash is not reproducible here...

Gilles Caulier
Comment 43 e.longuemare 2013-11-04 10:14:22 UTC
Thank you Gilles,

I will update, compile and test today.

Le lundi 04 novembre 2013 à 08:34 +0000, Gilles Caulier a écrit :
> https://bugs.kde.org/show_bug.cgi?id=326959
> 
> --- Comment #42 from Gilles Caulier <caulier.gilles@gmail.com> ---
> Eric,
> 
> I checked last commit from Marcel, and crash is not reproducible here...
> 
> Gilles Caulier
>
Comment 44 e.longuemare 2013-11-05 09:17:55 UTC
Hello,

Digikam exit normally :
#LOG GDB when exit#
digikam(20976)/KGEOMAP KGeoMap::ItemMarkerTiler::slotSourceModelReset: ----
[Thread 0xab654b40 (LWP 20981) exited]
digikam(20976)/KDCRAW KDcrawIface::RActionThreadBase::cancel: Cancel Main Thread
digikam(20976)/KDCRAW KDcrawIface::RActionThreadBase::~RActionThreadBase: calling action thread destructor
digikam(20976)/KDCRAW KDcrawIface::RActionThreadBase::cancel: Cancel Main Thread
[Thread 0xaa2ffb40 (LWP 20986) exited]
[Thread 0xaacffb40 (LWP 20982) exited]
[Inferior 1 (process 20976) exited normally]
#End log#

And no crash during thumbnail maintenance scan.

But digikam doesn't show thumbnails in main view, tag view ... with an other error :
## Log gdb no thumbnail is showned - slaved process fail to start ####
digikam(20976)/KGEOMAP KGeoMap::ItemMarkerTiler::slotSourceModelReset: ----
[New Thread 0x92e25b40 (LWP 21028)]
digikam(20976): couldn't create slave: "Unable to create io-slave:
klauncher said: Error loading 'kio_digikamdates'.
" 
digikam(20976)/digikam (core) Digikam::AlbumManager::slotDatesJobResult: Failed to list dates 
digikam(20976): couldn't create slave: "Unable to create io-slave:
klauncher said: Error loading 'kio_digikamalbums'.
" 
digikam(20976)/digikam (core) Digikam::ImageAlbumModel::slotResult: Failed to list url:  "Could not start process Unable to create io-slave:
klauncher said: Error loading 'kio_digikamalbums'.
." 
digikam(20976)/KIPI (loading) KIPI::PluginLoader::init: Plugin  "JPEGLossless"  (generic name:  "JPEGLossless" ) is in the ignore list from host application

digikam(20976)/KIPI (loading) KIPI::PluginLoader::init: Plugin  "JPEGLossless"  (generic name:  "JPEGLossless" ) is in the ignore list from host application

### end log ###

Componants :
digiKam version 4.0.0-beta1
Codec PGF parallélisé: Non
Composant graphique Marble: 0.16.2 (stable version)
Demosaic GPL2 pack support: Inconnu
Demosaic GPL3 pack support: Inconnu
Dématriçage parallélisé: Inconnu
Exiv2 peut écrire dans un fichier JP2: Oui
Exiv2 peut écrire dans un fichier JPEG: Oui
Exiv2 peut écrire dans un fichier PGF: Oui
Exiv2 peut écrire dans un fichier PNG: Oui
Exiv2 peut écrire dans un fichier TIFF: Oui
Exiv2 prend en charge les métadonnées XMP: Oui
LibCImg: 130
LibEigen: 3.0.5
LibExiv2: 0.22
LibJPEG: 80
LibJasper: 1.900.1
LibKDE: 4.11.2
LibKExiv2: 2.3.1
LibKGeoMap: 2.0.0
LibKdcraw: 2.4.0
LibLCMS: 2040
LibLensFun: 0.2.7-0
LibPGF: 6.12.27 - bibliothèque interne
LibPNG: 1.2.46
LibQt: 4.8.2
LibRaw: 0.15.4
LibTIFF: LIBTIFF, Version 3.9.5 Copyright (c) 1988-1996 Sam Leffler Copyright (c) 1991-1996 Silicon Graphics, Inc.
Prise en charge du codec RawSpeed: Inconnu
LibGphoto2: 2.4.14
LibKface: 3.0.0
LibKipi: 2.1.0
LibOpenCV: 2.4.5
Modules externes KIPI: 3.5.0
Moteur de base de données: QMYSQL
Serveur interne de base de données: Non


Date de compilation : Nov 4 2013 (cible : debugfull)
Rév. : ea2847ec161df82f8d64e70afdbc5d12feb7708e


How I'm building :
1 - do a ./download-repos in my sources folder :  dkgitdigikamsoftwarecompilation
2 - as nothing update (for digikam since 
3 - do a git pull in master branch of my sources in another folder : dkgitdigikammaster, that containt developpment repositorie
4 - do a diff of content of folder dkgitdigikammaster and dkgitdigikasoftwarecompilation/core/
5 - cp changed or added files from dkgidigikammaster to dkgitsofwarecompilation/core/
6 - do a make, then a make install in my builddigikamsofwarecompilation folder

Last commit on digikamsofwarecompilation :

commit 03a02db2c5a61d3843126b444dab05c9f4d8e05d
Author: Gilles Caulier <caulier.gilles@gmail.com>
Date:   Mon Oct 21 09:26:25 2013 +0200

    ENABLE_RAWSPEED is an obsolete compilation option

diff --git a/bootstrap.linux b/bootstrap.linux
index 5edf233..c748ed6 100755
--- a/bootstrap.linux
+++ b/bootstrap.linux
@@ -35,7 +35,6 @@ cmake -G "$MAKEFILES_TYPE" . \
       -DDIGIKAMSC_CHECKOUT_PO=off \
       -DENABLE_PRESENTATIONMODE=off\
       -DENABLE_LCMS2=on \
-      -DENABLE_RAWSPEED=on \
       -DENABLE_NEPOMUKSUPPORT=ON \
       -Wno-dev \
       ..
diff --git a/bootstrap.local b/bootstrap.local
index 5ecc46a..af4e3b4 100755
--- a/bootstrap.local
+++ b/bootstrap.local
@@ -60,6 +60,6 @@ cmake -G "$MAKEFILES_TYPE" . \
       -DDIGIKAMSC_CHECKOUT_PO=off \
       -DENABLE_PRESENTATIONMODE=off\
       -DENABLE_LCMS2=off \
-      -DENABLE_RAWSPEED=off \
+      -DENABLE_NEPOMUKSUPPORT=ON \
       -Wno-dev \
       ..
diff --git a/bootstrap.msvc.bat b/bootstrap.msvc.bat
index c697cbe..33edb75 100755
--- a/bootstrap.msvc.bat
+++ b/bootstrap.msvc.bat
@@ -31,7 +31,6 @@ cmake -G "NMake Makefiles" . ^
       -DDIGIKAMSC_USE_PRIVATE_KDEGRAPHICS=on ^
       -DDIGIKAMSC_COMPILE_DOC=off ^
       -DENABLE_LCMS2=off ^
-      -DENABLE_RAWSPEED=on ^
       -Wno-dev ^
       -DEXPAT_LIBRARY=%KDE4_INSTALL_DIR%/lib/expat.lib ^
       -DCMAKE_INCLUDE_PATH=%KDE4_INSTALL_DIR%/include ^

Last commit on digikam master development :
commit 27ad0e0a42c381afd6b7833de1845125376b77d8
Author: Marcel Wiesweg <marcel.wiesweg@gmx.de>
Date:   Mon Nov 4 19:45:41 2013 +0100

    There's a simple problem with slotAbortAll: The event loop is entered and never quits
    if there is no active ProgressItem.
    Add a check which returns from the method if the list of ProgressItems is empty.
    Gilles: Please check if this is ok.

diff --git a/libs/progressmanager/progressmanager.cpp b/libs/progressmanager/progressmanager.cpp
index ac6a0f7..57cf70b 100644
--- a/libs/progressmanager/progressmanager.cpp
+++ b/libs/progressmanager/progressmanager.cpp
@@ -580,6 +580,10 @@ void ProgressManager::slotAbortAll()
     QHash<QString,ProgressItem*> hash;
     {
         QMutexLocker lock(&d->mutex);
+        if (d->transactions.isEmpty())
+        {
+            return;
+        }
         hash = d->transactions;
     }



Is it right or I'm missing something ?

Thank you,

Eric
Comment 45 caulier.gilles 2013-11-05 09:20:04 UTC
Eric,

All is fine. I can close this file now...

Gilles Caulier
Comment 46 caulier.gilles 2014-01-11 09:05:00 UTC
*** Bug 329834 has been marked as a duplicate of this bug. ***
Comment 47 caulier.gilles 2014-02-08 05:40:55 UTC
*** Bug 330904 has been marked as a duplicate of this bug. ***
Comment 48 julien.t43+kde 2014-02-08 19:35:13 UTC
Sorry but it doesn't look solved to me.
I try yesterday, both from latest gist (4.0.0-beta3) and 3.5 compiled from src and the problem happens in both case...

attached a gdb trace (try twice w 4)
Comment 49 julien.t43+kde 2014-02-08 19:36:18 UTC
Created attachment 85051 [details]
gdb trace log
Comment 50 caulier.gilles 2014-02-10 09:26:46 UTC
*** Bug 330974 has been marked as a duplicate of this bug. ***
Comment 51 Marcos Vinicius Pereira 2014-03-13 12:32:27 UTC
Created attachment 85564 [details]
New crash information added by DrKonqi

digikam (3.4.0) on KDE Platform 4.11.5 using Qt 4.8.4

I asked digikam to update miniatures and fingerprints. Also, asked to locate duplicate files.

-- Backtrace (Reduced):
#6  0x00007f83859d7f77 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
#7  0x00007f83859db5e8 in __GI_abort () at abort.c:90
#8  0x00007f83859d0d43 in __assert_fail_base (fmt=0x7f838c129a01 "%s%s%s:%u: %s%sAsser\303\247\303\243o `%s' falhou.\n%n", assertion=assertion@entry=0x7f8384002550 "!xcb_xlib_threads_sequence_lost", file=file@entry=0x7f838400239b "../../src/xcb_io.c", line=line@entry=274, function=function@entry=0x7f8384002856 <__PRETTY_FUNCTION__.14361> "poll_for_event") at assert.c:92
#9  0x00007f83859d0df2 in __GI___assert_fail (assertion=assertion@entry=0x7f8384002550 "!xcb_xlib_threads_sequence_lost", file=file@entry=0x7f838400239b "../../src/xcb_io.c", line=line@entry=274, function=function@entry=0x7f8384002856 <__PRETTY_FUNCTION__.14361> "poll_for_event") at assert.c:101
#10 0x00007f8383f92ca9 in poll_for_event (dpy=dpy@entry=0x2a0a470) at ../../src/xcb_io.c:271