Bug 220236 - marble 100% CPU on exit
Summary: marble 100% CPU on exit
Status: RESOLVED FIXED
Alias: None
Product: marble
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: unspecified Linux
: NOR normal
Target Milestone: ---
Assignee: marble-bugs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-12-27 10:06 UTC by Mark Purcell
Modified: 2010-01-01 18:39 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Mark Purcell 2009-12-27 10:06:40 UTC
Version:           1.0.0 (using 4.3.4 (KDE 4.3.4), Debian packages)
Compiler:          cc
OS:                Linux (i686) release 2.6.32-trunk-686

When I exit digikam normally, CPU goes to 100%, on every exit.

The application appears to close normally from the GUI, but it is still running in the background at 100% CPU

A strace reveals the following:

stat64("/home/mark/.kde/share/config/digikamrcR24783.new", {st_mode=S_IFREG|0644, st_size=14998, ...}) = 0                     
close(69)                               = 0                                                                                    
munmap(0x97aea000, 4096)                = 0                                                                                    
rename("/home/mark/.kde/share/config/digikamrcR24783.new", "/home/mark/.kde/share/config/digikamrc") = 0                       
unlink("/home/mark/.kde/share/config/digikamrc.lock") = 0                                                                      
clock_gettime(CLOCK_MONOTONIC, {486803, 801960455}) = 0                                                                        
clock_gettime(CLOCK_MONOTONIC, {486803, 801985458}) = 0                                                                        
clock_gettime(CLOCK_MONOTONIC, {486803, 804023427}) = 0                                                                        
clock_gettime(CLOCK_MONOTONIC, {486803, 804061630}) = 0                                                                        
clock_gettime(CLOCK_MONOTONIC, {486803, 804116665}) = 0                                                                        
clock_gettime(CLOCK_MONOTONIC, {486803, 804140201}) = 0                                                                        
clock_gettime(CLOCK_MONOTONIC, {486803, 804628252}) = 0                                                                        
clock_gettime(CLOCK_MONOTONIC, {486803, 804656887}) = 0                                                                        
clock_gettime(CLOCK_MONOTONIC, {486803, 804699351}) = 0                                                                        
clock_gettime(CLOCK_MONOTONIC, {486803, 804722608}) = 0                                                                        
clock_gettime(CLOCK_MONOTONIC, {486803, 804761859}) = 0
clock_gettime(CLOCK_MONOTONIC, {486803, 804784836}) = 0
clock_gettime(CLOCK_MONOTONIC, {486803, 804824017}) = 0
clock_gettime(CLOCK_MONOTONIC, {486803, 804846925}) = 0
clock_gettime(CLOCK_MONOTONIC, {486803, 804988773}) = 0
clock_gettime(CLOCK_MONOTONIC, {486803, 805012309}) = 0
clock_gettime(CLOCK_MONOTONIC, {486803, 805049814}) = 0
clock_gettime(CLOCK_MONOTONIC, {486803, 805072932}) = 0
clock_gettime(CLOCK_MONOTONIC, {486803, 805107643}) = 0
clock_gettime(CLOCK_MONOTONIC, {486803, 805130760}) = 0
clock_gettime(CLOCK_MONOTONIC, {486803, 808363853}) = 0
clock_gettime(CLOCK_MONOTONIC, {486803, 808394653}) = 0
clock_gettime(CLOCK_MONOTONIC, {486803, 808434183}) = 0
clock_gettime(CLOCK_MONOTONIC, {486803, 808457510}) = 0
clock_gettime(CLOCK_MONOTONIC, {486803, 808495434}) = 0
clock_gettime(CLOCK_MONOTONIC, {486803, 808518482}) = 0
clock_gettime(CLOCK_MONOTONIC, {486803, 820982287}) = 0
clock_gettime(CLOCK_MONOTONIC, {486803, 821022585}) = 0
clock_gettime(CLOCK_MONOTONIC, {486803, 821102693}) = 0
clock_gettime(CLOCK_MONOTONIC, {486803, 821126858}) = 0
clock_gettime(CLOCK_MONOTONIC, {486803, 821497576}) = 0
clock_gettime(CLOCK_MONOTONIC, {486803, 821522090}) = 0
clock_gettime(CLOCK_MONOTONIC, {486803, 821560643}) = 0
clock_gettime(CLOCK_MONOTONIC, {486803, 821584109}) = 0
clock_gettime(CLOCK_MONOTONIC, {486803, 821619798}) = 0
clock_gettime(CLOCK_MONOTONIC, {486803, 821643125}) = 0
munmap(0xa1b00000, 1048576)             = 0
munmap(0xa1e00000, 1048576)             = 0
munmap(0xa1d00000, 1048576)             = 0
madvise(0xa202c000, 868352, MADV_DONTNEED) = 0
futex(0xa393bc2c, FUTEX_WAIT_PRIVATE, 1, NULL^C <unfinished ...>


The futex just sits there and does not finish correctly.

The "^C <unfinished>" only appears once I kill the process manually after a few minutes.

This could be related to bug 218467, however I do confirm I have all nepomuk services off.

Mark
Comment 1 Marcel Wiesweg 2009-12-27 20:41:56 UTC
Please attach gdb to the running process. If it's using 100% CPU you can get a backtrace from the thread responsible.
Comment 2 Mark Purcell 2009-12-28 00:38:36 UTC
#0  0xb77f7424 in __kernel_vsyscall ()                                                                                                                                                                         
#1  0xb47cc0a5 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/i686/cmov/libpthread.so.0                                                                                                                        
#2  0xb4bd982d in pthread_cond_wait () from /lib/i686/cmov/libc.so.6                                                                                                                                           
#3  0xb4dd05c2 in QWaitConditionPrivate::wait (this=0xa3c80210, mutex=0xa3c801fc, time=4294967295) at thread/qwaitcondition_unix.cpp:87                                                                        
#4  QWaitCondition::wait (this=0xa3c80210, mutex=0xa3c801fc, time=4294967295) at thread/qwaitcondition_unix.cpp:159                                                                                            
#5  0xb4dcf77b in QThread::wait (this=0xa3cfd0f8, time=4294967295) at thread/qthread_unix.cpp:484                                                                                                              
#6  0xa8a1f69e in ?? () from /usr/lib/kde4/plugins/marble/GpsdPositionProviderPlugin.so                                                                                                                        
#7  0xb4ecf04f in QObjectPrivate::deleteChildren (this=0xb030ce78) at kernel/qobject.cpp:1846                                                                                                                  
#8  0xb4ed684b in ~QObject (this=0xa17eb28, __in_chrg=<value optimized out>) at kernel/qobject.cpp:836                                                                                                         
#9  0xb65dd713 in ?? () from /usr/lib/libmarblewidget.so.4                                                                                                                                                     
#10 0xb65e2c6c in ?? () from /usr/lib/libmarblewidget.so.4                                                                                                                                                     
#11 0xb6547e2f in Marble::MarbleModel::~MarbleModel() () from /usr/lib/libmarblewidget.so.4                                                                                                                    
#12 0xb654e2a0 in Marble::MarbleMap::~MarbleMap() () from /usr/lib/libmarblewidget.so.4                                                                                                                        
#13 0xb65405d6 in Marble::MarbleWidget::~MarbleWidget() () from /usr/lib/libmarblewidget.so.4                                                                                                                  
#14 0xb6a98f11 in ~MarbleSubClassWidget (this=0xa155d68, __in_chrg=<value optimized out>)                                                                                                                      
    at /build/buildd-digikam_1.0.0-1-i386-kdhbp1/digikam-1.0.0/obj-i486-linux-gnu/digikam/../../libs/imageproperties/markerclusterholder.h:465
#15 0xb4ecf04f in QObjectPrivate::deleteChildren (this=0xa156128) at kernel/qobject.cpp:1846
#16 0xb53ffceb in ~QWidget (this=0xa155120, __in_chrg=<value optimized out>) at kernel/qwidget.cpp:1367
#17 0xb57aa881 in ~QFrame (this=0xa155120, __in_chrg=<value optimized out>) at widgets/qframe.cpp:243
#18 0xb6a8e28f in ~WorldMapWidget (this=0xa155120, __in_chrg=<value optimized out>) at /build/buildd-digikam_1.0.0-1-i386-kdhbp1/digikam-1.0.0/libs/imageproperties/worldmapwidget.cpp:214
#19 0xb4ecf04f in QObjectPrivate::deleteChildren (this=0xa154dd8) at kernel/qobject.cpp:1846
#20 0xb53ffceb in ~QWidget (this=0x9a99bf8, __in_chrg=<value optimized out>) at kernel/qwidget.cpp:1367
#21 0xb6a88718 in ~ImagePropertiesGPSTab (this=0x9a99bf8, __in_chrg=<value optimized out>) at /build/buildd-digikam_1.0.0-1-i386-kdhbp1/digikam-1.0.0/libs/imageproperties/imagepropertiesgpstab.cpp:206
#22 0xb4ecf04f in QObjectPrivate::deleteChildren (this=0xa09ad40) at kernel/qobject.cpp:1846
#23 0xb53ffceb in ~QWidget (this=0x9f71b88, __in_chrg=<value optimized out>) at kernel/qwidget.cpp:1367
#24 0xb57aa881 in ~QFrame (this=0x9f71b88, __in_chrg=<value optimized out>) at widgets/qframe.cpp:243
#25 0xb5818db5 in ~QStackedWidget (this=0x9f71b88, __in_chrg=<value optimized out>) at widgets/qstackedwidget.cpp:152
#26 0xb4ecf04f in QObjectPrivate::deleteChildren (this=0x98ccc40) at kernel/qobject.cpp:1846
#27 0xb53ffceb in ~QWidget (this=0x98d0148, __in_chrg=<value optimized out>) at kernel/qwidget.cpp:1367
#28 0xb57aa881 in ~QFrame (this=0x98d0148, __in_chrg=<value optimized out>) at widgets/qframe.cpp:243
#29 0xb5812acb in ~QSplitter (this=0x98d0148, __in_chrg=<value optimized out>) at widgets/qsplitter.cpp:1008
#30 0xb6a11d7f in ~SidebarSplitter (this=0x98d0148, __in_chrg=<value optimized out>) at /build/buildd-digikam_1.0.0-1-i386-kdhbp1/digikam-1.0.0/libs/widgets/common/sidebar.cpp:448
#31 0xb4ecf04f in QObjectPrivate::deleteChildren (this=0x98c1278) at kernel/qobject.cpp:1846
#32 0xb53ffceb in ~QWidget (this=0x9868420, __in_chrg=<value optimized out>) at kernel/qwidget.cpp:1367
#33 0xb57aa881 in ~QFrame (this=0x9868420, __in_chrg=<value optimized out>) at widgets/qframe.cpp:243
#34 0xb6072c71 in ~KHBox (this=0x9868420, __in_chrg=<value optimized out>) at ../../kdeui/widgets/khbox.cpp:51
#35 0x082c46e4 in ~DigikamView (this=0x9868420, __in_chrg=<value optimized out>) at /build/buildd-digikam_1.0.0-1-i386-kdhbp1/digikam-1.0.0/digikam/digikamview.cpp:296
#36 0x082a20f1 in ~DigikamApp (this=0x978d2e8, __in_chrg=<value optimized out>, __vtt_parm=<value optimized out>) at /build/buildd-digikam_1.0.0-1-i386-kdhbp1/digikam-1.0.0/digikam/digikamapp.cpp:303
#37 0xb4eced35 in qDeleteInEventHandler (o=0x1) at kernel/qobject.cpp:3814
#38 0xb4ed060b in QObject::event (this=0x978d2e8, e=0xbd22350) at kernel/qobject.cpp:1093
#39 0xb5404300 in QWidget::event (this=0x978d2e8, event=0xbd22350) at kernel/qwidget.cpp:7951
#40 0xb57c78f7 in QMainWindow::event (this=0x978d2e8, event=0xbd22350) at widgets/qmainwindow.cpp:1399
#41 0xb608abd7 in KMainWindow::event (this=0x978d2e8, ev=0xbd22350) at ../../kdeui/widgets/kmainwindow.cpp:1101
#42 0xb60cf81c in KXmlGuiWindow::event (this=0x978d2e8, ev=0xbd22350) at ../../kdeui/xmlgui/kxmlguiwindow.cpp:131
#43 0xb53aea94 in QApplicationPrivate::notify_helper (this=0x969f658, receiver=0x978d2e8, e=0xbd22350) at kernel/qapplication.cpp:4065
#44 0xb53b6cc2 in QApplication::notify (this=0xbfaeddc8, receiver=0x978d2e8, e=0xbd22350) at kernel/qapplication.cpp:4030
#45 0xb5fa862d in KApplication::notify (this=0xbfaeddc8, receiver=0x978d2e8, event=0xbd22350) at ../../kdeui/kernel/kapplication.cpp:302
#46 0xb4ec01eb in QCoreApplication::notifyInternal (this=0xbfaeddc8, receiver=0x978d2e8, event=0xbd22350) at kernel/qcoreapplication.cpp:610
#47 0xb4ec0e2e in QCoreApplication::sendEvent (receiver=0x0, event_type=0, data=0x96798a8) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:213
---Type <return> to continue, or q <return> to quit---
#48 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x96798a8) at kernel/qcoreapplication.cpp:1247
#49 0xb4ec100d in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at kernel/qcoreapplication.cpp:1140
#50 0xb4eeb4cf in QCoreApplication::sendPostedEvents (s=0x96a1ac0) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:218
#51 postEventSourceDispatch (s=0x96a1ac0) at kernel/qeventdispatcher_glib.cpp:276
#52 0xb343eb38 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#53 0xb34423d0 in ?? () from /lib/libglib-2.0.so.0
#54 0xb3442503 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#55 0xb4eeb041 in QEventDispatcherGlib::processEvents (this=0x96795f8, flags=...) at kernel/qeventdispatcher_glib.cpp:407
#56 0xb544e305 in QGuiEventDispatcherGlib::processEvents (this=0x96795f8, flags=...) at kernel/qguieventdispatcher_glib.cpp:202
#57 0xb4ebe83a in QEventLoop::processEvents (this=0xbfaedd30, flags=...) at kernel/qeventloop.cpp:149
#58 0xb4ebec82 in QEventLoop::exec (this=0xbfaedd30, flags=...) at kernel/qeventloop.cpp:201
#59 0xb4ec10d9 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:888
#60 0xb53ae917 in QApplication::exec () at kernel/qapplication.cpp:3525
#61 0x083bb3cb in main (argc=1, argv=0xbfaee214) at /build/buildd-digikam_1.0.0-1-i386-kdhbp1/digikam-1.0.0/digikam/main.cpp:195
Comment 3 caulier.gilles 2009-12-28 01:41:22 UTC
Mark,

Crash appears in marblewidget. Which version you use ?

Gilles Caulier
Comment 4 Mark Purcell 2009-12-28 02:01:02 UTC
On Monday 28 December 2009 11:41:23 Gilles Caulier wrote:
> Crash appears in marblewidget. Which version you use ?

Gilles,

Just to be clear, there is no crash.

I exit digikam and the GUI closes, but digikam remains running in the 
background.  I obtained this trace by attaching gdb to the running process.

Here is my system information:

Marble Desktop Globe
Version 0.8.1
Using KDE 4.3.4 (KDE 4.3.4)

Mark

-- System Information:
Debian Release: squeeze/sid
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: i386 (i686)

Kernel: Linux 2.6.32-trunk-686 (SMP w/2 CPU cores)
Locale: LANG=en_AU, LC_CTYPE=en_AU (charmap=ISO-8859-1)
Shell: /bin/sh linked to /bin/bash

Versions of packages digikam depends on:
ii  kdebase-runtime         4:4.3.4-2        runtime components from the offici
ii  kdelibs5                4:4.3.4-1        core libraries for all KDE 4 appli
ii  kdepimlibs5             4:4.3.4-1        core libraries for KDE PIM 4 appli
ii  libc6                   2.10.2-2         GNU C Library: Shared libraries
ii  libgcc1                 1:4.4.2-6        GCC support library
ii  libglib2.0-0            2.22.3-2         The GLib library of C routines
ii  libgphoto2-2            2.4.6-1          gphoto2 digital camera library
ii  libgphoto2-port0        2.4.6-1          gphoto2 digital camera port librar
ii  libjasper1              1.900.1-6.1      The JasPer JPEG-2000 runtime libra
ii  libjpeg62               6b-15            The Independent JPEG Group's JPEG
ii  libkdcraw7              4:4.3.4-1        RAW picture decoding C++ library (
ii  libkexiv2-7             4:4.3.4-1        Qt like interface for the libexiv2
ii  libkipi6                4:4.3.4-1        library for apps that want to use
ii  liblcms1                1.18.dfsg-1      Color management library
ii  liblensfun0             0.2.4-1          Lens Correction library - Runtime
ii  liblqr-1-0              0.4.1-1          converts plain array images into m
ii  libmarble4              4:4.3.4-1        Marble globe widget library
ii  libphonon4              4:4.5.3-4        Qt 4 Phonon module
ii  libpng12-0              1.2.41-1         PNG library - runtime
ii  libqt4-dbus             4:4.5.3-4        Qt 4 D-Bus module
ii  libqt4-network          4:4.5.3-4        Qt 4 network module
ii  libqt4-qt3support       4:4.5.3-4        Qt 3 compatibility library for Qt
ii  libqt4-sql              4:4.5.3-4        Qt 4 SQL module
ii  libqt4-sql-sqlite       4:4.5.3-4        Qt 4 SQLite 3 database driver
ii  libqt4-svg              4:4.5.3-4        Qt 4 SVG module
ii  libqt4-xml              4:4.5.3-4        Qt 4 XML module
ii  libqtcore4              4:4.5.3-4        Qt 4 core module
ii  libqtgui4               4:4.5.3-4        Qt 4 GUI module
ii  libsoprano4             2.3.1+dfsg.1-1   libraries for the Soprano RDF fram
ii  libstdc++6              4.4.2-6          The GNU Standard C++ Library v3
ii  libtiff4                3.9.2-1          Tag Image File Format (TIFF) libra
ii  libx11-6                2:1.3.2-1        X11 client-side library
ii  libxau6                 1:1.0.5-1        X11 authorisation library
ii  libxdmcp6               1:1.0.3-1        X11 Display Manager Control Protoc
ii  phonon                  4:4.5.3-4        Qt 4 Phonon module metapackage
ii  zlib1g                  1:1.2.3.4.dfsg-2 compression library - runtime
Comment 5 Mark Purcell 2009-12-28 02:17:45 UTC
https://bugs.kde.org/show_bug.cgi?id=220236

On Monday 28 December 2009 11:41:23 Gilles Caulier wrote:
> Crash appears in marblewidget. Which version you use ?

Gillies,

I can also confirm this behaviour when running the standard marble application, 
ie without digikam. When quitting marble, the GUI closes normally, but marble
continues to run at 100% in the background.

Thus as you suspected the issue lies with marble, although it does effect digikam.

I have also obtained a more complete backtrack, marble only, with marble symbols.

Are you able to reassign this report to marblewidget in the KDE bug tracker?

Mark


#0  0xb7804424 in __kernel_vsyscall ()                                                                                                                                                                         
#1  0xb4b1e0a5 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/i686/cmov/libpthread.so.0                                                                                                                        
#2  0xb5dba82d in pthread_cond_wait () from /lib/i686/cmov/libc.so.6                                                                                                                                           
#3  0xb5fb15c2 in QWaitConditionPrivate::wait (this=0xadd7d0a0, mutex=0xadd7d08c, time=4294967295) at thread/qwaitcondition_unix.cpp:87
#4  QWaitCondition::wait (this=0xadd7d0a0, mutex=0xadd7d08c, time=4294967295) at thread/qwaitcondition_unix.cpp:159
#5  0xb5fb077b in QThread::wait (this=0xaddb0490, time=4294967295) at thread/qthread_unix.cpp:484
#6  0xb43ff69e in ~GpsdPositionProviderPlugin (this=0xadd6a600, __in_chrg=<value optimized out>) at ../../../../../../marble/src/plugins/positionprovider/gpsd/GpsdPositionProviderPlugin.cpp:101
#7  0xb60b004f in QObjectPrivate::deleteChildren (this=0xade00690) at kernel/qobject.cpp:1846
#8  0xb60b784b in ~QObject (this=0xade00600, __in_chrg=<value optimized out>) at kernel/qobject.cpp:836
#9  0xb76fb713 in ~PositionTracking (this=0xade00600, __in_chrg=<value optimized out>) at ../../../../marble/src/lib/gps/PositionTracking.cpp:71
#10 0xb7700c6c in ~GpsLayer (this=0x85c1cc0, __in_chrg=<value optimized out>) at ../../../../marble/src/lib/gps/GpsLayer.cpp:48
#11 0xb7665e2f in ~MarbleModel (this=0x8565568, __in_chrg=<value optimized out>) at ../../../../marble/src/lib/MarbleModel.cpp:241
#12 0xb766c2a0 in ~MarbleMap (this=0x8580718, __in_chrg=<value optimized out>) at ../../../../marble/src/lib/MarbleMap.cpp:377
#13 0xb7660036 in ~MarbleWidgetPrivate (this=0x859c220, __in_chrg=<value optimized out>) at ../../../../marble/src/lib/MarbleWidget.cpp:84
#14 ~MarbleWidget (this=0x859c220, __in_chrg=<value optimized out>) at ../../../../marble/src/lib/MarbleWidget.cpp:140
#15 0xb60b004f in QObjectPrivate::deleteChildren (this=0x8468508) at kernel/qobject.cpp:1846
#16 0xb65e0ceb in ~QWidget (this=0x84684f0, __in_chrg=<value optimized out>) at kernel/qwidget.cpp:1367
#17 0xb698b881 in ~QFrame (this=0x84684f0, __in_chrg=<value optimized out>) at widgets/qframe.cpp:243
#18 0xb69f3e8b in ~QSplitter (this=0x84684f0, __in_chrg=<value optimized out>) at widgets/qsplitter.cpp:1008
#19 0xb60b004f in QObjectPrivate::deleteChildren (this=0x8468110) at kernel/qobject.cpp:1846
#20 0xb65e0ceb in ~QWidget (this=0x8465060, __in_chrg=<value optimized out>) at kernel/qwidget.cpp:1367
#21 0x08054c6e in ~ControlView (this=0x8465060, __in_chrg=<value optimized out>) at ../../../marble/src/ControlView.cpp:62
#22 0xb77bfde0 in ~Part (this=0x8467e88, __vtt_parm=0x8077348, __in_chrg=<value optimized out>) at ../../kparts/part.cpp:208
#23 0xb77c010a in ~ReadOnlyPart (this=0x8467e88, __vtt_parm=0x8077344, __in_chrg=<value optimized out>) at ../../kparts/part.cpp:459
#24 0x080635e8 in ~MarblePart (this=0x8467e88, __in_chrg=<value optimized out>, __vtt_parm=<value optimized out>) at ../../../marble/src/marble_part.cpp:126
#25 0x0805ac84 in ~MainWindow (this=0x84623b0, __in_chrg=<value optimized out>, __vtt_parm=<value optimized out>) at ../../../marble/src/KdeMainWindow.cpp:64
#26 0xb60afd35 in qDeleteInEventHandler (o=0x1) at kernel/qobject.cpp:3814
#27 0xb60b160b in QObject::event (this=0x84623b0, e=0x8c3fb38) at kernel/qobject.cpp:1093
#28 0xb65e5300 in QWidget::event (this=0x84623b0, event=0x8c3fb38) at kernel/qwidget.cpp:7951
#29 0xb69a88f7 in QMainWindow::event (this=0x84623b0, event=0x8c3fb38) at widgets/qmainwindow.cpp:1399
#30 0xb710fbd7 in KMainWindow::event (this=0x84623b0, ev=0x8c3fb38) at ../../kdeui/widgets/kmainwindow.cpp:1101
#31 0xb715481c in KXmlGuiWindow::event (this=0x84623b0, ev=0x8c3fb38) at ../../kdeui/xmlgui/kxmlguiwindow.cpp:131
#32 0xb658fa94 in QApplicationPrivate::notify_helper (this=0x841eb30, receiver=0x84623b0, e=0x8c3fb38) at kernel/qapplication.cpp:4065
#33 0xb6597cc2 in QApplication::notify (this=0xbfd17278, receiver=0x84623b0, e=0x8c3fb38) at kernel/qapplication.cpp:4030
#34 0xb702d62d in KApplication::notify (this=0xbfd17278, receiver=0x84623b0, event=0x8c3fb38) at ../../kdeui/kernel/kapplication.cpp:302
#35 0xb60a11eb in QCoreApplication::notifyInternal (this=0xbfd17278, receiver=0x84623b0, event=0x8c3fb38) at kernel/qcoreapplication.cpp:610
#36 0xb60a1e2e in QCoreApplication::sendEvent (receiver=0x0, event_type=0, data=0x83f9938) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:213
#37 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x83f9938) at kernel/qcoreapplication.cpp:1247
#38 0xb60a200d in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at kernel/qcoreapplication.cpp:1140
#39 0xb60cc4cf in QCoreApplication::sendPostedEvents (s=0x8429158) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:218
#40 postEventSourceDispatch (s=0x8429158) at kernel/qeventdispatcher_glib.cpp:276
#41 0xb4975b38 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#42 0xb49793d0 in ?? () from /lib/libglib-2.0.so.0
#43 0xb4979503 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#44 0xb60cc041 in QEventDispatcherGlib::processEvents (this=0x8408f58, flags=...) at kernel/qeventdispatcher_glib.cpp:407
#45 0xb662f305 in QGuiEventDispatcherGlib::processEvents (this=0x8408f58, flags=...) at kernel/qguieventdispatcher_glib.cpp:202
#46 0xb609f83a in QEventLoop::processEvents (this=0xbfd17200, flags=...) at kernel/qeventloop.cpp:149
#47 0xb609fc82 in QEventLoop::exec (this=0xbfd17200, flags=...) at kernel/qeventloop.cpp:201
#48 0xb60a20d9 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:888
#49 0xb658f917 in QApplication::exec () at kernel/qapplication.cpp:3525
#50 0x0805a925 in main (argc=1, argv=0xbfd17784) at ../../../marble/src/kdemain.cpp:286
Comment 6 caulier.gilles 2009-12-28 12:29:50 UTC
Well, sound like a marblewidget problem. Like you know, digiKam use it for geolocation purpose.

I move this entry to marble component.

Gilles Caulier
Comment 7 Mark Purcell 2009-12-30 22:18:38 UTC
On Wednesday 30 December 2009 23:29:47 Dietz Pröpper wrote:
> Hi,
> 
> I have already mailed to the list regarding this issue.
> But it seems to me that not nepomuk is the culprit, as indicated
> in the discussion. (see bug #560893)
> 
> I built me a completely nepomuk-free digikam (at least I think I did ;-))
> but can still observe the same behaviour. Digikam eats 90+% of cpu time
> after a short time running and does not terminate properly.
> 
> Attached is a strace of a digikam running mad, being closed, hanging around
> and then being killed.

Dietz,

Could I ask you to start the marble application, without digikam, and see if 
you get the same result.

I suspect this issue is being caused by the marble plugin widget in digikam.

Have a look at this report of mine:
https://bugs.kde.org/show_bug.cgi?id=220236

Thanks,
Mark
Comment 8 Mark Purcell 2009-12-31 13:22:43 UTC
*** Bug 218467 has been marked as a duplicate of this bug. ***
Comment 9 dietz 2009-12-31 13:50:32 UTC
Me:
> As far as I can tell from a short test, downgrading libmarble does not
> affect digikam's marble integration.

To clarify, it does not affect digikam apart from resolving the 
cpu/shutdown issue ;-).
Comment 10 dietz 2009-12-31 13:50:33 UTC
Hi Mark,

Mark Purcell:
> Could I ask you to start the marble application, without digikam, and
>  see if you get the same result.

Yeah, exactly the same. Eats up lots of CPU and locks up on exit. I can 
supply strace or gdb output if needed.

> I suspect this issue is being caused by the marble plugin widget in
>  digikam.

I second that. Downgrading marble to the version from kde 4.3.2 resolves
the hang during digikam shutting down and also the cpu issue seems to have 
gone. (I tested against the digikam from unstable, not the one compiled by 
me. Needs a "--force-depends" during install due to a dependency on 
libmarble4 from 4.3.4.)

As far as I can tell from a short test, downgrading libmarble does not 
affect digikam's marble integration.

regards,
	Dietz
Comment 11 Mark Purcell 2009-12-31 13:50:34 UTC
----------  Forwarded Message  ----------

Subject: Re: [Bug 220236] Re: digikam still unuseable for me
Date: Thursday 31 December 2009
From: Dietz Pröpper <dietz@rotfl.franken.de>
To: debian-kde@lists.debian.org

Hi Mark,

Mark Purcell:
> Could I ask you to start the marble application, without digikam, and
>  see if you get the same result.

Yeah, exactly the same. Eats up lots of CPU and locks up on exit. I can 
supply strace or gdb output if needed.

> I suspect this issue is being caused by the marble plugin widget in
>  digikam.

I second that. Downgrading marble to the version from kde 4.3.2 resolves
the hang during digikam shutting down and also the cpu issue seems to have 
gone. (I tested against the digikam from unstable, not the one compiled by 
me. Needs a "--force-depends" during install due to a dependency on 
libmarble4 from 4.3.4.)

As far as I can tell from a short test, downgrading libmarble does not 
affect digikam's marble integration.

regards,
	Dietz

-------------------------------------------------------
Comment 12 Dennis Nienhüser 2010-01-01 17:58:55 UTC
SVN commit 1068592 by nienhueser:

PositionTracking derives from QObject and as such must not be destructed with delete. Instead, pass ourself as owner at construction time and let QObject handle the destruction.
CCBUG: 220236


 M  +1 -2      GpsLayer.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1068592
Comment 13 Dennis Nienhüser 2010-01-01 18:39:22 UTC
SVN commit 1068626 by nienhueser:

If the thread does not stop voluntarily within five seconds, kill it.
BUG: 220236


 M  +8 -1      GpsdPositionProviderPlugin.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1068626