Summary: | Crash when browsing photos and looking at geolocation | ||
---|---|---|---|
Product: | [Applications] marble | Reporter: | Arnout Boelens <a.m.p.boelens> |
Component: | general | Assignee: | Patrick Spendrin <ps_ml> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | felix, mat.fuessel, matthew, mboquien, noeck.marburg, rahn, rharrison, rjwgnr27, sputnikshock |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | unspecified | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: | |||
Attachments: | kcrash output |
Description
Arnout Boelens
2009-01-30 19:04:32 UTC
And another one... Gilles Hello. I can reproduce the crash with 4.2 branch, r939321. To reproduce follow those steps: 1) Open the marble widget with the tab on the right 2) zoom in to see the name of the pic on the map 3) ctrl-A (many geotagged pics needed in the album) 4) BOOM Thanks. *** Bug 189228 has been marked as a duplicate of this bug. *** *** Bug 190917 has been marked as a duplicate of this bug. *** duplicate bug 189228 has a good description of what happens at the marble side to trigger this crash (don't know if it is the only way to trigger it, though). Reassigning to Patrick *** Bug 193730 has been marked as a duplicate of this bug. *** *** Bug 193229 has been marked as a duplicate of this bug. *** *** Bug 189049 has been marked as a duplicate of this bug. *** *** Bug 195511 has been marked as a duplicate of this bug. *** Some more info: Adding some placemarks using MarbleWidget::addPlacemarkData(QString kmlString, QString key) works as expected. Removing the same placemarks using MarbleWidget::removePlacemarkKey(QString key) writes to console that the correct number of placemarks have been removed and returns. But soon afterwards marble crashes with the following stacktrace: Thread [1] 17233 (Suspended : Signal) __dynamic_cast() at 0x7ffff30aa7b8 Marble::GeoRendererView::renderIndex() at 0x7fffe3fa2468 Marble::GeoRendererView::paintEvent() at 0x7fffe3fa28b6 Marble::GeoRendererView::setGeoPainter() at 0x7fffe3fa1aca Marble::GeoRendererPlugin::render() at 0x7fffe3fa0f28 Marble::LayerManager::renderLayer() at 0x7ffff648e2df Marble::LayerManager::renderLayers() at 0x7ffff648e5d7 Marble::MarbleModel::paintGlobe() at 0x7ffff6449015 Marble::MarbleMapPrivate::paintGround() at 0x7ffff6450b78 Marble::MarbleWidget::paintEvent() at 0x7ffff6441226 <...more frames...> The crash happens while evaluating: dynamic_cast<GeoDataFeature*>( indexObject ) This is the first dynamic_cast statement in renderview. dynamic_cast /crashes/, it doesn't return NULL. typeid(indexObject).name() gives "PN6Marble13GeoDataObjectE" immediately before the dynamic_cast statement. For the "index" parameter of renderIndex, index.isValid() returns false, but this seems to be also the case sometimes when renderIndex actually works. If I comment out the renderIndex call in GeoRendererView::paintEvent, adding and removing my placemarks seems to work fine, judged by the placemark list in the sidebar. The map view behaves a bit strange, then: removing my placemarks removes /all/ placemarks from there (possibly due to not calling renderIndex), but adding my placemarks back makes /all/ placemarks magically reappear... Unfortunately, I'm not much of an expert for both C++ and Qt. I don't even understand how dynamic_cast for a pointer could crash at all. Could someone with some deeper C++ knowledge please take a look? I can reproduce the crash all the time and will gladly test any patches, but I have no idea how to move on... Created attachment 35835 [details]
kcrash output
Is this report for version 0.10.0 only? I had the same problem under 0.10.0, too but it seems to be fixed in the version I'm using now. I can't reproduce it anymore. Version 1.0.0-beta5 KDE 4.3.2 (KDE 4.3.2) ubuntu 9.10 karmic Perhaps this bug could be marked as fixed? I haven't had any crashes with 1.1.0, so I think it should be marked fixed, indeed. |