Bug 286799 - crash when starting Marble
Summary: crash when starting Marble
Status: RESOLVED FIXED
Alias: None
Product: marble
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: Unlisted Binaries Linux
: NOR normal
Target Milestone: 1.3 (KDE 4.8)
Assignee: marble-bugs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-11-16 19:01 UTC by Bernhard Beschow
Modified: 2011-11-16 19:29 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 Bernhard Beschow 2011-11-16 19:01:20 UTC
Version:           unspecified
OS:                Linux

PositionMarker::setPosition() is called before PositionMarker::render() is called, such that m_viewport == 0x0.

Thread 1 (Thread 0xb4fb2710 (LWP 22824)):
#0  Marble::ViewportParams::viewLatLonAltBox (this=0x0) at /home/shentey/Projekte/marble/src/src/lib/ViewportParams.cpp:319
No locals.
#1  0xb1ac2547 in Marble::PositionMarker::setPosition (this=0x83204c0, position=...) at /home/shentey/Projekte/marble/src/src/plugins/render/positionmarker/PositionMarker.cpp:417
No locals.
#2  0xb1ac673b in Marble::PositionMarker::qt_metacall (this=0x83204c0, _c=QMetaObject::InvokeMetaMethod, _id=<optimized out>, _a=0xbfffea74) at /home/shentey/Projekte/marble/build-qt/src/plugins/render/positionmarker/PositionMarker.moc:87
No locals.
#3  0xb7e80eed in QMetaObject::metacall(QObject*, QMetaObject::Call, int, void**) () from /usr/lib/libQtCore.so.4
No symbol table info available.
#4  0xb7e8fdda in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4
No symbol table info available.
#5  0xb6fe6fad in Marble::PositionTracking::gpsLocation (this=0x81decec, _t1=..., _t2=0) at /home/shentey/Projekte/marble/build-qt/src/lib/PositionTracking.moc:137
        _a = {0x0, 0xbfffeab8, 0xbfffea68}
#6  0xb6fe8544 in Marble::PositionTracking::qt_metacall (this=0x81decec, _c=QMetaObject::InvokeMetaMethod, _id=0, _a=0xbfffebb4) at /home/shentey/Projekte/marble/build-qt/src/lib/PositionTracking.moc:92
No locals.
#7  0xb7e80eed in QMetaObject::metacall(QObject*, QMetaObject::Call, int, void**) () from /usr/lib/libQtCore.so.4
No symbol table info available.
#8  0xb7e8fdda in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4
No symbol table info available.
#9  0xb6fe762d in Marble::PositionTrackingPrivate::gpsLocation (this=0x8114a00, _t1=..., _t2=0) at /home/shentey/Projekte/marble/build-qt/src/lib/PositionTracking_p.moc:97
        _a = {0x0, 0xbfffec08, 0xbfffeba8}
#10 0xb6fe7796 in Marble::PositionTrackingPrivate::setPosition (this=0x8114a00, position=..., accuracy=...) at /home/shentey/Projekte/marble/src/src/lib/PositionTracking.cpp:55
        speed = <optimized out>
        placemark = <optimized out>
#11 0xb6fe7a10 in Marble::PositionTrackingPrivate::qt_metacall (this=0x8114a00, _c=QMetaObject::InvokeMetaMethod, _id=2, _a=0xbfffed54) at /home/shentey/Projekte/marble/build-qt/src/lib/PositionTracking_p.moc:84
No locals.
#12 0xb7e80eed in QMetaObject::metacall(QObject*, QMetaObject::Call, int, void**) () from /usr/lib/libQtCore.so.4
No symbol table info available.
#13 0xb7e8fdda in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4
No symbol table info available.
#14 0xb6ff2c6d in Marble::PositionProviderPlugin::positionChanged (this=0x8a87ce8, _t1=..., _t2=...) at /home/shentey/Projekte/marble/build-qt/src/lib/PositionProviderPlugin.moc:98
        _a = {0x0, 0xbfffeda8, 0xbfffed78}
#15 0xb3a4b2a8 in Marble::FileReaderPositionProviderPlugin::update (this=0x8a87ce8) at /home/shentey/Projekte/marble/src/src/plugins/positionprovider/filereader/FileReaderPositionProviderPlugin.cpp:223
No locals.
#16 0xb3a4b366 in Marble::FileReaderPositionProviderPlugin::qt_metacall (this=0x8a87ce8, _c=QMetaObject::InvokeMetaMethod, _id=<optimized out>, _a=0xbfffee74) at /home/shentey/Projekte/marble/build-qt/src/plugins/positionprovider/filereader/FileReaderPositionProviderPlugin.moc:75
No locals.
#17 0xb7e80eed in QMetaObject::metacall(QObject*, QMetaObject::Call, int, void**) () from /usr/lib/libQtCore.so.4
No symbol table info available.
#18 0xb7e8fdda in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4
No symbol table info available.
#19 0xb7e976e5 in ?? () from /usr/lib/libQtCore.so.4
No symbol table info available.
#20 0xb7e9779c in ?? () from /usr/lib/libQtCore.so.4
No symbol table info available.
#21 0xb7e92d04 in QObject::event(QEvent*) () from /usr/lib/libQtCore.so.4
No symbol table info available.
#22 0xb73c0a24 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
No symbol table info available.
#23 0xb73c5dd3 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
No symbol table info available.
#24 0xb7e7ab2e in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4
No symbol table info available.
#25 0xb7eaaf70 in ?? () from /usr/lib/libQtCore.so.4
No symbol table info available.
#26 0xb7ea8492 in ?? () from /usr/lib/libQtCore.so.4
No symbol table info available.
#27 0xb69d401f in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#28 0xb69d4750 in ?? () from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#29 0xb69d49ea in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#30 0xb7ea8e4a in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
No symbol table info available.
#31 0xb7473f8a in ?? () from /usr/lib/libQtGui.so.4
No symbol table info available.
#32 0xb7e79b6d in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
No symbol table info available.
#33 0xb7e79db1 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
No symbol table info available.
#34 0xb7e7e50d in QCoreApplication::exec() () from /usr/lib/libQtCore.so.4
No symbol table info available.
#35 0xb73be894 in QApplication::exec() () from /usr/lib/libQtGui.so.4
No symbol table info available.
#36 0x08059630 in main (argc=134884544, argv=0x80a2cc0) at /home/shentey/Projekte/marble/src/src/qtmain.cpp:260

Reproducible: Always

Steps to Reproduce:
1) create a route
2) activate the FileReaderPositionProviderPlugin
3) restart Marble

Actual Results:  
Marble crashes

Expected Results:  
Marble shouldn't crash

Seems only to happen in the Qt-only version.
Comment 1 Bernhard Beschow 2011-11-16 19:29:13 UTC
Git commit 836fb716857f5868e9adaa3e48fe2df9bbf50e52 by Bernhard Beschow.
Committed on 16/11/2011 at 20:12.
Pushed by beschow into branch 'master'.

PositionMarker: don't get a hold on ViewportParams

BUG: 286799

M  +12   -17   src/plugins/render/positionmarker/PositionMarker.cpp
M  +3    -2    src/plugins/render/positionmarker/PositionMarker.h

http://commits.kde.org/marble/836fb716857f5868e9adaa3e48fe2df9bbf50e52