Summary: | Digikam crash while scanning pictures for thumnails maintenance | ||
---|---|---|---|
Product: | [Applications] digikam | Reporter: | e.longuemare |
Component: | Maintenance-Thumbs | Assignee: | 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
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... 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 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 Hello, I launch the same process now to see if I can reproduce it. Eric 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 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 And for memory, it's good. Digikam don't full fill memory anymore when rebuilding thumbnails. 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 ? 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 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 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 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 - 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 I can reproduce the problem here, to reduce and restore main window during a progress task. Gilles Caulier 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 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 Created attachment 83265 [details]
bootstrap-eclipse.local for building digikam in out-of-source to local dev dir for eclipse kepler C++ 4.3
Created attachment 83266 [details]
starting script for launching digikam in local dev folder for testing, debugging ..
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 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 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() 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 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 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 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. 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.
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.
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 Yes Gilles. I have lend it to a friend. It will be back this afternoon. I will try to reproduce. Yes I use dual screen. But not this morning. 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 Yes 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. ########### 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 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. 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 () 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 Color profile was default digikam one, default CM config, no change except check or uncheck CM. 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. 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 Eric, After last Marcel commit from comment #40, are you able to reproduce the crash ? Gilles Caulier Eric, I checked last commit from Marcel, and crash is not reproducible here... Gilles Caulier 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
>
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 Eric, All is fine. I can close this file now... Gilles Caulier *** Bug 329834 has been marked as a duplicate of this bug. *** *** Bug 330904 has been marked as a duplicate of this bug. *** 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) Created attachment 85051 [details]
gdb trace log
*** Bug 330974 has been marked as a duplicate of this bug. *** 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
|