Summary: | Marble widget crashed while loading | ||
---|---|---|---|
Product: | [Applications] marble | Reporter: | Bonnaud Frédéric <fred> |
Component: | general | Assignee: | Torsten Rahn <rahn> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | caulier.gilles, jensmh |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | Compiled Sources | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | 0.10.0 | |
Sentry Crash Report: | |||
Attachments: | Sample KML file, created by digikam |
Description
Bonnaud Frédéric
2008-05-26 23:22:56 UTC
Frédéric, Sorry, but 0.10.0 still in alpha code. we cannot accept bug report yet. Also, your backtrace bring me about marble widget internal crash that i can reproduce here ! It's duing an uncomplete KML import method in marble widget. This will be fixed in the future by marble team. See below the same crash using marble widget debug info. a class instance is null. this is why marble widget (and digiKam) crash: Program received signal SIGSEGV, Segmentation fault. [Switching to Thread -1261414704 (LWP 18867)] MarblePlacemarkModel::coordinateData (this=0x0, index=@0xa127dd8) at /home/gilles/Documents/Devel/SVN/trunk/kdeedu/marble/src/lib/MarblePlacemarkModel.cpp:100 100 return d->m_placeMarkContainer.at( index.row() )->coordinate(); (gdb) bt #0 MarblePlacemarkModel::coordinateData (this=0x0, index=@0xa127dd8) at /home/gilles/Documents/Devel/SVN/trunk/kdeedu/marble/src/lib/MarblePlacemarkModel.cpp:100 #1 0xb5b8cda4 in PlaceMarkLayout::paintPlaceFolder (this=0xa737388, painter=0xbfb83594, viewParams=0x8c02694, model=0xa10c7d8, selectionModel=0xa106a98, firstTime=true) at /home/gilles/Documents/Devel/SVN/trunk/kdeedu/marble/src/lib/PlaceMarkLayout.cpp:333 #2 0xb5b327e1 in MarbleModel::paintGlobe (this=0x8c05d10, painter=0xbfb83594, width=268, height=745, viewParams=0x8c02694, redrawBackground=true, dirtyRect=@0xbfb8360c) at /home/gilles/Documents/Devel/SVN/trunk/kdeedu/marble/src/lib/MarbleModel.cpp:510 #3 0xb5b3ac24 in MarbleMap::paint (this=0x8c02620, painter=@0xbfb83594, dirtyRect=@0xbfb8360c) at /home/gilles/Documents/Devel/SVN/trunk/kdeedu/marble/src/lib/MarbleMap.cpp:882 #4 0xb5b2d22a in MarbleWidget::paintEvent (this=0x8c02458, evt=0xbfb83a54) at /home/gilles/Documents/Devel/SVN/trunk/kdeedu/marble/src/lib/MarbleWidget.cpp:766 #5 0xb6e5fb50 in QWidget::event () from /usr/lib/qt4/lib/libQtGui.so.4 #6 0xb6e191c2 in QApplicationPrivate::notify_helper () from /usr/lib/qt4/lib/libQtGui.so.4 #7 0xb6e1f899 in QApplication::notify () from /usr/lib/qt4/lib/libQtGui.so.4 #8 0xb7944281 in KApplication::notify () from /opt/kde4/lib/libkdeui.so.5 #9 0xb7e81378 in QCoreApplication::notifyInternal () from /usr/lib/qt4/lib/libQtCore.so.4 #10 0xb6e6854d in QAbstractItemModel::sort () from /usr/lib/qt4/lib/libQtGui.so.4 #11 0xb6f8006a in QWidgetPrivate::drawWidget () from /usr/lib/qt4/lib/libQtGui.so.4 #12 0xb6f7fac3 in QAbstractItemModel::sort () from /usr/lib/qt4/lib/libQtGui.so.4 #13 0xb6f7fcb0 in QWidgetPrivate::drawWidget () from /usr/lib/qt4/lib/libQtGui.so.4 #14 0xb6f7fac3 in QAbstractItemModel::sort () from /usr/lib/qt4/lib/libQtGui.so.4 #15 0xb6f7fcb0 in QWidgetPrivate::drawWidget () from /usr/lib/qt4/lib/libQtGui.so.4 #16 0xb6f7fac3 in QAbstractItemModel::sort () from /usr/lib/qt4/lib/libQtGui.so.4 #17 0xb6f7fcb0 in QWidgetPrivate::drawWidget () from /usr/lib/qt4/lib/libQtGui.so.4 #18 0xb6f7fac3 in QAbstractItemModel::sort () from /usr/lib/qt4/lib/libQtGui.so.4 #19 0xb6f7fcb0 in QWidgetPrivate::drawWidget () from /usr/lib/qt4/lib/libQtGui.so.4 #20 0xb6f7fac3 in QAbstractItemModel::sort () from /usr/lib/qt4/lib/libQtGui.so.4 #21 0xb6f7fcb0 in QWidgetPrivate::drawWidget () from /usr/lib/qt4/lib/libQtGui.so.4 #22 0xb6f7fac3 in QAbstractItemModel::sort () from /usr/lib/qt4/lib/libQtGui.so.4 #23 0xb6f7f99f in QAbstractItemModel::sort () from /usr/lib/qt4/lib/libQtGui.so.4 #24 0xb6f7fcb0 in QWidgetPrivate::drawWidget () from /usr/lib/qt4/lib/libQtGui.so.4 #25 0xb6f809d8 in QAbstractItemModel::sort () from /usr/lib/qt4/lib/libQtGui.so.4 #26 0xb6f81395 in QAbstractItemModel::sort () from /usr/lib/qt4/lib/libQtGui.so.4 #27 0xb6e5fe36 in QWidget::event () from /usr/lib/qt4/lib/libQtGui.so.4 #28 0xb7133985 in QFrame::event () from /usr/lib/qt4/lib/libQtGui.so.4 #29 0xb7137813 in QLabel::event () from /usr/lib/qt4/lib/libQtGui.so.4 #30 0xb6e191c2 in QApplicationPrivate::notify_helper () from /usr/lib/qt4/lib/libQtGui.so.4 #31 0xb6e1f899 in QApplication::notify () from /usr/lib/qt4/lib/libQtGui.so.4 #32 0xb7944281 in KApplication::notify () from /opt/kde4/lib/libkdeui.so.5 #33 0xb7e81378 in QCoreApplication::notifyInternal () from /usr/lib/qt4/lib/libQtCore.so.4 #34 0xb7e82912 in QCoreApplicationPrivate::sendPostedEvents () from /usr/lib/qt4/lib/libQtCore.so.4 #35 0xb7e82b7c in QCoreApplication::sendPostedEvents () from /usr/lib/qt4/lib/libQtCore.so.4 #36 0xb6e9581c in QAbstractItemModel::sort () from /usr/lib/qt4/lib/libQtGui.so.4 #37 0xb7e807e3 in QEventLoop::processEvents () from /usr/lib/qt4/lib/libQtCore.so.4 #38 0xb7e808ea in QEventLoop::exec () from /usr/lib/qt4/lib/libQtCore.so.4 #39 0xb7e82c46 in QCoreApplication::exec () from /usr/lib/qt4/lib/libQtCore.so.4 #40 0xb6e18884 in QApplication::exec () from /usr/lib/qt4/lib/libQtGui.so.4 #41 0x082810a1 in main (argc=1, argv=0xbfb854f4) at /home/gilles/Documents/Devel/SVN/trunk/graphics/digikam/digikam/main.cpp:326 Gilles Caulier Code using marble widget in digiKam is here : http://websvn.kde.org/trunk/extragear/graphics/digikam/libs/imageproperties/worldmapwidget.cpp?revision=807385&view=markup Gilles Caulier Valgrind BT : TextureTile::loadRawTile end m_depth = 8 MarbleModel::paintTile: x: 2 y: 0 level: 1 requestTileUpdate false TextureTile::loadRawTile end m_depth = 8 MarbleModel::paintTile: x: 3 y: 0 level: 1 requestTileUpdate false TextureTile::loadRawTile end m_depth = 8 MarbleModel::paintTile: x: 1 y: 0 level: 1 requestTileUpdate false TextureTile::loadRawTile end m_depth = 8 MarbleModel::paintTile: x: 0 y: 0 level: 1 requestTileUpdate false TextureTile::loadRawTile end m_depth = 8 MarbleModel::paintTile: x: 0 y: 1 level: 1 requestTileUpdate false TextureTile::loadRawTile end m_depth = 8 MarbleModel::paintTile: x: 1 y: 1 level: 1 requestTileUpdate false TextureTile::loadRawTile end m_depth = 8 MarbleModel::paintTile: x: 3 y: 1 level: 1 requestTileUpdate false RESET started RESET stopped Detecting maxLabelHeight ... ==11084== ==11084== Conditional jump or move depends on uninitialised value(s) ==11084== at 0xF53EACD: CompassFloatItem::needsUpdate(ViewportParams*) (CompassFloatItem.cpp:90) ==11084== by 0x63A6DD8: MarbleAbstractFloatItem::render(GeoPainter*, ViewportParams*, QString const&, GeoSceneLayer*) (MarbleAbstractFloatItem.cpp:347) ==11084== by 0x63A4116: LayerManager::renderLayers(GeoPainter*, ViewportParams*, GeoSceneLayer*) (LayerManager.cpp:50) ==11084== by 0x637A0B1: MarbleModel::paintGlobe(GeoPainter*, int, int, ViewParams*, bool, QRect const&) (MarbleModel.cpp:558) ==11084== by 0x637FA8B: MarbleMap::paint(GeoPainter&, QRect&) (MarbleMap.cpp:882) ==11084== by 0x6375FD4: MarbleWidget::paintEvent(QPaintEvent*) (MarbleWidget.cpp:766) ==11084== by 0x4C3BB4F: QWidget::event(QEvent*) (in /usr/lib/qt4/lib/libQtGui.so.4.3.4) ==11084== by 0x4BF51C1: QApplicationPrivate::notify_helper(QObject*, QEvent*) (in /usr/lib/qt4/lib/libQtGui.so.4.3.4) ==11084== by 0x4BFB898: QApplication::notify(QObject*, QEvent*) (in /usr/lib/qt4/lib/libQtGui.so.4.3.4) ==11084== by 0x71DB137: ??? Polarity 1 Starting KML-Import ==11084== ==11084== Invalid read of size 4 ==11084== at 0x639719C: MarblePlacemarkModel::coordinateData(QModelIndex const&) const (MarblePlacemarkModel.cpp:100) ==11084== by 0x63B795D: PlaceMarkLayout::paintPlaceFolder(QPainter*, ViewParams*, QAbstractItemModel const*, QItemSelectionModel const*, bool) (PlaceMarkLayout.cpp:333) ==11084== by 0x637A0FC: MarbleModel::paintGlobe(GeoPainter*, int, int, ViewParams*, bool, QRect const&) (MarbleModel.cpp:510) ==11084== by 0x637FA8B: MarbleMap::paint(GeoPainter&, QRect&) (MarbleMap.cpp:882) ==11084== by 0x6375FD4: MarbleWidget::paintEvent(QPaintEvent*) (MarbleWidget.cpp:766) ==11084== by 0x4C3BB4F: QWidget::event(QEvent*) (in /usr/lib/qt4/lib/libQtGui.so.4.3.4) ==11084== by 0x4BF51C1: QApplicationPrivate::notify_helper(QObject*, QEvent*) (in /usr/lib/qt4/lib/libQtGui.so.4.3.4) ==11084== by 0x4BFB898: QApplication::notify(QObject*, QEvent*) (in /usr/lib/qt4/lib/libQtGui.so.4.3.4) ==11084== by 0x71DB137: ??? ==11084== Address 0x8 is not stack'd, malloc'd or (recently) free'd KCrash: crashing... crashRecursionCounter = 2 KCrash: Application Name = digikam path = <unknown> pid = 11084 sock_file=/home/gilles/.kde4/socket-localhost/kdeinit4__0 kdeinit4: Got EXEC_NEW '/opt/kde4/lib/kde4/libexec/drkonqi' from socket. kdeinit4: preparing to launch /opt/kde4/lib/kde4/libexec/drkonqi kdeinit4: PID 11220 terminated. Gilles Caulier How to reproduce the crash in digiKam: 1/ add an image with GPS data. 2/ select it in iconview 3/ open Geolocation tab from right sidebar 4/ GPS data are loaded in marble widget as a KML file => crash Note: with marblewidget 0.5.1 and the same version of digiKam, there is no crash! Gilles Caulier I can confirm this bug. The KML file which digikam creates can be read with Marble without problem. Jens-Michael Hoffmann I have to correct my last comment (#5): Marble sometimes crashes after loading the KML file. Jens-Michael Hoffmann Created attachment 25023 [details]
Sample KML file, created by digikam
SVN commit 815548 by jmhoffmann: Fix bug 162678. Connect PlacemarkSelectionModel and MarblePlacemarkModel to valid PlaceMarkLayout object, not to null pointer. BUG: 162678 M +8 -0 ChangeLog M +9 -6 src/lib/MarbleModel.cpp WebSVN link: http://websvn.kde.org/?view=rev&revision=815548 I confirm: crash diseapear now under digiKam. Thanks for the fix. Gilles Caulier |