Bug 262067 - Crash when closing 2.0.0 beta 1
Summary: Crash when closing 2.0.0 beta 1
Status: RESOLVED FIXED
Alias: None
Product: digikam
Classification: Applications
Component: Geolocation-Marble (show other bugs)
Version: unspecified
Platform: Ubuntu Linux
: NOR crash
Target Milestone: ---
Assignee: Digikam Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-01-04 13:17 UTC by Julien Narboux
Modified: 2017-08-18 19:59 UTC (History)
4 users (show)

See Also:
Latest Commit:
Version Fixed In: 2.0.0


Attachments
New crash information added by DrKonqi (11.54 KB, text/plain)
2011-01-04 14:19 UTC, Julien Narboux
Details
Check whether backends are ready (11.57 KB, patch)
2011-01-04 20:20 UTC, Michael G. Hansen
Details
New crash information added by DrKonqi (23.52 KB, text/plain)
2011-01-05 10:04 UTC, Julien Narboux
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Julien Narboux 2011-01-04 13:17:04 UTC
Application: digikam (2.0.0-beta1)
KDE Platform Version: 4.5.1 (KDE 4.5.1)
Qt Version: 4.7.0
Operating System: Linux 2.6.35-24-generic i686
Distribution: Ubuntu 10.10

-- Information about the crash:
- What I was doing when the application crashed:

I closed digikam after playing a bit with non destructive editing and gps location of pictures.

The crash does not seem to be reproducible.

-- Backtrace:
Application: digiKam (digikam), signal: Segmentation fault
[Current thread is 1 (Thread 0xb522aac0 (LWP 29314))]

Thread 10 (Thread 0xb2fe2b70 (LWP 29315)):
#0  0x0033d416 in __kernel_vsyscall ()
#1  0x005544dc in pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_wait.S:169
#2  0x054fc9c7 in wait (this=0x9b4e7c4, mutex=0x9b4e7c0, time=4294967295) at thread/qwaitcondition_unix.cpp:88
#3  QWaitCondition::wait (this=0x9b4e7c4, mutex=0x9b4e7c0, time=4294967295) at thread/qwaitcondition_unix.cpp:160
#4  0x082a28de in Digikam::ScanController::run (this=0x9b43a18) at /home/jnarboux/digikam-2.0.0-beta1/core/digikam/scancontroller.cpp:599
#5  0x054fbdf9 in QThreadPrivate::start (arg=0x9b43a18) at thread/qthread_unix.cpp:266
#6  0x0054fcc9 in start_thread (arg=0xb2fe2b70) at pthread_create.c:304
#7  0x019eb69e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 9 (Thread 0xb27e1b70 (LWP 29321)):
#0  0x0033d416 in __kernel_vsyscall ()
#1  0x005544dc in pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_wait.S:169
#2  0x054fc9c7 in wait (this=0x9cd45a0, mutex=0x9cd459c, time=4294967295) at thread/qwaitcondition_unix.cpp:88
#3  QWaitCondition::wait (this=0x9cd45a0, mutex=0x9cd459c, time=4294967295) at thread/qwaitcondition_unix.cpp:160
#4  0x063280d3 in Digikam::ParkingThread::run (this=0x9cd4590) at /home/jnarboux/digikam-2.0.0-beta1/core/libs/threads/threadmanager.cpp:119
#5  0x054fbdf9 in QThreadPrivate::start (arg=0x9cd4590) at thread/qthread_unix.cpp:266
#6  0x0054fcc9 in start_thread (arg=0xb27e1b70) at pthread_create.c:304
#7  0x019eb69e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 8 (Thread 0xb0c8fb70 (LWP 29322)):
#0  0x0229fe36 in clock_gettime (clock_id=36323316, tp=0xb0c8ee10) at ../sysdeps/unix/clock_gettime.c:100
#1  0x0555750b in do_gettime () at tools/qelapsedtimer_unix.cpp:105
#2  qt_gettime () at tools/qelapsedtimer_unix.cpp:119
#3  0x0562e6e5 in QTimerInfoList::updateCurrentTime (this=0xa1891b4) at kernel/qeventdispatcher_unix.cpp:339
#4  0x0562e72a in QTimerInfoList::timerWait (this=0xa1891b4, tm=...) at kernel/qeventdispatcher_unix.cpp:442
#5  0x0562c7a8 in timerSourcePrepareHelper (src=<value optimized out>, timeout=0xb0c8ef3c) at kernel/qeventdispatcher_glib.cpp:136
#6  0x0562c83d in timerSourcePrepare (source=0x0, timeout=0x22a3ff4) at kernel/qeventdispatcher_glib.cpp:169
#7  0x07c10e6a in g_main_context_prepare () from /lib/libglib-2.0.so.0
#8  0x07c11279 in ?? () from /lib/libglib-2.0.so.0
#9  0x07c11848 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#10 0x0562c59f in QEventDispatcherGlib::processEvents (this=0xa188f98, flags=...) at kernel/qeventdispatcher_glib.cpp:417
#11 0x055fc609 in QEventLoop::processEvents (this=0xb0c8f110, flags=) at kernel/qeventloop.cpp:149
#12 0x055fca8a in QEventLoop::exec (this=0xb0c8f110, flags=...) at kernel/qeventloop.cpp:201
#13 0x054f8b7e in QThread::exec (this=0xa050548) at thread/qthread.cpp:490
#14 0x055db35b in QInotifyFileSystemWatcherEngine::run (this=0xa050548) at io/qfilesystemwatcher_inotify.cpp:248
#15 0x054fbdf9 in QThreadPrivate::start (arg=0xa050548) at thread/qthread_unix.cpp:266
#16 0x0054fcc9 in start_thread (arg=0xb0c8fb70) at pthread_create.c:304
#17 0x019eb69e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 7 (Thread 0xaa45db70 (LWP 29323)):
#0  0x0033d416 in __kernel_vsyscall ()
#1  0x00554884 in pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_timedwait.S:236
#2  0x03b1eb3f in ?? () from /usr/lib/libxine.so.1
Backtrace stopped: previous frame inner to this frame (corrupt stack?)

Thread 6 (Thread 0xa9851b70 (LWP 29324)):
#0  0x0033d416 in __kernel_vsyscall ()
#1  0x019e4371 in select () at ../sysdeps/unix/syscall-template.S:82
#2  0x03b4af1c in xine_usec_sleep () from /usr/lib/libxine.so.1
#3  0x00000000 in ?? ()

Thread 5 (Thread 0xa9050b70 (LWP 29325)):
#0  0x005537df in __pthread_mutex_unlock_usercnt (mutex=0xa716ae4, decr=0) at pthread_mutex_unlock.c:77
#1  0x07c10e58 in g_main_context_prepare () from /lib/libglib-2.0.so.0
#2  0x07c11279 in ?? () from /lib/libglib-2.0.so.0
#3  0x07c11848 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#4  0x0562c59f in QEventDispatcherGlib::processEvents (this=0xa716a60, flags=...) at kernel/qeventdispatcher_glib.cpp:417
#5  0x055fc609 in QEventLoop::processEvents (this=0xa9050100, flags=) at kernel/qeventloop.cpp:149
#6  0x055fca8a in QEventLoop::exec (this=0xa9050100, flags=...) at kernel/qeventloop.cpp:201
#7  0x054f8b7e in QThread::exec (this=0xa716668) at thread/qthread.cpp:490
#8  0x043c681a in ?? () from /usr/lib/qt4/plugins/phonon_backend/phonon_xine.so
#9  0x054fbdf9 in QThreadPrivate::start (arg=0xa716668) at thread/qthread_unix.cpp:266
#10 0x0054fcc9 in start_thread (arg=0xa9050b70) at pthread_create.c:304
#11 0x019eb69e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 4 (Thread 0xa884fb70 (LWP 29326)):
#0  0x01a7f88a in ?? () from /usr/lib/libpulse.so.0
#1  0x01a96a44 in pa_mainloop_iterate () from /usr/lib/libpulse.so.0
#2  0x01a96b44 in pa_mainloop_run () from /usr/lib/libpulse.so.0
#3  0x01aa8303 in ?? () from /usr/lib/libpulse.so.0
#4  0x02408bd5 in ?? () from /usr/lib/libpulsecommon-0.9.21.so
#5  0x0054fcc9 in start_thread (arg=0xa884fb70) at pthread_create.c:304
#6  0x019eb69e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 3 (Thread 0xa404db70 (LWP 29327)):
#0  0x0033d416 in __kernel_vsyscall ()
#1  0x005544dc in pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_wait.S:169
#2  0x03b30b54 in ?? () from /usr/lib/libxine.so.1
Backtrace stopped: previous frame inner to this frame (corrupt stack?)

Thread 2 (Thread 0x97e4ab70 (LWP 29389)):
#0  0x0229fe36 in clock_gettime (clock_id=36323316, tp=0x97e49e10) at ../sysdeps/unix/clock_gettime.c:100
#1  0x0555750b in do_gettime () at tools/qelapsedtimer_unix.cpp:105
#2  qt_gettime () at tools/qelapsedtimer_unix.cpp:119
#3  0x0562e6e5 in QTimerInfoList::updateCurrentTime (this=0xd1a2e54) at kernel/qeventdispatcher_unix.cpp:339
#4  0x0562e72a in QTimerInfoList::timerWait (this=0xd1a2e54, tm=...) at kernel/qeventdispatcher_unix.cpp:442
#5  0x0562c7a8 in timerSourcePrepareHelper (src=<value optimized out>, timeout=0x97e49f3c) at kernel/qeventdispatcher_glib.cpp:136
#6  0x0562c83d in timerSourcePrepare (source=0x0, timeout=0x22a3ff4) at kernel/qeventdispatcher_glib.cpp:169
#7  0x07c10e6a in g_main_context_prepare () from /lib/libglib-2.0.so.0
#8  0x07c11279 in ?? () from /lib/libglib-2.0.so.0
#9  0x07c11848 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#10 0x0562c59f in QEventDispatcherGlib::processEvents (this=0xc4a5608, flags=...) at kernel/qeventdispatcher_glib.cpp:417
#11 0x055fc609 in QEventLoop::processEvents (this=0x97e4a110, flags=) at kernel/qeventloop.cpp:149
#12 0x055fca8a in QEventLoop::exec (this=0x97e4a110, flags=...) at kernel/qeventloop.cpp:201
#13 0x054f8b7e in QThread::exec (this=0xcafeca0) at thread/qthread.cpp:490
#14 0x055db35b in QInotifyFileSystemWatcherEngine::run (this=0xcafeca0) at io/qfilesystemwatcher_inotify.cpp:248
#15 0x054fbdf9 in QThreadPrivate::start (arg=0xcafeca0) at thread/qthread_unix.cpp:266
#16 0x0054fcc9 in start_thread (arg=0x97e4ab70) at pthread_create.c:304
#17 0x019eb69e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 1 (Thread 0xb522aac0 (LWP 29314)):
[KCrash Handler]
#7  Marble::MarbleWidget::centerLongitude (this=0x0) at ../../../../marble/src/lib/MarbleWidget.cpp:768
#8  0x002c4183 in KMap::BackendMarble::getCenter (this=0xabc99d8) at /home/jnarboux/digikam-2.0.0-beta1/extra/libkmap/libkmap/backend-marble.cpp:276
#9  0x002a36c1 in KMap::KMapWidget::getCenter (this=0xabc1110) at /home/jnarboux/digikam-2.0.0-beta1/extra/libkmap/libkmap/kmap_widget.cpp:560
#10 0x002a3acc in KMap::KMapWidget::saveSettingsToGroup (this=0xabc1110, group=0xbf957238) at /home/jnarboux/digikam-2.0.0-beta1/extra/libkmap/libkmap/kmap_widget.cpp:620
#11 0x081a9b6e in Digikam::GPSSearchView::doSaveState (this=0xabc0b18) at /home/jnarboux/digikam-2.0.0-beta1/core/utilities/gpssearch/gpssearchview.cpp:311
#12 0x0637488c in Digikam::StateSavingObject::saveState (this=0xabc0b2c) at /home/jnarboux/digikam-2.0.0-beta1/core/libs/widgets/common/statesavingobject.cpp:203
#13 0x0828bba1 in Digikam::GPSSearchSideBarWidget::doSaveState (this=0xabc0940) at /home/jnarboux/digikam-2.0.0-beta1/core/digikam/leftsidebarwidgets.cpp:1057
#14 0x0637488c in Digikam::StateSavingObject::saveState (this=0xabc0954) at /home/jnarboux/digikam-2.0.0-beta1/core/libs/widgets/common/statesavingobject.cpp:203
#15 0x08254b98 in Digikam::DigikamView::saveViewState (this=0x9cd69f8) at /home/jnarboux/digikam-2.0.0-beta1/core/digikam/digikamview.cpp:624
#16 0x08253016 in Digikam::DigikamView::~DigikamView (this=0x9cd69f8, __in_chrg=<value optimized out>) at /home/jnarboux/digikam-2.0.0-beta1/core/digikam/digikamview.cpp:287
#17 0x0822f07e in Digikam::DigikamApp::~DigikamApp (this=0x9cbe4a8, __in_chrg=<value optimized out>, __vtt_parm=<value optimized out>) at /home/jnarboux/digikam-2.0.0-beta1/core/digikam/digikamapp.cpp:307
#18 0x0560e9a5 in qDeleteInEventHandler (o=0x0) at kernel/qobject.cpp:3988
#19 0x056106c8 in QObject::event (this=0x9cbe4a8, e=0xabc99d8) at kernel/qobject.cpp:1202
#20 0x087d3936 in QWidget::event (this=0x9cbe4a8, event=0xc3ac1e8) at kernel/qwidget.cpp:8646
#21 0x08c14917 in QMainWindow::event (this=0x9cbe4a8, event=0xc3ac1e8) at widgets/qmainwindow.cpp:1417
#22 0x015848a4 in KMainWindow::event (this=0x9cbe4a8, ev=0xc3ac1e8) at ../../kdeui/widgets/kmainwindow.cpp:1100
#23 0x015cd14f in KXmlGuiWindow::event (this=0x9cbe4a8, ev=0xc3ac1e8) at ../../kdeui/xmlgui/kxmlguiwindow.cpp:130
#24 0x08775fdc in QApplicationPrivate::notify_helper (this=0x9a53300, receiver=0x9cbe4a8, e=0xc3ac1e8) at kernel/qapplication.cpp:4396
#25 0x0877c0e9 in QApplication::notify (this=0xbf957ef0, receiver=0x9cbe4a8, e=0xc3ac1e8) at kernel/qapplication.cpp:4361
#26 0x0148e68a in KApplication::notify (this=0xbf957ef0, receiver=0x9cbe4a8, event=0xc3ac1e8) at ../../kdeui/kernel/kapplication.cpp:310
#27 0x055fdb3b in QCoreApplication::notifyInternal (this=0xbf957ef0, receiver=0x9cbe4a8, event=0xc3ac1e8) at kernel/qcoreapplication.cpp:732
#28 0x05600d8b in sendEvent (receiver=0x0, event_type=0, data=0x9a203d0) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#29 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x9a203d0) at kernel/qcoreapplication.cpp:1373
#30 0x05600f4d in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at kernel/qcoreapplication.cpp:1266
#31 0x0562ca74 in sendPostedEvents (s=0x9a55710) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:220
#32 postEventSourceDispatch (s=0x9a55710) at kernel/qeventdispatcher_glib.cpp:277
#33 0x07c0d855 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#34 0x07c11668 in ?? () from /lib/libglib-2.0.so.0
#35 0x07c11848 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#36 0x0562c565 in QEventDispatcherGlib::processEvents (this=0x9a1fe98, flags=...) at kernel/qeventdispatcher_glib.cpp:415
#37 0x08837be5 in QGuiEventDispatcherGlib::processEvents (this=0x9a1fe98, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#38 0x055fc609 in QEventLoop::processEvents (this=0xbf957dc4, flags=) at kernel/qeventloop.cpp:149
#39 0x055fca8a in QEventLoop::exec (this=0xbf957dc4, flags=...) at kernel/qeventloop.cpp:201
#40 0x0560100f in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1009
#41 0x08774e07 in QApplication::exec () at kernel/qapplication.cpp:3672
#42 0x0830df4b in main (argc=5, argv=0xbf958144) at /home/jnarboux/digikam-2.0.0-beta1/core/digikam/main.cpp:232

Reported using DrKonqi
Comment 1 caulier.gilles 2011-01-04 13:53:18 UTC
It's probably marble stuff...

Michael ?

Gilles Caulier
Comment 2 Julien Narboux 2011-01-04 14:19:37 UTC
Created attachment 55550 [details]
New crash information added by DrKonqi

digikam (2.0.0-beta1) on KDE Platform 4.5.1 (KDE 4.5.1) using Qt 4.7.0

- What I was doing when the application crashed:

closing digikam again. Here is another trace.

-- Backtrace (Reduced):
#7  Marble::MarbleWidget::centerLongitude (this=0x0) at ../../../../marble/src/lib/MarbleWidget.cpp:768
#8  0x00464183 in KMap::BackendMarble::getCenter (this=0x9d6c4f0) at /home/jnarboux/digikam-2.0.0-beta1/extra/libkmap/libkmap/backend-marble.cpp:276
#9  0x004436c1 in KMap::KMapWidget::getCenter (this=0x9d63c78) at /home/jnarboux/digikam-2.0.0-beta1/extra/libkmap/libkmap/kmap_widget.cpp:560
#10 0x00443acc in KMap::KMapWidget::saveSettingsToGroup (this=0x9d63c78, group=0xbfe1ce58) at /home/jnarboux/digikam-2.0.0-beta1/extra/libkmap/libkmap/kmap_widget.cpp:620
#11 0x081a9b6e in Digikam::GPSSearchView::doSaveState (this=0x9d63680) at /home/jnarboux/digikam-2.0.0-beta1/core/utilities/gpssearch/gpssearchview.cpp:311
Comment 3 Nicolas L. 2011-01-04 16:53:34 UTC
Julien can you test with this patch ?

Index: extra/libkmap/libkmap/kmap_widget.cpp
===================================================================
--- extra/libkmap/libkmap/kmap_widget.cpp       (révision 1211669)
+++ extra/libkmap/libkmap/kmap_widget.cpp       (copie de travail)
@@ -613,6 +613,9 @@
     if (!group)
         return;
 
+    if (!d->marbleWidget)
+        return;
+
     if (!d->currentBackendName.isEmpty())
     {
         group->writeEntry("Backend", d->currentBackendName);
Comment 4 Nicolas L. 2011-01-04 16:55:59 UTC
hum forget this one :/
Comment 5 Nicolas L. 2011-01-04 17:07:47 UTC
i can't reproduce but what about this patch ?
(it compiles this time :) )

Index: extra/libkmap/libkmap/kmap_widget.cpp
===================================================================
--- extra/libkmap/libkmap/kmap_widget.cpp       (révision 1211669)
+++ extra/libkmap/libkmap/kmap_widget.cpp       (copie de travail)
@@ -613,6 +613,10 @@
     if (!group)
         return;
 
+
+   if (!d->currentBackendReady)
+        return;
+
     if (!d->currentBackendName.isEmpty())
     {
         group->writeEntry("Backend", d->currentBackendName);
Comment 6 Michael G. Hansen 2011-01-04 20:15:35 UTC
SVN commit 1211735 by mghansen:

Better checks for ready backends.

CCBUG: 262067



 M  +4 -3      backend-googlemaps.cpp  
 M  +8 -3      backend-marble.cpp  
 M  +44 -25    kmap_widget.cpp  
 M  +3 -2      kmap_widget.h  
 M  +2 -2      map-backend.h  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1211735
Comment 7 Michael G. Hansen 2011-01-04 20:20:15 UTC
Created attachment 55579 [details]
Check whether backends are ready

Hi Julien,

could you please test again with this patch? I also applied it to SVN, in case you use that.

Michael
Comment 8 Julien Narboux 2011-01-05 10:04:51 UTC
Created attachment 55599 [details]
New crash information added by DrKonqi

digikam (2.0.0-beta1 (rev.: 1211962)) on KDE Platform 4.5.1 (KDE 4.5.1) using Qt 4.7.0

Here is another trace using current svn. The crash occured while drawing a selection in the map view.

Julien

-- Backtrace (Reduced):
#10 0x0147f305 in __libc_message (do_abort=2, fmt=0x1557280 "*** glibc detected *** %s: %s: 0x%s ***\n") at ../sysdeps/unix/sysv/linux/libc_fatal.c:189
#11 0x01489501 in malloc_printerr (action=<value optimized out>, str=0x6 <Address 0x6 out of bounds>, ptr=0xd351348) at malloc.c:6283
#12 0x0148c679 in _int_malloc (av=<value optimized out>, bytes=<value optimized out>) at malloc.c:4308
#13 0x0148df33 in __libc_malloc (bytes=104) at malloc.c:3660
[...]
#15 0x031e571e in QBrush::init (this=0xd37a288, color=..., style=Qt::SolidPattern) at painting/qbrush.cpp:407
Comment 9 Michael G. Hansen 2011-01-05 11:52:19 UTC
Hi Julien,

your new report looks like a different issue, could you please re-file it as a new bug?

Did the patch fix the other problem about the crash at shutdown that you reported?

Thanks,

Michael
Comment 10 Julien Narboux 2011-01-05 13:06:23 UTC
I can not reproduce the crash at shutdown. I hope it is fixed. Let's close the bug and we will see.
Thanks for the quick fix.

Julien
Comment 11 Michael G. Hansen 2011-01-05 13:16:48 UTC
On 01/05/2011 01:06 PM, Julien Narboux wrote:

> Thanks for the quick fix.

Thanks for extensive testing ;-)

Michael