Bug 318512 - Marble-Qt crashes when trying to delete a restored track from previous run
Summary: Marble-Qt crashes when trying to delete a restored track from previous run
Status: RESOLVED FIXED
Alias: None
Product: marble
Classification: Applications
Component: general (show other bugs)
Version: 1.6 (KDE 4.11)
Platform: Other Linux
: NOR crash
Target Milestone: ---
Assignee: Thibaut Gridel
URL:
Keywords:
: 318736 (view as bug list)
Depends on:
Blocks:
 
Reported: 2013-04-17 16:58 UTC by Bernhard Beschow
Modified: 2013-04-23 21:42 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
Track that leads to a crash (35.20 KB, application/xml)
2013-04-17 17:00 UTC, Bernhard Beschow
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Bernhard Beschow 2013-04-17 16:58:13 UTC
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.
Comment 1 Bernhard Beschow 2013-04-17 17:00:45 UTC
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.
Comment 2 Thibaut Gridel 2013-04-23 21:32:55 UTC
*** Bug 318736 has been marked as a duplicate of this bug. ***
Comment 3 Thibaut Gridel 2013-04-23 21:42:53 UTC
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