Bug 328221 - Marble fails when closing
Summary: Marble fails when closing
Status: RESOLVED FIXED
Alias: None
Product: marble
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: Ubuntu Linux
: NOR crash
Target Milestone: ---
Assignee: marble-bugs
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2013-11-29 17:30 UTC by Jorge Dávila
Modified: 2013-11-30 08:55 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In: 4.11.5
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jorge Dávila 2013-11-29 17:30:48 UTC
Application: marble (1.6.2 (stable version))
KDE Platform Version: 4.11.2
Qt Version: 4.8.4
Operating System: Linux 3.12.0-rc1 i686
Distribution: Ubuntu 13.10

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

I just closing the app when crashed. I installed the historical maps and I was viewing the ocean layered map.

-- Backtrace:
Application: Globo virtual Marble (marble), signal: Segmentation fault
Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1".
[Current thread is 1 (Thread 0xb18b6ac0 (LWP 19458))]

Thread 9 (Thread 0xaf1b9b40 (LWP 19459)):
#0  0xb2adaaae in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#1  0xb2adb0f8 in g_private_get () from /lib/i386-linux-gnu/libglib-2.0.so.0
#2  0xb2abe1be in g_thread_self () from /lib/i386-linux-gnu/libglib-2.0.so.0
#3  0xb2a97c96 in g_main_context_iteration () from /lib/i386-linux-gnu/libglib-2.0.so.0
#4  0xb67048df in QEventDispatcherGlib::processEvents (this=0xae800468, flags=...) at kernel/qeventdispatcher_glib.cpp:426
#5  0xb66d39f3 in QEventLoop::processEvents (this=this@entry=0xaf1b9228, flags=...) at kernel/qeventloop.cpp:149
#6  0xb66d3d19 in QEventLoop::exec (this=this@entry=0xaf1b9228, flags=...) at kernel/qeventloop.cpp:204
#7  0xb65c2e3d in QThread::exec (this=this@entry=0x9997648) at thread/qthread.cpp:542
#8  0xb66b3e14 in QInotifyFileSystemWatcherEngine::run (this=0x9997648) at io/qfilesystemwatcher_inotify.cpp:265
#9  0xb65c572f in QThreadPrivate::start (arg=0x9997648) at thread/qthread_unix.cpp:338
#10 0xb2b66d78 in start_thread (arg=0xaf1b9b40) at pthread_create.c:311
#11 0xb577901e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:131

Thread 8 (Thread 0xae6f2b40 (LWP 19460)):
#0  0xb2a97025 in g_main_context_prepare () from /lib/i386-linux-gnu/libglib-2.0.so.0
#1  0xb2a97a5f in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#2  0xb2a97ca8 in g_main_context_iteration () from /lib/i386-linux-gnu/libglib-2.0.so.0
#3  0xb67048df in QEventDispatcherGlib::processEvents (this=0xadd00468, flags=...) at kernel/qeventdispatcher_glib.cpp:426
#4  0xb66d39f3 in QEventLoop::processEvents (this=this@entry=0xae6f2228, flags=...) at kernel/qeventloop.cpp:149
#5  0xb66d3d19 in QEventLoop::exec (this=this@entry=0xae6f2228, flags=...) at kernel/qeventloop.cpp:204
#6  0xb65c2e3d in QThread::exec (this=this@entry=0x9a0ce98) at thread/qthread.cpp:542
#7  0xb66b3e14 in QInotifyFileSystemWatcherEngine::run (this=0x9a0ce98) at io/qfilesystemwatcher_inotify.cpp:265
#8  0xb65c572f in QThreadPrivate::start (arg=0x9a0ce98) at thread/qthread_unix.cpp:338
#9  0xb2b66d78 in start_thread (arg=0xae6f2b40) at pthread_create.c:311
#10 0xb577901e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:131

Thread 7 (Thread 0xad44eb40 (LWP 19461)):
#0  0xb77a8424 in __kernel_vsyscall ()
#1  0xb2b6a84b in pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_wait.S:187
#2  0xb57869bc in __pthread_cond_wait (cond=0xb53bdd90, mutex=0xb53bdd78) at forward.c:149
#3  0xb4b43a7c in ?? () from /usr/lib/i386-linux-gnu/libQtWebKit.so.4
#4  0xb4b43acf in ?? () from /usr/lib/i386-linux-gnu/libQtWebKit.so.4
#5  0xb2b66d78 in start_thread (arg=0xad44eb40) at pthread_create.c:311
#6  0xb577901e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:131

Thread 6 (Thread 0xacb25b40 (LWP 19462)):
#0  0xb77a8424 in __kernel_vsyscall ()
#1  0xb2b6a84b in pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_wait.S:187
#2  0xb57869bc in __pthread_cond_wait (cond=0xacb927dc, mutex=0xacb927c4) at forward.c:149
#3  0xb4b72ae3 in WTF::ThreadCondition::wait(WTF::Mutex&) () from /usr/lib/i386-linux-gnu/libQtWebKit.so.4
#4  0xb484e744 in ?? () from /usr/lib/i386-linux-gnu/libQtWebKit.so.4
#5  0xb4b59866 in ?? () from /usr/lib/i386-linux-gnu/libQtWebKit.so.4
#6  0xb4b72459 in ?? () from /usr/lib/i386-linux-gnu/libQtWebKit.so.4
#7  0xb2b66d78 in start_thread (arg=0xacb25b40) at pthread_create.c:311
#8  0xb577901e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:131

Thread 5 (Thread 0xaabfeb40 (LWP 19476)):
#0  0xb77a8424 in __kernel_vsyscall ()
#1  0xb57678db in read () at ../sysdeps/unix/syscall-template.S:81
#2  0xb2ad9d4e in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#3  0xb2a9765b in g_main_context_check () from /lib/i386-linux-gnu/libglib-2.0.so.0
#4  0xb2a97afa in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#5  0xb2a97ca8 in g_main_context_iteration () from /lib/i386-linux-gnu/libglib-2.0.so.0
#6  0xb67048df in QEventDispatcherGlib::processEvents (this=0xac201d18, flags=...) at kernel/qeventdispatcher_glib.cpp:426
#7  0xb66d39f3 in QEventLoop::processEvents (this=this@entry=0xaabfe258, flags=...) at kernel/qeventloop.cpp:149
#8  0xb66d3d19 in QEventLoop::exec (this=this@entry=0xaabfe258, flags=...) at kernel/qeventloop.cpp:204
#9  0xb65c2e3d in QThread::exec (this=this@entry=0x9dca050) at thread/qthread.cpp:542
#10 0xb65c2f8b in QThread::run (this=0x9dca050) at thread/qthread.cpp:609
#11 0xb65c572f in QThreadPrivate::start (arg=0x9dca050) at thread/qthread_unix.cpp:338
#12 0xb2b66d78 in start_thread (arg=0xaabfeb40) at pthread_create.c:311
#13 0xb577901e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:131

Thread 4 (Thread 0xa5921b40 (LWP 19497)):
#0  0xb77a8424 in __kernel_vsyscall ()
#1  0xb578c4d2 in clock_gettime (clock_id=1, tp=0xa5920fc8) at ../sysdeps/unix/clock_gettime.c:115
#2  0xb66203ec in do_gettime (frac=0xa5920fc0, sec=0xa5920fb8) at tools/qelapsedtimer_unix.cpp:123
#3  qt_gettime () at tools/qelapsedtimer_unix.cpp:140
#4  0xb6705fd2 in updateCurrentTime (this=0xa8902624) at kernel/qeventdispatcher_unix.cpp:354
#5  QTimerInfoList::timerWait (this=0xa8902624, tm=...) at kernel/qeventdispatcher_unix.cpp:461
#6  0xb670467b in timerSourcePrepareHelper (src=<optimized out>, timeout=0xa59210bc) at kernel/qeventdispatcher_glib.cpp:136
#7  0xb670470d in timerSourcePrepare (source=0xa89025f0, timeout=0xa59210bc) at kernel/qeventdispatcher_glib.cpp:169
#8  0xb2a97143 in g_main_context_prepare () from /lib/i386-linux-gnu/libglib-2.0.so.0
#9  0xb2a97a5f in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#10 0xb2a97ca8 in g_main_context_iteration () from /lib/i386-linux-gnu/libglib-2.0.so.0
#11 0xb67048df in QEventDispatcherGlib::processEvents (this=0xa1db5220, flags=...) at kernel/qeventdispatcher_glib.cpp:426
#12 0xb66d39f3 in QEventLoop::processEvents (this=this@entry=0xa5921228, flags=...) at kernel/qeventloop.cpp:149
#13 0xb66d3d19 in QEventLoop::exec (this=this@entry=0xa5921228, flags=...) at kernel/qeventloop.cpp:204
#14 0xb65c2e3d in QThread::exec (this=this@entry=0x9e6bde0) at thread/qthread.cpp:542
#15 0xb66b3e14 in QInotifyFileSystemWatcherEngine::run (this=0x9e6bde0) at io/qfilesystemwatcher_inotify.cpp:265
#16 0xb65c572f in QThreadPrivate::start (arg=0x9e6bde0) at thread/qthread_unix.cpp:338
#17 0xb2b66d78 in start_thread (arg=0xa5921b40) at pthread_create.c:311
#18 0xb577901e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:131

Thread 3 (Thread 0xa6122b40 (LWP 19498)):
#0  0xb77a8424 in __kernel_vsyscall ()
#1  0xb2b6a84b in pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_wait.S:187
#2  0xb57869bc in __pthread_cond_wait (cond=0xb21878d0, mutex=0xb21878b8) at forward.c:149
#3  0xb2084ef2 in ?? () from /usr/lib/i386-linux-gnu/libQtScript.so.4
#4  0xb2084f3f in ?? () from /usr/lib/i386-linux-gnu/libQtScript.so.4
#5  0xb2b66d78 in start_thread (arg=0xa6122b40) at pthread_create.c:311
#6  0xb577901e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:131

Thread 2 (Thread 0xa93fbb40 (LWP 19649)):
#0  0xb5786bd8 in pthread_mutex_unlock (mutex=0xa42a0c48) at forward.c:194
#1  0xb2adabf0 in g_mutex_unlock () from /lib/i386-linux-gnu/libglib-2.0.so.0
#2  0xb2a96b72 in g_main_context_acquire () from /lib/i386-linux-gnu/libglib-2.0.so.0
#3  0xb2a97a08 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#4  0xb2a97ca8 in g_main_context_iteration () from /lib/i386-linux-gnu/libglib-2.0.so.0
#5  0xb67048df in QEventDispatcherGlib::processEvents (this=0xa43a76d0, flags=...) at kernel/qeventdispatcher_glib.cpp:426
#6  0xb66d39f3 in QEventLoop::processEvents (this=this@entry=0xa93fb258, flags=...) at kernel/qeventloop.cpp:149
#7  0xb66d3d19 in QEventLoop::exec (this=this@entry=0xa93fb258, flags=...) at kernel/qeventloop.cpp:204
#8  0xb65c2e3d in QThread::exec (this=this@entry=0xa7031f8) at thread/qthread.cpp:542
#9  0xb65c2f8b in QThread::run (this=0xa7031f8) at thread/qthread.cpp:609
#10 0xb65c572f in QThreadPrivate::start (arg=0xa7031f8) at thread/qthread_unix.cpp:338
#11 0xb2b66d78 in start_thread (arg=0xa93fbb40) at pthread_create.c:311
#12 0xb577901e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:131

Thread 1 (Thread 0xb18b6ac0 (LWP 19458)):
[KCrash Handler]
#6  0x0b548f68 in ?? ()
#7  0xb743d4b5 in KDescendantsProxyModelPrivate::sourceRowsAboutToBeRemoved (this=0x99a7e90, parent=..., start=1, end=1) at ../../../src/lib/kdescendantsproxymodel.cpp:707
#8  0xb7442628 in KDescendantsProxyModel::qt_static_metacall (_o=_o@entry=0x997ae34, _c=_c@entry=QMetaObject::InvokeMetaMethod, _id=2, _a=0xbf9e5a30) at ./kdescendantsproxymodel.moc:74
#9  0xb66e9fc7 in QMetaObject::activate (sender=sender@entry=0x997ae28, m=m@entry=0xb68402f8 <QAbstractItemModel::staticMetaObject>, local_signal_index=local_signal_index@entry=6, argv=argv@entry=0xbf9e5a30) at kernel/qobject.cpp:3539
#10 0xb6738ea5 in QAbstractItemModel::rowsAboutToBeRemoved (this=this@entry=0x997ae28, _t1=..., _t2=_t2@entry=1, _t3=_t3@entry=1) at .moc/release-shared/moc_qabstractitemmodel.cpp:204
#11 0xb66cb75c in QAbstractItemModel::beginRemoveRows (this=this@entry=0x997ae28, parent=..., first=first@entry=1, last=last@entry=1) at kernel/qabstractitemmodel.cpp:2470
#12 0xb743a30e in Marble::GeoDataTreeModel::removeFeature (this=0x997ae28, parent=0x99a9914, row=1) at ../../../src/lib/GeoDataTreeModel.cpp:603
#13 0xb743a403 in Marble::GeoDataTreeModel::removeFeature (this=this@entry=0x997ae28, feature=feature@entry=0x99ab45c) at ../../../src/lib/GeoDataTreeModel.cpp:627
#14 0xb743a44d in Marble::GeoDataTreeModel::removeDocument (this=0x997ae28, document=0x99ab458) at ../../../src/lib/GeoDataTreeModel.cpp:653
#15 0xb7539b48 in ~BookmarkManagerPrivate (this=0x99aa588, __in_chrg=<optimized out>) at ../../../src/lib/BookmarkManager.cpp:39
#16 Marble::BookmarkManager::~BookmarkManager (this=0x997ae60, __in_chrg=<optimized out>) at ../../../src/lib/BookmarkManager.cpp:79
#17 0xb7400305 in ~MarbleModelPrivate (this=0x997ada0, __in_chrg=<optimized out>) at ../../../src/lib/MarbleModel.cpp:110
#18 Marble::MarbleModel::~MarbleModel (this=0x9991dbc, __in_chrg=<optimized out>) at ../../../src/lib/MarbleModel.cpp:199
#19 0xb73f9fbc in ~MarbleWidgetPrivate (this=0x9991db8, __in_chrg=<optimized out>) at ../../../src/lib/MarbleWidget.cpp:108
#20 Marble::MarbleWidget::~MarbleWidget (this=0x98b3210, __in_chrg=<optimized out>) at ../../../src/lib/MarbleWidget.cpp:177
#21 0xb73fa00c in Marble::MarbleWidget::~MarbleWidget (this=0x98b3210, __in_chrg=<optimized out>) at ../../../src/lib/MarbleWidget.cpp:178
#22 0xb66eca6a in QObjectPrivate::deleteChildren (this=this@entry=0x998a188) at kernel/qobject.cpp:1907
#23 0xb5c3b1ac in QWidget::~QWidget (this=<optimized out>, __in_chrg=<optimized out>) at kernel/qwidget.cpp:1681
#24 0x08063535 in ~ControlView (this=0x998c7b8, __in_chrg=<optimized out>) at ../../src/ControlView.cpp:81
#25 Marble::ControlView::~ControlView (this=0x998c7b8, __in_chrg=<optimized out>) at ../../src/ControlView.cpp:84
#26 0xb774ffe3 in KParts::Part::~Part() () from /usr/lib/libkparts.so.4
#27 0xb7750143 in KParts::ReadOnlyPart::~ReadOnlyPart() () from /usr/lib/libkparts.so.4
#28 0x08079510 in Marble::MarblePart::~MarblePart (this=0x998a510, __in_chrg=<optimized out>, __vtt_parm=<optimized out>) at ../../src/marble_part.cpp:199
#29 0x080795b0 in Marble::MarblePart::~MarblePart (this=0x998a510, __in_chrg=<optimized out>, __vtt_parm=<optimized out>) at ../../src/marble_part.cpp:205
#30 0x080693d9 in ~MainWindow (this=0x999a3d8, __in_chrg=<optimized out>, __vtt_parm=<optimized out>) at ../../src/KdeMainWindow.cpp:71
#31 Marble::MainWindow::~MainWindow (this=0x999a3d8, __in_chrg=<optimized out>, __vtt_parm=<optimized out>) at ../../src/KdeMainWindow.cpp:72
#32 0xb66e8423 in qDeleteInEventHandler (o=o@entry=0x999a3d8) at kernel/qobject.cpp:4269
#33 0xb66ee5b0 in QObject::event (this=0x999a3d8, e=0xb5a0958) at kernel/qobject.cpp:1175
#34 0xb5c3f202 in QWidget::event (this=0x999a3d8, event=event@entry=0xb5a0958) at kernel/qwidget.cpp:8845
#35 0xb605fb0f in QMainWindow::event (this=0x999a3d8, event=0xb5a0958) at widgets/qmainwindow.cpp:1478
#36 0xb6d9a4d5 in KMainWindow::event(QEvent*) () from /usr/lib/libkdeui.so.5
#37 0xb6ddc216 in KXmlGuiWindow::event(QEvent*) () from /usr/lib/libkdeui.so.5
#38 0xb5be5744 in QApplicationPrivate::notify_helper (this=0x98607b8, receiver=0x999a3d8, e=0xb5a0958) at kernel/qapplication.cpp:4567
#39 0xb5bec223 in QApplication::notify (this=0xbf9e6544, receiver=0x999a3d8, e=0xb5a0958) at kernel/qapplication.cpp:4353
#40 0xb6ccbff4 in KApplication::notify(QObject*, QEvent*) () from /usr/lib/libkdeui.so.5
#41 0xb66d4eda in QCoreApplication::notifyInternal (this=0xbf9e6544, receiver=receiver@entry=0x999a3d8, event=event@entry=0xb5a0958) at kernel/qcoreapplication.cpp:946
#42 0xb66d86ad in sendEvent (event=0xb5a0958, receiver=0x999a3d8) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231
#43 QCoreApplicationPrivate::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0, data=0x980d038) at kernel/qcoreapplication.cpp:1570
#44 0xb66d8bbc in QCoreApplication::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0) at kernel/qcoreapplication.cpp:1463
#45 0xb6704f6e in sendPostedEvents () at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:236
#46 postEventSourceDispatch (s=0x9860a30) at kernel/qeventdispatcher_glib.cpp:279
#47 0xb2a9783e in g_main_context_dispatch () from /lib/i386-linux-gnu/libglib-2.0.so.0
#48 0xb2a97be8 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#49 0xb2a97ca8 in g_main_context_iteration () from /lib/i386-linux-gnu/libglib-2.0.so.0
#50 0xb67048bf in QEventDispatcherGlib::processEvents (this=this@entry=0x983e888, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#51 0xb5c9a32e in QGuiEventDispatcherGlib::processEvents (this=0x983e888, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#52 0xb66d39f3 in QEventLoop::processEvents (this=this@entry=0xbf9e6478, flags=...) at kernel/qeventloop.cpp:149
#53 0xb66d3d19 in QEventLoop::exec (this=this@entry=0xbf9e6478, flags=...) at kernel/qeventloop.cpp:204
#54 0xb66d989e in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1218
#55 0xb5be3974 in QApplication::exec () at kernel/qapplication.cpp:3828
#56 0x080608a8 in main (argc=1, argv=0xbf9e6614) at ../../src/kdemain.cpp:403

Reported using DrKonqi
Comment 1 Dennis Nienhüser 2013-11-30 08:54:28 UTC
As a workaround you can create a bookmark in Marble. This will create a bookmark file which will prevent the crash. If you don't want to have bookmarks, you can delete the bookmark afterwards, the bookmark file will stay around empty and still prevent the crash.
I'll push a fix for Marble 1.6.5 soon, please reopen this bug if you still experience the crash once upgraded to that or a later version.
Comment 2 Dennis Nienhüser 2013-11-30 08:55:12 UTC
Git commit e9e94dfd95cdf96a49b351cf60707d042da56d7e by Dennis Nienhüser.
Committed on 13/11/2013 at 18:19.
Pushed by nienhueser into branch 'KDE/4.11'.

Fix regression introduced in 9e630ca

Parsing a broken/non-existing KML document returns a null
GeoDocument, so we need to recreate a bookmark document in order
to prevent crashes later on.
Related: bug 327444
FIXED-IN: 4.11.5
(cherry picked from commit 7603ee9e386ed7a6e638bdf5cf7a450b04a752b4)

M  +4    -2    src/lib/BookmarkManager.cpp

http://commits.kde.org/marble/e9e94dfd95cdf96a49b351cf60707d042da56d7e