Bug 273474 - Crash when zooming in
Summary: Crash when zooming in
Status: RESOLVED FIXED
Alias: None
Product: marble
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: Arch Linux Linux
: NOR crash
Target Milestone: 1.1.0
Assignee: marble-bugs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-05-17 11:48 UTC by Bernhard Beschow
Modified: 2011-06-16 23:37 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 Bernhard Beschow 2011-05-17 11:48:46 UTC
Application: marble (1.1.80 (1.2 Beta 1))
KDE Platform Version: 4.6.3 (4.6.3)
Qt Version: 4.7.3
Operating System: Linux 2.6.38-ARCH i686
Distribution (Platform): Archlinux Packages

-- Information about the crash:
- What I was doing when the application crashed:
I pressed the + button which triggered an animated zoom event. During the zoom event (perhaps at the end), Marble crashed. Since I have set "outline quality" for animation and "high quality" for still images, I can't tell in which quality mode the crash happened.

Note that I use latest master.

The crash can be reproduced some of the time.

-- Backtrace:
Application: Marble – Virtueller Globus (marble), signal: Segmentation fault
[Current thread is 1 (Thread 0xb3772930 (LWP 9340))]

Thread 5 (Thread 0xb10e6b70 (LWP 9352)):
#0  0xb3faed10 in clock_gettime () from /lib/librt.so.1
#1  0xb67c03c5 in ?? () from /usr/lib/libQtCore.so.4
#2  0xb6892c86 in ?? () from /usr/lib/libQtCore.so.4
#3  0xb6892fda in ?? () from /usr/lib/libQtCore.so.4
#4  0xb6891853 in ?? () from /usr/lib/libQtCore.so.4
#5  0xb68918ed in ?? () from /usr/lib/libQtCore.so.4
#6  0xb3efd49c in g_main_context_prepare () from /usr/lib/libglib-2.0.so.0
#7  0xb3efe317 in ?? () from /usr/lib/libglib-2.0.so.0
#8  0xb3efe98a in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#9  0xb6892317 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#10 0xb686311d in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#11 0xb6863361 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#12 0xb6766a2b in QThread::exec() () from /usr/lib/libQtCore.so.4
#13 0xb6843d3d in ?? () from /usr/lib/libQtCore.so.4
#14 0xb6769843 in ?? () from /usr/lib/libQtCore.so.4
#15 0xb5716c77 in start_thread () from /lib/libpthread.so.0
#16 0xb59d0c6e in clone () from /lib/libc.so.6

Thread 4 (Thread 0xb00efb70 (LWP 9354)):
#0  0xb7726424 in __kernel_vsyscall ()
#1  0xb59c675e in poll () from /lib/libc.so.6
#2  0xb3f0d10b in g_poll () from /usr/lib/libglib-2.0.so.0
#3  0xb3efe566 in ?? () from /usr/lib/libglib-2.0.so.0
#4  0xb3efe98a in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#5  0xb6892317 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#6  0xb686311d in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#7  0xb6863361 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#8  0xb6766a2b in QThread::exec() () from /usr/lib/libQtCore.so.4
#9  0xb6843d3d in ?? () from /usr/lib/libQtCore.so.4
#10 0xb6769843 in ?? () from /usr/lib/libQtCore.so.4
#11 0xb5716c77 in start_thread () from /lib/libpthread.so.0
#12 0xb59d0c6e in clone () from /lib/libc.so.6

Thread 3 (Thread 0xaf6ffb70 (LWP 9355)):
#0  0xb3efe2f6 in ?? () from /usr/lib/libglib-2.0.so.0
#1  0xb3efe98a in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#2  0xb6892317 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#3  0xb686311d in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#4  0xb6863361 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#5  0xb6766a2b in QThread::exec() () from /usr/lib/libQtCore.so.4
#6  0xb6843d3d in ?? () from /usr/lib/libQtCore.so.4
#7  0xb6769843 in ?? () from /usr/lib/libQtCore.so.4
#8  0xb5716c77 in start_thread () from /lib/libpthread.so.0
#9  0xb59d0c6e in clone () from /lib/libc.so.6

Thread 2 (Thread 0xacefab70 (LWP 9361)):
#0  0xb7726424 in __kernel_vsyscall ()
#1  0xb59c00a2 in __xstat64 () from /lib/libc.so.6
#2  0xb683c845 in ?? () from /usr/lib/libQtCore.so.4
#3  0xb683ca75 in QFSFileEngine::fileFlags(QFlags<QAbstractFileEngine::FileFlag>) const () from /usr/lib/libQtCore.so.4
#4  0xb67f4581 in ?? () from /usr/lib/libQtCore.so.4
#5  0xb67f6299 in QFileInfo::isDir() const () from /usr/lib/libQtCore.so.4
#6  0xb67ee6e8 in ?? () from /usr/lib/libQtCore.so.4
#7  0xb67ee989 in ?? () from /usr/lib/libQtCore.so.4
#8  0xb67eeb5d in QDirIterator::next() () from /usr/lib/libQtCore.so.4
#9  0xb74f6a1e in Marble::FileStorageWatcherThread::getCurrentCacheSize (this=0xa828298) at /home/shentey/Projekte/marble/src/src/lib/FileStorageWatcher.cpp:109
#10 0xb74f6e92 in Marble::FileStorageWatcher::run (this=0xa17f508) at /home/shentey/Projekte/marble/src/src/lib/FileStorageWatcher.cpp:391
#11 0xb6769843 in ?? () from /usr/lib/libQtCore.so.4
#12 0xb5716c77 in start_thread () from /lib/libpthread.so.0
#13 0xb59d0c6e in clone () from /lib/libc.so.6

Thread 1 (Thread 0xb3772930 (LWP 9340)):
[KCrash Handler]
#7  0xb5f71d47 in QTransform::type() const () from /usr/lib/libQtGui.so.4
#8  0xb5f92045 in ?? () from /usr/lib/libQtGui.so.4
#9  0xb5fa2377 in ?? () from /usr/lib/libQtGui.so.4
#10 0xb5f186b4 in QPainter::drawPixmap(QPointF const&, QPixmap const&) () from /usr/lib/libQtGui.so.4
#11 0xb74d6c23 in drawPixmap (this=0xa115620, painter=0xbf858da8, visiblePlacemarks=..., selection=..., viewport=0xa137154) at /usr/include/QtGui/qpainter.h:842
#12 Marble::PlacemarkPainter::drawPlacemarks (this=0xa115620, painter=0xbf858da8, visiblePlacemarks=..., selection=..., viewport=0xa137154) at /home/shentey/Projekte/marble/src/src/lib/PlacemarkPainter.cpp:74
#13 0xb74d32f8 in Marble::PlacemarkLayout::paintPlaceFolder (this=0xa13abb8, painter=0xbf858da8, viewParams=0xa13ab8c) at /home/shentey/Projekte/marble/src/src/lib/PlacemarkLayout.cpp:605
#14 0xb7455e7c in Marble::MarbleMapPrivate::paintGround (this=0xa13ab80, painter=..., dirtyRect=...) at /home/shentey/Projekte/marble/src/src/lib/MarbleMap.cpp:205
#15 0xb74471f6 in Marble::MarbleWidget::paintEvent (this=0xa177c20, evt=0xbf859334) at /home/shentey/Projekte/marble/src/src/lib/MarbleWidget.cpp:771
#16 0xb5e0b00a in QWidget::event(QEvent*) () from /usr/lib/libQtGui.so.4
#17 0xb5db1084 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#18 0xb5db64e8 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#19 0xb6e57ed1 in KApplication::notify(QObject*, QEvent*) () from /usr/lib/libkdeui.so.5
#20 0xb68640de in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4
#21 0xb5e07e6a in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /usr/lib/libQtGui.so.4
#22 0xb5feb147 in ?? () from /usr/lib/libQtGui.so.4
#23 0xb5dfd7bb in QWidgetPrivate::syncBackingStore() () from /usr/lib/libQtGui.so.4
#24 0xb5e0b997 in QWidget::event(QEvent*) () from /usr/lib/libQtGui.so.4
#25 0xb6224aac in QMainWindow::event(QEvent*) () from /usr/lib/libQtGui.so.4
#26 0xb6f38cf4 in KMainWindow::event(QEvent*) () from /usr/lib/libkdeui.so.5
#27 0xb6f7af52 in KXmlGuiWindow::event(QEvent*) () from /usr/lib/libkdeui.so.5
#28 0xb5db1084 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#29 0xb5db64e8 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#30 0xb6e57ed1 in KApplication::notify(QObject*, QEvent*) () from /usr/lib/libkdeui.so.5
#31 0xb68640de in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4
#32 0xb6867838 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/lib/libQtCore.so.4
#33 0xb68679fc in QCoreApplication::sendPostedEvents(QObject*, int) () from /usr/lib/libQtCore.so.4
#34 0xb6891e84 in ?? () from /usr/lib/libQtCore.so.4
#35 0xb3efdeff in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#36 0xb3efe660 in ?? () from /usr/lib/libglib-2.0.so.0
#37 0xb3efe98a in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#38 0xb68922b7 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#39 0xb5e647ea in ?? () from /usr/lib/libQtGui.so.4
#40 0xb686311d in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#41 0xb6863361 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#42 0xb6867aaa in QCoreApplication::exec() () from /usr/lib/libQtCore.so.4
#43 0xb5daeed4 in QApplication::exec() () from /usr/lib/libQtGui.so.4
#44 0x0805cf3b in main (argc=) at /home/shentey/Projekte/marble/src/src/kdemain.cpp:351

Reported using DrKonqi
Comment 1 Bernhard Beschow 2011-05-17 11:50:34 UTC
The crash actually happens as soon as I switch to "OSM" from the "Satellite View".
Comment 2 Bernhard Beschow 2011-05-17 12:16:47 UTC
I can reproduce the crash as follows:
1. switch from "Satellite View" to "OSM"
2. search for some placemark, e.g. "Berlin"
-> when the map moves, Marble eventually crashes
Comment 3 Bernhard Beschow 2011-06-16 23:37:56 UTC
Git commit f1e56cfbfc7478f3e410fce67162b7f2ebe3b70d by Bernhard Beschow.
Committed on 16/06/2011 at 23:18.
Pushed by beschow into branch 'master'.

fix crash involving TileScalingTextureMapper

Using the GeoPainter here directly rather than using a temporary QPainter on the GeoPainter's device seems to prevent the crash.

BUG: 273474

M  +5    -3    src/lib/TileScalingTextureMapper.cpp     

http://commits.kde.org/marble/f1e56cfbfc7478f3e410fce67162b7f2ebe3b70d