When Marble (Qt-version only) picks up a track from a prevous run, Marble crashes when trying to delete it. The crash is not reproducable in the KDE version because the "restore track" feature is broken or not present here. Backtrace: Thread 1 (Thread 0x7ffff7fa8780 (LWP 21410)): #0 0x00007ffff6416a65 in Marble::GeoDataTrack::lineString (this=0x120cea0) at /home/shentey/Projekte/marble/src/src/lib/geodata/data/GeoDataTrack.cpp:249 No locals. #1 0x00007ffff641c8fd in Marble::GeoTrackGraphicsItem::update (this=0x118e120) at /home/shentey/Projekte/marble/src/src/lib/geodata/graphicsitem/GeoTrackGraphicsItem.cpp:40 No locals. #2 0x00007ffff641c9a2 in Marble::GeoTrackGraphicsItem::paint (this=0x118e120, painter=0x7fffffffced0, viewport=0x742600) at /home/shentey/Projekte/marble/src/src/lib/geodata/graphicsitem/GeoTrackGraphicsItem.cpp:33 No locals. #3 0x00007ffff645e967 in Marble::GeometryLayer::render (this=0x742700, painter=0x7fffffffced0, viewport=0x742600, renderPos=..., layer=<optimized out>) at /home/shentey/Projekte/marble/src/src/lib/layers/GeometryLayer.cpp:258 item = 0x118e120 _container_ = {c = {{p = {static shared_null = {ref = {_q_value = 14177}, alloc = 0, begin = 0, end = 0, sharable = 1, array = {0x0}}, d = 0x15d4370}, d = 0x15d4370}}, brk = 0, i = {i = 0x15d4390}, e = {i = 0x15d4450}} items = {{p = {static shared_null = {ref = {_q_value = 14177}, alloc = 0, begin = 0, end = 0, sharable = 1, array = {0x0}}, d = 0x15d4370}, d = 0x15d4370}} painted = 0 #4 0x00007ffff64e2d95 in Marble::LayerManager::renderLayers (this=0x7426d0, painter=0x7fffffffced0, viewport=0x742600) at /home/shentey/Projekte/marble/src/src/lib/LayerManager.cpp:171 layer = 0x742710 _container_ = {c = {{p = {static shared_null = {ref = {_q_value = 14177}, alloc = 0, begin = 0, end = 0, sharable = 1, array = {0x0}}, d = 0xdc7170}, d = 0xdc7170}}, brk = 0, i = {i = 0xdc7188}, e = {i = 0xdc71a8}} layers = {{p = {static shared_null = {ref = {_q_value = 14177}, alloc = 0, begin = 0, end = 0, sharable = 1, array = {0x0}}, d = 0xdc7170}, d = 0xdc7170}} timer = {mds = 67015576} _container_ = {c = {<QList<QString>> = {{p = {static shared_null = {ref = {_q_value = 14177}, alloc = 0, begin = 0, end = 0, sharable = 1, array = {0x0}}, d = 0x106f140}, d = 0x106f140}}, <No data fields>}, brk = 0, i = {i = 0x106f170}, e = {i = 0x106f1a0}} totalTime = {mds = 67015571} renderPositions = {<QList<QString>> = {{p = {static shared_null = {ref = {_q_value = 14177}, alloc = 0, begin = 0, end = 0, sharable = 1, array = {0x0}}, d = 0x106f140}, d = 0x106f140}}, <No data fields>} traceList = {<QList<QString>> = {{p = {static shared_null = {ref = {_q_value = 14177}, alloc = 0, begin = 0, end = 0, sharable = 1, array = {0x0}}, d = 0x15d9d10}, d = 0x15d9d10}}, <No data fields>} #5 0x00007ffff6480ab1 in Marble::MarbleMap::paint (this=0x7f10b0, painter=..., dirtyRect=...) at /home/shentey/Projekte/marble/src/src/lib/MarbleMap.cpp:766 t = {mds = 67015571} fps = <optimized out> #6 0x00007ffff6475adf in Marble::MarbleWidget::paintEvent (this=0x741440, evt=0x7fffffffd710) at /home/shentey/Projekte/marble/src/src/lib/MarbleWidget.cpp:814 doClip = <optimized out> geoPainter = {<Marble::ClipPainter> = {<QPainter> = {static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x7ffff74f4960 "QPainter", data = 0x7ffff74f4a00, extradata = 0x0}}, d_ptr = {d = 0x15daa90}}, d = 0x15c94c0}, d = 0xa96d40} t = {mds = 67015571} paintDevice = 0x741450 image = <incomplete type> #7 0x00007ffff6e7a9fe in QWidget::event(QEvent*) () from /usr/lib/libQtGui.so.4 No symbol table info available. #8 0x00007ffff6e2b18c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4 No symbol table info available. #9 0x00007ffff6e2f60a in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4 No symbol table info available. #10 0x00007ffff7a7c6ae in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4 No symbol table info available. #11 0x00007ffff6e765c4 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /usr/lib/libQtGui.so.4 No symbol table info available. #12 0x00007ffff7040c4d in ?? () from /usr/lib/libQtGui.so.4 No symbol table info available. #13 0x00007ffff6e6b8b0 in QWidgetPrivate::syncBackingStore() () from /usr/lib/libQtGui.so.4 No symbol table info available. #14 0x00007ffff6e7aea4 in QWidget::event(QEvent*) () from /usr/lib/libQtGui.so.4 No symbol table info available. #15 0x00007ffff723f25b in QMainWindow::event(QEvent*) () from /usr/lib/libQtGui.so.4 No symbol table info available. #16 0x00007ffff6e2b18c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4 No symbol table info available. #17 0x00007ffff6e2f60a in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4 No symbol table info available. #18 0x00007ffff7a7c6ae in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4 No symbol table info available. #19 0x00007ffff7a80011 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/lib/libQtCore.so.4 No symbol table info available. #20 0x00007ffff7aaa9d3 in ?? () from /usr/lib/libQtCore.so.4 No symbol table info available. #21 0x00007ffff50a7845 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0 No symbol table info available. #22 0x00007ffff50a7b78 in ?? () from /usr/lib/libglib-2.0.so.0 No symbol table info available. #23 0x00007ffff50a7c34 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0 No symbol table info available. #24 0x00007ffff7aaab66 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4 No symbol table info available. #25 0x00007ffff6ecb69e in ?? () from /usr/lib/libQtGui.so.4 No symbol table info available. #26 0x00007ffff7a7b3ff in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4 No symbol table info available. #27 0x00007ffff7a7b688 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4 No symbol table info available. #28 0x00007ffff7a80328 in QCoreApplication::exec() () from /usr/lib/libQtCore.so.4 No symbol table info available. #29 0x0000000000414a4c in main (argc=2, argv=<optimized out>) at /home/shentey/Projekte/marble/src/src/qtmain.cpp:257 graphicsString = {static null = {<No data fields>}, static shared_null = {ref = {_q_value = 165971}, alloc = 0, size = 0, data = 0x65c79a <QString::shared_null+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 750}, alloc = 0, size = 0, data = 0x7ffff7dd98fa <QString::shared_empty+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, d = 0x6cba40, static codecForCStrings = 0x0} app = <incomplete type> marbleDataPath = {static null = {<No data fields>}, static shared_null = {ref = {_q_value = 165971}, alloc = 0, size = 0, data = 0x65c79a <QString::shared_null+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 750}, alloc = 0, size = 0, data = 0x7ffff7dd98fa <QString::shared_empty+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, d = 0x65c780 <QString::shared_null>, static codecForCStrings = 0x0} mapThemeId = {static null = {<No data fields>}, static shared_null = {ref = {_q_value = 165971}, alloc = 0, size = 0, data = 0x65c79a <QString::shared_null+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 750}, alloc = 0, size = 0, data = 0x7ffff7dd98fa <QString::shared_empty+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, d = 0x65c780 <QString::shared_null>, static codecForCStrings = 0x0} cmdLineSettings = {{d = 0x65c7a0 <QMapData::shared_null>, e = 0x65c7a0 <QMapData::shared_null>}} window = 0x747380 args = {<QList<QString>> = {{p = {static shared_null = {ref = {_q_value = 14177}, alloc = 0, begin = 0, end = 0, sharable = 1, array = {0x0}}, d = 0x74d810}, d = 0x74d810}}, <No data fields>} graphicsSettings = <incomplete type> lang = {static null = {<No data fields>}, static shared_null = {ref = {_q_value = 165971}, alloc = 0, size = 0, data = 0x65c79a <QString::shared_null+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 750}, alloc = 0, size = 0, data = 0x7ffff7dd98fa <QString::shared_empty+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, d = 0x7472c0, static codecForCStrings = 0x0} translator = <incomplete type> dataPathIndex = <optimized out> distanceString = {static null = {<No data fields>}, static shared_null = {ref = {_q_value = 165971}, alloc = 0, size = 0, data = 0x65c79a <QString::shared_null+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 750}, alloc = 0, size = 0, data = 0x7ffff7dd98fa <QString::shared_empty+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, d = 0x65c780 <QString::shared_null>, static codecForCStrings = 0x0} profiles = {i = 0} coordinatesString = {static null = {<No data fields>}, static shared_null = {ref = {_q_value = 165971}, alloc = 0, size = 0, data = 0x65c79a <QString::shared_null+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 750}, alloc = 0, size = 0, data = 0x7ffff7dd98fa <QString::shared_empty+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, d = 0x65c780 <QString::shared_null>, static codecForCStrings = 0x0} measurement = <optimized out> Reproducible: Always Steps to Reproduce: 1. Create a route 2. Let Marble simulate the route by picking Location->Position Tracking->Current Route 3. Let Marble simulate the route at least twice 4. Restart Marble 5. Clear the route (Location->Position Tracking->Clear Route) Actual Results: Marble crashes and the route is not deleted. Expected Results: The route should be cleared and deleted and Marble should not crash. The crash was introduced by commit bb92970f93b4463b30dff9a8bdb7f49ccd63fc9b.
Created attachment 78988 [details] Track that leads to a crash Put track.kml in ~/.local/share/marble/tracking, start marble-qt and try to clear the track.
*** Bug 318736 has been marked as a duplicate of this bug. ***
Git commit 4542c34949511f09a5cb2b5f8de097f375c93bf3 by Thibaut Gridel. Committed on 23/04/2013 at 23:34. Pushed by tgridel into branch 'master'. GeoGraphicsScene: handle MultiGeometries as well M +10 -8 src/lib/GeoGraphicsScene.cpp http://commits.kde.org/marble/4542c34949511f09a5cb2b5f8de097f375c93bf3