Bug 341253 - Declarative marble craches when you try to change the map
Summary: Declarative marble craches when you try to change the map
Status: RESOLVED WORKSFORME
Alias: None
Product: marble
Classification: Applications
Component: general (show other bugs)
Version: 1.9 (KDE 4.14)
Platform: Debian stable Linux
: NOR crash
Target Milestone: ---
Assignee: marble-bugs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-11-25 14:31 UTC by Oleg Lyubimov
Modified: 2018-11-30 04:02 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 Oleg Lyubimov 2014-11-25 14:31:37 UTC
QML application based on MarbleWidget crashes after you change the map theme in the MapThemeModel. The bug is reproduced, when you have no the opening map in path "~/.local/share/marble/maps". The application crashes during tile rendering process. In marble-qt all work OK.
System config:
Kubuntu 12.04 x64 LTS, Qt 4.8.1 and 4.8.6, cmake 2.8.7, gcc 4.6.3

Program Code for bug reproducing:

import QtQuick 1.1
import org.kde.edu.marble 0.11

Rectangle {
    id: screen
    width: 1200
    height: 800

    MarbleSettings {
        id: settings
    }

    MapThemeModel{
        id: mapThemeModel
    }

    MarbleWidget {
        id: map
        width: 600
        height: screen.height
        property bool initialized: false
        workOffline: settings.workOffline
        mapThemeId: settings.mapTheme
        radius: settings.quitRadius
        //projection: "Equirectangular"
        activeFloatItems: [ "compass", "scalebar", "progress" ]
        activeRenderPlugins: settings.activeRenderPlugins
    }
// View for declarative MapThemeModel
    ListView {
        id: mapListView
        anchors.left: map.right
        anchors.right: screen.right
        height: screen.height
        highlightFollowsCurrentItem: true
        model: mapThemeModel

        // Delegate that displays a preview image and the name of the map theme.
        delegate:
            Rectangle {
            id: themeItem
            width: mapListView.width
            height: mapImage.height + 5
            // Highlight current map theme with a blue background.
            color: mapThemeId === settings.mapTheme ? "lightsteelblue" : "white"
            Row {
                anchors.verticalCenter: parent.verticalCenter
                anchors.left: parent.left
                anchors.leftMargin: 15
                // Preview image of the map theme.
                Image {
                    id: mapImage
                    source: "image://maptheme/" + mapThemeId
                }
                // Label with the name of the map theme.
                Text {
                    id: themeLabel
                    text: display
                    color: "black"
                    anchors.verticalCenter: parent.verticalCenter
                }
            }
            // If the user clicks on a theme, use it for the map.
            MouseArea {
                anchors.fill: parent
                onClicked: {
                    mapListView.currentIndex = index
                    console.debug(mapThemeId)
                    map.mapThemeId = mapThemeId
                }
            }
        }
    }
}

Reproducible: Always

Steps to Reproduce:
1. Build marble for QTONLY 
2. Remove any maps from "~/.local/share/marble/maps" path 
3. Create a default QML application width the code, deskribed on field "Details"
4. Run the application, and select another map theme from map theme list in the right part of the application's screen.



Actual Results:  
Map theme is changed, tiles for this theme are successfully created.

Expected Results:  
Map theme is changed, application craches during the tile creation process. Application crashes only when you open the map at the first time. If you open  this map again, the application works OK.



The backtrace from gdb:

Program received signal SIGSEGV, Segmentation fault.
QDeclarativeError::isValid (this=0xa8) at qml/qdeclarativeerror.cpp:138
138     qml/qdeclarativeerror.cpp: Нет такого файла или каталога (No such file or directory).
(gdb) bt 
#0  QDeclarativeError::isValid (this=0xa8) at qml/qdeclarativeerror.cpp:138
#1  0x00007ffff7a2e0ef in QDeclarativeBoundSignal::qt_metacall (this=0xf9db20, c=<optimized out>, id=<optimized out>, a=0x7fffffffc0a0)
    at qml/qdeclarativeboundsignal.cpp:187
#2  0x00007ffff681d489 in QMetaObject::activate (sender=0xf9d790, m=<optimized out>, local_signal_index=<optimized out>, argv=0x7fffffffc0a0)
    at kernel/qobject.cpp:3566
#3  0x00007ffff7ae82d2 in QDeclarativeMouseArea::clicked (this=<optimized out>, _t1=0x7fffffffc0e0)
    at .moc/release-shared/moc_qdeclarativemousearea_p.cpp:523
#4  0x00007ffff7993f01 in QDeclarativeMouseArea::setPressed (this=0xf9d790, p=<optimized out>) at graphicsitems/qdeclarativemousearea.cpp:935
#5  0x00007ffff7994005 in QDeclarativeMouseArea::mouseReleaseEvent (this=0xf9d790, event=0x7fffffffc990) at graphicsitems/qdeclarativemousearea.cpp:587
#6  0x00007ffff7311493 in QGraphicsItem::sceneEvent (this=0xf9d7a0, event=0x7fffffffc990) at graphicsview/qgraphicsitem.cpp:6741
#7  0x00007ffff7986cf2 in QDeclarativeItem::sceneEvent (this=0xf9d790, event=0x7fffffffc990) at graphicsitems/qdeclarativeitem.cpp:3047
#8  0x00007ffff7993529 in QDeclarativeMouseArea::sceneEvent (this=0xf9d790, event=0x7fffffffc990) at graphicsitems/qdeclarativemousearea.cpp:682
#9  0x00007ffff7339c8a in QGraphicsScenePrivate::sendMouseEvent (this=0x71b8e0, mouseEvent=0x7fffffffc990) at graphicsview/qgraphicsscene.cpp:1295
#10 0x00007ffff733a675 in QGraphicsScene::mouseReleaseEvent (this=<optimized out>, mouseEvent=0x7fffffffc990) at graphicsview/qgraphicsscene.cpp:4128
#11 0x00007ffff73487df in QGraphicsScene::event (this=0x719940, event=0x7fffffffc990) at graphicsview/qgraphicsscene.cpp:3458
#12 0x00007ffff6d2b894 in notify_helper (e=0x7fffffffc990, receiver=0x719940, this=0x60c5b0) at kernel/qapplication.cpp:4559
#13 QApplicationPrivate::notify_helper (this=0x60c5b0, receiver=0x719940, e=0x7fffffffc990) at kernel/qapplication.cpp:4531
#14 0x00007ffff6d30713 in QApplication::notify (this=0x60c590, receiver=0x719940, e=0x7fffffffc990) at kernel/qapplication.cpp:4420
#15 0x00007ffff6808e9c in QCoreApplication::notifyInternal (this=0x60c590, receiver=0x719940, event=0x7fffffffc990) at kernel/qcoreapplication.cpp:876
#16 0x00007ffff7363e16 in QGraphicsView::mouseReleaseEvent (this=0x7fffffffdfc0, event=0x7fffffffd300) at graphicsview/qgraphicsview.cpp:3338
#17 0x00007ffff6d7c144 in QWidget::event (this=0x7fffffffdfc0, event=0x7fffffffd300) at kernel/qwidget.cpp:8362
#18 0x00007ffff713c3f6 in QFrame::event (this=0x7fffffffdfc0, e=0x7fffffffd300) at widgets/qframe.cpp:557
#19 0x00007ffff7366b6b in QGraphicsView::viewportEvent (this=0x7fffffffdfc0, event=0x7fffffffd300) at graphicsview/qgraphicsview.cpp:2866
#20 0x00007ffff6809028 in QCoreApplicationPrivate::sendThroughObjectEventFilters (this=<optimized out>, receiver=0x6b46d0, event=0x7fffffffd300)
    at kernel/qcoreapplication.cpp:986
#21 0x00007ffff6d2b85f in notify_helper (e=0x7fffffffd300, receiver=0x6b46d0, this=0x60c5b0) at kernel/qapplication.cpp:4555
#22 QApplicationPrivate::notify_helper (this=0x60c5b0, receiver=0x6b46d0, e=0x7fffffffd300) at kernel/qapplication.cpp:4531
#23 0x00007ffff6d310bf in QApplication::notify (this=<optimized out>, receiver=0x6b46d0, e=0x7fffffffd300) at kernel/qapplication.cpp:4102
#24 0x00007ffff6808e9c in QCoreApplication::notifyInternal (this=0x60c590, receiver=0x6b46d0, event=0x7fffffffd300) at kernel/qcoreapplication.cpp:876
#25 0x00007ffff6d2c862 in sendEvent (event=<optimized out>, receiver=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231
#26 QApplicationPrivate::sendMouseEvent (receiver=0x6b46d0, event=0x7fffffffd300, alienWidget=0x6b46d0, nativeWidget=0x7fffffffdfc0, buttonDown=0x6b46d0, 
    lastMouseReceiver=..., spontaneous=true) at kernel/qapplication.cpp:3170
#27 0x00007ffff6dabc35 in QETWidget::translateMouseEvent (this=0x7fffffffdfc0, event=<optimized out>) at kernel/qapplication_x11.cpp:4619
#28 0x00007ffff6daabee in QApplication::x11ProcessEvent (this=0x60c590, event=0x7fffffffdbd0) at kernel/qapplication_x11.cpp:3734
#29 0x00007ffff6dd4112 in x11EventSourceDispatch (s=0x610120, callback=0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146
#30 0x00007ffff3f26d13 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#31 0x00007ffff3f27060 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#32 0x00007ffff3f27124 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#33 0x00007ffff68383bf in QEventDispatcherGlib::processEvents (this=0x60d920, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#34 0x00007ffff6dd3d9e in QGuiEventDispatcherGlib::processEvents (this=<optimized out>, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#35 0x00007ffff6807c82 in QEventLoop::processEvents (this=<optimized out>, flags=...) at kernel/qeventloop.cpp:149
#36 0x00007ffff6807ed7 in QEventLoop::exec (this=0x7fffffffdf70, flags=...) at kernel/qeventloop.cpp:204
#37 0x00007ffff680cf67 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1148
#38 0x0000000000402efb in main (argc=1, argv=0x7fffffffe118) at ../marble-test/main.cpp:14
Comment 1 Andrew Crouthamel 2018-10-31 04:08:08 UTC
Dear Bug Submitter,

This bug has been stagnant for a long time. Could you help us out and re-test if the bug is valid in the latest version? I am setting the status to NEEDSINFO pending your response, please change the Status back to REPORTED when you respond.

Thank you for helping us make KDE software even better for everyone!
Comment 2 Bug Janitor Service 2018-11-15 10:49:45 UTC
Dear Bug Submitter,

This bug has been in NEEDSINFO status with no change for at least
15 days. Please provide the requested information as soon as
possible and set the bug status as REPORTED. Due to regular bug
tracker maintenance, if the bug is still in NEEDSINFO status with
no change in 30 days the bug will be closed as RESOLVED > WORKSFORME
due to lack of needed information.

For more information about our bug triaging procedures please read the
wiki located here:
https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

If you have already provided the requested information, please
mark the bug as REPORTED so that the KDE team knows that the bug is
ready to be confirmed.

Thank you for helping us make KDE software even better for everyone!
Comment 3 Bug Janitor Service 2018-11-30 04:02:35 UTC
This bug has been in NEEDSINFO status with no change for at least
30 days. The bug is now closed as RESOLVED > WORKSFORME
due to lack of needed information.

For more information about our bug triaging procedures please read the
wiki located here:
https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

Thank you for helping us make KDE software even better for everyone!