Bug 218873

Summary: Marble widget crashes while starting up [mem2chunk_check, free_check, Marble::GeoDataObject::~GeoDataObject]
Product: [Applications] marble Reporter: Chris <c.lusby>
Component: dataAssignee: marble-bugs
Status: RESOLVED UPSTREAM    
Severity: crash CC: andresbajotierra, caulier.gilles, nienhueser, ps_ml, sonataarctica, vmikiv, weber-jonathan
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Ubuntu   
OS: Linux   
Latest Commit: Version Fixed In: 1.1.0
Sentry Crash Report:

Description Chris 2009-12-16 03:28:12 UTC
Application: digikam (rc..-rc)
KDE Platform Version: 4.3.80 (KDE 4.3.80 (KDE 4.4 Beta1))
Qt Version: 4.6.0
Operating System: Linux 2.6.31-16-generic i686
Distribution: Ubuntu 9.10

-- Information about the crash:
Digikam crashes at startup - attached backtrace.

Kubuntu package for 1.0.0 RC:
Version 2:1.0.0~rc-1ubuntu1~karmic1

The crash can be reproduced everytime.

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

Thread 15 (Thread 0xb617fb70 (LWP 4023)):
#0  0x008eb422 in __kernel_vsyscall ()
#1  0x00a25e15 in pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_wait.S:122
#2  0x0216c78d in __pthread_cond_wait (cond=0x9db4970, mutex=0x9db4958) at forward.c:139
#3  0x04e67307 in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/libQtCore.so.4
#4  0x083184f9 in ?? ()
#5  0x04e663ae in ?? () from /usr/lib/libQtCore.so.4
#6  0x00a2180e in start_thread (arg=0xb617fb70) at pthread_create.c:300
#7  0x0215f7ee in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 14 (Thread 0xb58d0b70 (LWP 4027)):
#0  0x00a2514f in __pthread_mutex_unlock_usercnt (mutex=0x9ddb67c, decr=0) at pthread_mutex_unlock.c:77
#1  0x0216c996 in pthread_mutex_unlock (mutex=0x9ddb67c) at forward.c:184
#2  0x032232ad in ?? () from /lib/libglib-2.0.so.0
#3  0x03223853 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#4  0x04f93c0f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#5  0x04f664c9 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#6  0x04f6691a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#7  0x04e63558 in QThread::exec() () from /usr/lib/libQtCore.so.4
#8  0x00cfa2dd in ?? () from /usr/lib/libdigikamdatabase.so.1
#9  0x04e663ae in ?? () from /usr/lib/libQtCore.so.4
#10 0x00a2180e in start_thread (arg=0xb58d0b70) at pthread_create.c:300
#11 0x0215f7ee in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 13 (Thread 0xb4ff3b70 (LWP 4028)):
#0  0x032218fa in g_main_context_acquire () from /lib/libglib-2.0.so.0
#1  0x032232b5 in ?? () from /lib/libglib-2.0.so.0
#2  0x03223853 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#3  0x04f93c0f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#4  0x04f664c9 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#5  0x04f6691a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#6  0x04e63558 in QThread::exec() () from /usr/lib/libQtCore.so.4
#7  0x00cfa2dd in ?? () from /usr/lib/libdigikamdatabase.so.1
#8  0x04e663ae in ?? () from /usr/lib/libQtCore.so.4
#9  0x00a2180e in start_thread (arg=0xb4ff3b70) at pthread_create.c:300
#10 0x0215f7ee in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 12 (Thread 0xb4772b70 (LWP 4029)):
#0  0x008eb422 in __kernel_vsyscall ()
#1  0x00a25e15 in pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_wait.S:122
#2  0x0216c78d in __pthread_cond_wait (cond=0xa02e430, mutex=0xa02e418) at forward.c:139
#3  0x04e67307 in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/libQtCore.so.4
#4  0x01e8c28a in Digikam::LoadSaveThread::run() () from /usr/lib/libdigikamcore.so.1
#5  0x04e663ae in ?? () from /usr/lib/libQtCore.so.4
#6  0x00a2180e in start_thread (arg=0xb4772b70) at pthread_create.c:300
#7  0x0215f7ee in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 11 (Thread 0xb3f71b70 (LWP 4030)):
#0  0x03222d51 in g_main_context_check () from /lib/libglib-2.0.so.0
#1  0x0322346c in ?? () from /lib/libglib-2.0.so.0
#2  0x03223853 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#3  0x04f93c0f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#4  0x04f664c9 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#5  0x04f6691a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#6  0x04e63558 in QThread::exec() () from /usr/lib/libQtCore.so.4
#7  0x04e663ae in ?? () from /usr/lib/libQtCore.so.4
#8  0x00a2180e in start_thread (arg=0xb3f71b70) at pthread_create.c:300
#9  0x0215f7ee in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 10 (Thread 0xb3770b70 (LWP 4031)):
#0  __i686.get_pc_thunk.bx () at ../sysdeps/i386/i686/memcmp.S:52
#1  0x0216c96b in pthread_mutex_unlock (mutex=0xa0712ec) at forward.c:184
#2  0x0321fd07 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#3  0x03223720 in ?? () from /lib/libglib-2.0.so.0
#4  0x03223853 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#5  0x04f93c0f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#6  0x04f664c9 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#7  0x04f6691a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#8  0x04e63558 in QThread::exec() () from /usr/lib/libQtCore.so.4
#9  0x04e663ae in ?? () from /usr/lib/libQtCore.so.4
#10 0x00a2180e in start_thread (arg=0xb3770b70) at pthread_create.c:300
#11 0x0215f7ee in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 9 (Thread 0xb2f6fb70 (LWP 4032)):
#0  0x008eb422 in __kernel_vsyscall ()
#1  0x00a25e15 in pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_wait.S:122
#2  0x0216c78d in __pthread_cond_wait (cond=0xa07bea8, mutex=0xa07be90) at forward.c:139
#3  0x04e67307 in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/libQtCore.so.4
#4  0x01e8c28a in Digikam::LoadSaveThread::run() () from /usr/lib/libdigikamcore.so.1
#5  0x04e663ae in ?? () from /usr/lib/libQtCore.so.4
#6  0x00a2180e in start_thread (arg=0xb2f6fb70) at pthread_create.c:300
#7  0x0215f7ee in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130
The current source language is "auto; currently asm".

Thread 8 (Thread 0xb0b7bb70 (LWP 4033)):
#0  0x008eb422 in __kernel_vsyscall ()
#1  0x00a26142 in pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_timedwait.S:179
#2  0x0216c7e4 in __pthread_cond_timedwait (cond=0xa1c5ae0, mutex=0xa1c5ac8, abstime=0xb0b7b2d0) at forward.c:152
#3  0x09b159ff in ?? () from /usr/lib/libxine.so.1
#4  0x00a2180e in start_thread (arg=0xb0b7bb70) at pthread_create.c:300
#5  0x0215f7ee in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 7 (Thread 0xaff6fb70 (LWP 4034)):
#0  0x008eb422 in __kernel_vsyscall ()
#1  0x02158981 in select () from /lib/tls/i686/cmov/libc.so.6
#2  0x09b3ebe0 in xine_usec_sleep () from /usr/lib/libxine.so.1
#3  0x09b23011 in ?? () from /usr/lib/libxine.so.1
#4  0x00a2180e in start_thread (arg=0xaff6fb70) at pthread_create.c:300
#5  0x0215f7ee in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 6 (Thread 0xaf76eb70 (LWP 4035)):
#0  0x00a23d4b in __pthread_mutex_lock (mutex=0xa5de5d4) at pthread_mutex_lock.c:61
#1  0x0216c956 in pthread_mutex_lock (mutex=0xa5de5d4) at forward.c:182
#2  0x0321fcc7 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#3  0x03223720 in ?? () from /lib/libglib-2.0.so.0
#4  0x03223853 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#5  0x04f93c0f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#6  0x04f664c9 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#7  0x04f6691a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#8  0x04e63558 in QThread::exec() () from /usr/lib/libQtCore.so.4
#9  0x0411f4ba in ?? () from /usr/lib/qt4/plugins/phonon_backend/phonon_xine.so
#10 0x04e663ae in ?? () from /usr/lib/libQtCore.so.4
#11 0x00a2180e in start_thread (arg=0xaf76eb70) at pthread_create.c:300
#12 0x0215f7ee in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 5 (Thread 0xaef6db70 (LWP 4038)):
#0  0x008eb422 in __kernel_vsyscall ()
#1  0x0214fecb in read () from /lib/tls/i686/cmov/libc.so.6
#2  0x02d4b932 in ?? () from /usr/lib/libasound.so.2
#3  0x02d4871d in snd_ctl_read () from /usr/lib/libasound.so.2
#4  0x02d44aff in snd_hctl_handle_events () from /usr/lib/libasound.so.2
#5  0x02d50911 in snd_mixer_handle_events () from /usr/lib/libasound.so.2
#6  0x03605c89 in ?? () from /usr/lib/xine/plugins/1.26/xineplug_ao_out_alsa.so
#7  0x00a2180e in start_thread (arg=0xaef6db70) at pthread_create.c:300
#8  0x0215f7ee in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130
The current source language is "auto; currently c".

Thread 4 (Thread 0xae72ab70 (LWP 4039)):
#0  0x008eb422 in __kernel_vsyscall ()
#1  0x00a25e15 in pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_wait.S:122
#2  0x0216c78d in __pthread_cond_wait (cond=0xa5ffa30, mutex=0xa5ffa18) at forward.c:139
#3  0x09b265ee in ?? () from /usr/lib/libxine.so.1
#4  0x00a2180e in start_thread (arg=0xae72ab70) at pthread_create.c:300
#5  0x0215f7ee in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 3 (Thread 0xade7eb70 (LWP 4040)):
#0  0x008eb422 in __kernel_vsyscall ()
#1  0x00a25e15 in pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_wait.S:122
#2  0x0216c78d in __pthread_cond_wait (cond=0xa7fe658, mutex=0xa7fe640) at forward.c:139
#3  0x04e67307 in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/libQtCore.so.4
#4  0x01e8c28a in Digikam::LoadSaveThread::run() () from /usr/lib/libdigikamcore.so.1
#5  0x04e663ae in ?? () from /usr/lib/libQtCore.so.4
#6  0x00a2180e in start_thread (arg=0xade7eb70) at pthread_create.c:300
#7  0x0215f7ee in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 2 (Thread 0xad67db70 (LWP 4041)):
[KCrash Handler]
#6  mem2chunk_check (mem=0xfc184c78, magic_p=<value optimized out>) at hooks.c:166
#7  0x020ffc38 in free_check (mem=0xb184cd8, caller=0x9c476f1) at hooks.c:279
#8  0x02102806 in *__GI___libc_free (mem=0xf0ffffa8) at malloc.c:3677
#9  0x09c476f1 in operator delete(void*) () from /usr/lib/libstdc++.so.6
#10 0x06fa9436 in Marble::GeoDataObject::~GeoDataObject() () from /usr/lib/libmarblewidget.so.4
#11 0x06f965b0 in Marble::GeoDataFeature::~GeoDataFeature() () from /usr/lib/libmarblewidget.so.4
#12 0x06f9b7de in Marble::GeoDataPlacemark::~GeoDataPlacemark() () from /usr/lib/libmarblewidget.so.4
#13 0x070a0d42 in ?? () from /usr/lib/libmarblewidget.so.4
#14 0x070a213b in ?? () from /usr/lib/libmarblewidget.so.4
#15 0x04e663ae in ?? () from /usr/lib/libQtCore.so.4
#16 0x00a2180e in start_thread (arg=0xad67db70) at pthread_create.c:300
#17 0x0215f7ee in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 1 (Thread 0xb7758760 (LWP 4022)):
#0  0x008eb422 in __kernel_vsyscall ()
#1  0x02151ba6 in *__GI___poll (fds=0x21d2ff4, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:87
#2  0x04d9cd80 in ?? () from /usr/lib/libxcb.so.1
#3  0x04d9d2eb in ?? () from /usr/lib/libxcb.so.1
#4  0x04d9d687 in xcb_writev () from /usr/lib/libxcb.so.1
#5  0x07e312e9 in _XSend () from /usr/lib/libX11.so.6
#6  0x07e31480 in _XReply () from /usr/lib/libX11.so.6
#7  0x07e26b71 in XTranslateCoordinates () from /usr/lib/libX11.so.6
#8  0x013e40cb in QWidget::mapToGlobal(QPoint const&) const () from /usr/lib/libQtGui.so.4
#9  0x013e4027 in QWidget::mapToGlobal(QPoint const&) const () from /usr/lib/libQtGui.so.4
#10 0x013e4027 in QWidget::mapToGlobal(QPoint const&) const () from /usr/lib/libQtGui.so.4
#11 0x013e4027 in QWidget::mapToGlobal(QPoint const&) const () from /usr/lib/libQtGui.so.4
#12 0x013e4027 in QWidget::mapToGlobal(QPoint const&) const () from /usr/lib/libQtGui.so.4
#13 0x013e4027 in QWidget::mapToGlobal(QPoint const&) const () from /usr/lib/libQtGui.so.4
#14 0x013dd6fc in QDesktopWidget::screenNumber(QWidget const*) const () from /usr/lib/libQtGui.so.4
#15 0x0652b612 in KGlobalSettings::desktopGeometry(QWidget const*) () from /usr/lib/libkdeui.so.5
#16 0x06610f36 in KSqueezedTextLabel::sizeHint() const () from /usr/lib/libkdeui.so.5
#17 0x013733c3 in QWidgetItemV2::updateCacheIfNecessary() const () from /usr/lib/libQtGui.so.4
#18 0x01374400 in QWidgetItemV2::minimumSize() const () from /usr/lib/libQtGui.so.4
#19 0x0136783d in ?? () from /usr/lib/libQtGui.so.4
#20 0x01368262 in ?? () from /usr/lib/libQtGui.so.4
#21 0x013685da in QGridLayout::setGeometry(QRect const&) () from /usr/lib/libQtGui.so.4
#22 0x0136f92f in QLayoutPrivate::doResize(QSize const&) () from /usr/lib/libQtGui.so.4
#23 0x0136fa57 in QLayout::activate() () from /usr/lib/libQtGui.so.4
#24 0x0139e361 in QWidget::setVisible(bool) () from /usr/lib/libQtGui.so.4
#25 0x01f04d52 in Digikam::RLabelExpander::setExpanded(bool) () from /usr/lib/libdigikamcore.so.1
#26 0x01f0626c in Digikam::RExpanderBox::readSettings() () from /usr/lib/libdigikamcore.so.1
#27 0x01f685b4 in Digikam::ImagePropertiesSideBar::ImagePropertiesSideBar(QWidget*, Digikam::SidebarSplitter*, KMultiTabBar::KMultiTabBarPosition, bool) () from /usr/lib/libdigikamcore.so.1
#28 0x080b2de1 in _start ()

Reported using DrKonqi
Comment 1 caulier.gilles 2009-12-16 05:51:04 UTC
Look like marble widget crash...

Gilles Caulier
Comment 2 Dario Andres 2009-12-27 22:14:14 UTC
From bug 220288:
---
-- Information about the crash:
Hi! Digikam built from today's (2009-12-27) sources crashes at startup, before
loading main view. I've tried removing the old database file; the application
starts rebuilding the index but never gets to the end of the process. 
I built Digikam following the instructions on
http://www.digikam.org/drupal/download?q=download/KDE4; as for the KDE
platform, I'm using the precompiled 4.3.85 packages from the kubuntu-ppa deb
repository.
Comment 3 Dario Andres 2009-12-27 22:14:20 UTC
*** Bug 220288 has been marked as a duplicate of this bug. ***
Comment 4 Dario Andres 2009-12-27 22:15:02 UTC
I wonder if bug 194750 could be somehow related...
Comment 5 Dennis Nienhüser 2010-01-01 23:24:09 UTC
One thing that is broken in GeoDataPlacemark is the constructor which takes a QString as parameter: It forgets to initialize the d-pointer, which means that the static_cast later in p() operates on a different object than it should. This got lost in http://websvn.kde.org/trunk/KDE/kdeedu/marble/src/lib/geodata/data/GeoDataPlacemark.cpp?r1=946665&r2=946666& 

As far as I can tell, this version of the constructor is nowhere used in Marble however, so it shouldn't cause problems. I'd say the d-pointer should be initialized anyway however or the constructor be removed.

@Patrick: Can you look at that?
Comment 6 Dario Andres 2010-01-03 14:57:29 UTC
*** Bug 221050 has been marked as a duplicate of this bug. ***
Comment 7 Dennis Nienhüser 2010-01-04 17:06:24 UTC
r1069978 | nienhueser | 2010-01-04 17:04:17 +0100 (Mon, 04 Jan 2010) | 2 lines

Initialize the d-pointer with the correct class so that the static_cast later operates on the right base.

Probably this has no effect on fixing this bug though.
Comment 8 Dennis Nienhüser 2010-01-11 11:47:38 UTC
It's likely caused by a glibc bug [1] which should be fixed in the current Ubuntu packages. See also [2]. Can you please make sure that you're running a fully updated system and see if the problem has gone away?

[1] http://sourceware.org/bugzilla/show_bug.cgi?id=10282#c4
[2] https://bugs.launchpad.net/ubuntu/+source/kdevelop/+bug/425723
Comment 9 Chris 2010-01-12 02:27:19 UTC
I upgraded to 4.4 SC RC1 - and it seems fine now. From my perspective this bug can be closed.

Thanks.
Comment 10 Dennis Nienhüser 2010-01-12 09:17:21 UTC
Thanks for the feedback :-)
Comment 11 Dennis Nienhüser 2010-01-16 01:46:56 UTC
*** Bug 194750 has been marked as a duplicate of this bug. ***