Bug 252146 - Workout crashes in Marble plugin
Summary: Workout crashes in Marble plugin
Status: RESOLVED FIXED
Alias: None
Product: marble
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: unspecified Linux
: NOR crash
Target Milestone: ---
Assignee: marble-bugs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-09-23 15:49 UTC by Christoph Feck
Modified: 2010-09-26 14:30 UTC (History)
2 users (show)

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 Christoph Feck 2010-09-23 15:49:02 UTC
Application: workout (0.9.50)
KDE Platform Version: 4.5.69 (4.6 >= 20100920) (Compiled from sources)
Qt Version: 4.7.0
Operating System: Linux 2.6.34.7-0.2-desktop i686
Distribution: "openSUSE 11.3 (i586)"

-- Information about the crash:
- What I was doing when the application crashed:

I compiled the KDE4 version of Workout, and just running it, causes this crash in Marble plugin. KDE from trunk.

The crash can be reproduced every time.

-- Backtrace:
Application: Workout (workout), signal: Segmentation fault
[Current thread is 1 (Thread 0xb31db710 (LWP 9519))]

Thread 4 (Thread 0xb0e24b70 (LWP 9527)):
#0  0xffffe424 in __kernel_vsyscall ()
#1  0xb584c75e in __poll (fds=0x83863b0, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:87
#2  0xb35771db in IA__g_poll (fds=0x83863b0, nfds=1, timeout=-1) at gpoll.c:127
#3  0xb3567286 in g_main_context_poll (context=0x838ace0, block=1, dispatch=1, self=0x836dbe0) at gmain.c:2904
#4  g_main_context_iterate (context=0x838ace0, block=1, dispatch=1, self=0x836dbe0) at gmain.c:2586
#5  0xb356760e in IA__g_main_context_iteration (context=0x838ace0, may_block=1) at gmain.c:2654
#6  0xb68ca5bc in QEventDispatcherGlib::processEvents (this=0x834ce60, flags=...) at /local/git/Qt/qt/src/corelib/kernel/qeventdispatcher_glib.cpp:417
#7  0xb6893d3d in QEventLoop::processEvents (this=0xb0e24298, flags=...) at /local/git/Qt/qt/src/corelib/kernel/qeventloop.cpp:149
#8  0xb6893e81 in QEventLoop::exec (this=0xb0e24298, flags=...) at /local/git/Qt/qt/src/corelib/kernel/qeventloop.cpp:201
#9  0xb678966c in QThread::exec (this=0x84c6e08) at /local/git/Qt/qt/src/corelib/thread/qthread.cpp:490
#10 0xb6875744 in QInotifyFileSystemWatcherEngine::run (this=0x84c6e08) at /local/git/Qt/qt/src/corelib/io/qfilesystemwatcher_inotify.cpp:248
#11 0xb678bd0e in QThreadPrivate::start (arg=0x84c6e08) at /local/git/Qt/qt/src/corelib/thread/qthread_unix.cpp:285
#12 0xb66edb25 in start_thread (arg=0xb0e24b70) at pthread_create.c:297
#13 0xb585746e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 3 (Thread 0xadaaeb70 (LWP 9533)):
#0  0xffffe424 in __kernel_vsyscall ()
#1  0xb66f2452 in pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S:179
#2  0xb678d03f in QWaitConditionPrivate::wait (this=0xbdb4490, time=30000) at /local/git/Qt/qt/src/corelib/thread/qwaitcondition_unix.cpp:86
#3  0xb678ce5d in QWaitCondition::wait (this=0xbdb46e4, mutex=0xbdb46e0, time=30000) at /local/git/Qt/qt/src/corelib/thread/qwaitcondition_unix.cpp:160
#4  0xb677e4de in QThreadPoolThread::run (this=0xbdb8a98) at /local/git/Qt/qt/src/corelib/concurrent/qthreadpool.cpp:140
#5  0xb678bd0e in QThreadPrivate::start (arg=0xbdb8a98) at /local/git/Qt/qt/src/corelib/thread/qthread_unix.cpp:285
#6  0xb66edb25 in start_thread (arg=0xadaaeb70) at pthread_create.c:297
#7  0xb585746e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 2 (Thread 0xaf276b70 (LWP 9534)):
#0  0xffffe424 in __kernel_vsyscall ()
#1  0xb66f2452 in pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S:179
#2  0xb678d03f in QWaitConditionPrivate::wait (this=0xbdb4490, time=30000) at /local/git/Qt/qt/src/corelib/thread/qwaitcondition_unix.cpp:86
#3  0xb678ce5d in QWaitCondition::wait (this=0xbdb46e4, mutex=0xbdb46e0, time=30000) at /local/git/Qt/qt/src/corelib/thread/qwaitcondition_unix.cpp:160
#4  0xb677e4de in QThreadPoolThread::run (this=0xbded4f0) at /local/git/Qt/qt/src/corelib/concurrent/qthreadpool.cpp:140
#5  0xb678bd0e in QThreadPrivate::start (arg=0xbded4f0) at /local/git/Qt/qt/src/corelib/thread/qthread_unix.cpp:285
#6  0xb66edb25 in start_thread (arg=0xaf276b70) at pthread_create.c:297
#7  0xb585746e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 1 (Thread 0xb31db710 (LWP 9519)):
[KCrash Handler]
#7  0xb7772108 in Marble::MarbleWidget::sunLocator (this=0xbf9ce250) at /local/svn/kde/trunk/KDE/kdeedu/marble/src/lib/MarbleWidget.cpp:1259
#8  0xb037dbec in Marble::StarsPlugin::render (this=0xa113608, painter=0xbf9ce240, viewport=0x8380b2c, renderPos=..., layer=0x0)
    at /local/svn/kde/trunk/KDE/kdeedu/marble/src/plugins/render/stars/StarsPlugin.cpp:230
#9  0xb77c5e65 in Marble::LayerManager::renderLayer (this=0xa1256e8, painter=0xbf9ce240, viewParams=0x838062c, renderPosition=...)
    at /local/svn/kde/trunk/KDE/kdeedu/marble/src/lib/LayerManager.cpp:173
#10 0xb77c5fc3 in Marble::LayerManager::renderLayers (this=0xa1256e8, painter=0xbf9ce240, viewParams=0x838062c, renderPositions=...)
    at /local/svn/kde/trunk/KDE/kdeedu/marble/src/lib/LayerManager.cpp:136
#11 0xb777a374 in Marble::MarbleModel::paintGlobe (this=0x84c2850, painter=0xbf9ce240, viewParams=0x838062c, redrawBackground=true, dirtyRect=...)
    at /local/svn/kde/trunk/KDE/kdeedu/marble/src/lib/MarbleModel.cpp:729
#12 0xb7781a84 in Marble::MarbleMapPrivate::paintGround (this=0x8380618, painter=..., dirtyRect=...) at /local/svn/kde/trunk/KDE/kdeedu/marble/src/lib/MarbleMap.cpp:220
#13 0xb77702c4 in Marble::MarbleWidget::paintEvent (this=0x82b1dc0, evt=0xbf9ce8e4) at /local/svn/kde/trunk/KDE/kdeedu/marble/src/lib/MarbleWidget.cpp:818
#14 0xb5bf968a in QWidget::event (this=0x82b1dc0, event=0xbf9ce8e4) at /local/git/Qt/qt/src/gui/kernel/qwidget.cpp:8346
#15 0xb5b98f1e in QApplicationPrivate::notify_helper (this=0x81185c8, receiver=0x82b1dc0, e=0xbf9ce8e4) at /local/git/Qt/qt/src/gui/kernel/qapplication.cpp:4440
#16 0xb5b98c53 in QApplication::notify (this=0xbf9cfedc, receiver=0x82b1dc0, e=0xbf9ce8e4) at /local/git/Qt/qt/src/gui/kernel/qapplication.cpp:4405
#17 0xb6f26ffe in KApplication::notify (this=0xbf9cfedc, receiver=0x82b1dc0, event=0xbf9ce8e4) at /local/svn/kde/trunk/KDE/kdelibs/kdeui/kernel/kapplication.cpp:310
#18 0xb6895fdf in QCoreApplication::notifyInternal (this=0xbf9cfedc, receiver=0x82b1dc0, event=0xbf9ce8e4) at /local/git/Qt/qt/src/corelib/kernel/qcoreapplication.cpp:732
#19 0xb5b9b801 in QCoreApplication::sendSpontaneousEvent (receiver=0x82b1dc0, event=0xbf9ce8e4) at ../../include/QtCore/../../../../git/Qt/qt/src/corelib/kernel/qcoreapplication.h:218
#20 0xb5bf1e33 in QWidgetPrivate::drawWidget (this=0x82f9810, pdev=0xab2da90, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0xa6cce98)
    at /local/git/Qt/qt/src/gui/kernel/qwidget.cpp:5433
#21 0xb5bf2bb2 in QWidgetPrivate::paintSiblingsRecursive (this=0x82f64c8, pdev=0xab2da90, siblings=..., index=10, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0xa6cce98)
    at /local/git/Qt/qt/src/gui/kernel/qwidget.cpp:5640
#22 0xb5bf221c in QWidgetPrivate::drawWidget (this=0x82f64c8, pdev=0xab2da90, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0xa6cce98)
    at /local/git/Qt/qt/src/gui/kernel/qwidget.cpp:5486
#23 0xb5bf2bb2 in QWidgetPrivate::paintSiblingsRecursive (this=0x8296ac0, pdev=0xab2da90, siblings=..., index=4, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0xa6cce98)
    at /local/git/Qt/qt/src/gui/kernel/qwidget.cpp:5640
#24 0xb5bf221c in QWidgetPrivate::drawWidget (this=0x8296ac0, pdev=0xab2da90, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0xa6cce98)
    at /local/git/Qt/qt/src/gui/kernel/qwidget.cpp:5486
#25 0xb5bf2bb2 in QWidgetPrivate::paintSiblingsRecursive (this=0x81e6328, pdev=0xab2da90, siblings=..., index=10, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0xa6cce98)
    at /local/git/Qt/qt/src/gui/kernel/qwidget.cpp:5640
#26 0xb5bf2a81 in QWidgetPrivate::paintSiblingsRecursive (this=0x81e6328, pdev=0xab2da90, siblings=..., index=11, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0xa6cce98)
    at /local/git/Qt/qt/src/gui/kernel/qwidget.cpp:5627
#27 0xb5bf2a81 in QWidgetPrivate::paintSiblingsRecursive (this=0x81e6328, pdev=0xab2da90, siblings=..., index=12, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0xa6cce98)
    at /local/git/Qt/qt/src/gui/kernel/qwidget.cpp:5627
#28 0xb5bf2a81 in QWidgetPrivate::paintSiblingsRecursive (this=0x81e6328, pdev=0xab2da90, siblings=..., index=14, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0xa6cce98)
    at /local/git/Qt/qt/src/gui/kernel/qwidget.cpp:5627
#29 0xb5bf2a81 in QWidgetPrivate::paintSiblingsRecursive (this=0x81e6328, pdev=0xab2da90, siblings=..., index=16, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0xa6cce98)
    at /local/git/Qt/qt/src/gui/kernel/qwidget.cpp:5627
#30 0xb5bf2a81 in QWidgetPrivate::paintSiblingsRecursive (this=0x81e6328, pdev=0xab2da90, siblings=..., index=24, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0xa6cce98)
    at /local/git/Qt/qt/src/gui/kernel/qwidget.cpp:5627
#31 0xb5bf2a81 in QWidgetPrivate::paintSiblingsRecursive (this=0x81e6328, pdev=0xab2da90, siblings=..., index=25, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0xa6cce98)
    at /local/git/Qt/qt/src/gui/kernel/qwidget.cpp:5627
#32 0xb5bf221c in QWidgetPrivate::drawWidget (this=0x81e6328, pdev=0xab2da90, rgn=..., offset=..., flags=5, sharedPainter=0x0, backingStore=0xa6cce98)
    at /local/git/Qt/qt/src/gui/kernel/qwidget.cpp:5486
#33 0xb5dff2be in QWidgetBackingStore::sync (this=0xa6cce98) at /local/git/Qt/qt/src/gui/painting/qbackingstore.cpp:1333
#34 0xb5dfe66a in QWidgetBackingStore::sync (this=0xa6cce98, exposedWidget=0x81f2f10, exposedRegion=...) at /local/git/Qt/qt/src/gui/painting/qbackingstore.cpp:1130
#35 0xb5be92f6 in QWidgetPrivate::syncBackingStore (this=0x81e6328, region=...) at /local/git/Qt/qt/src/gui/kernel/qwidget.cpp:1831
#36 0xb5c31307 in QETWidget::translatePaintEvent (this=0x81f2f10, event=0xbf9cfbd0) at /local/git/Qt/qt/src/gui/kernel/qapplication_x11.cpp:5152
#37 0xb5c2bf43 in QApplication::x11ProcessEvent (this=0xbf9cfedc, event=0xbf9cfbd0) at /local/git/Qt/qt/src/gui/kernel/qapplication_x11.cpp:3464
#38 0xb5c61122 in x11EventSourceDispatch (s=0x811b8e8, callback=0, user_data=0x0) at /local/git/Qt/qt/src/gui/kernel/qguieventdispatcher_glib.cpp:146
#39 0xb3566b49 in g_main_dispatch (context=0x811aa98) at gmain.c:1960
#40 IA__g_main_context_dispatch (context=0x811aa98) at gmain.c:2513
#41 0xb3567350 in g_main_context_iterate (context=0x811aa98, block=1, dispatch=1, self=0x8118768) at gmain.c:2591
#42 0xb356760e in IA__g_main_context_iteration (context=0x811aa98, may_block=1) at gmain.c:2654
#43 0xb68ca59c in QEventDispatcherGlib::processEvents (this=0x8118588, flags=...) at /local/git/Qt/qt/src/corelib/kernel/qeventdispatcher_glib.cpp:415
#44 0xb5c61478 in QGuiEventDispatcherGlib::processEvents (this=0x8118588, flags=...) at /local/git/Qt/qt/src/gui/kernel/qguieventdispatcher_glib.cpp:204
#45 0xb6893d3d in QEventLoop::processEvents (this=0xbf9cfe6c, flags=...) at /local/git/Qt/qt/src/corelib/kernel/qeventloop.cpp:149
#46 0xb6893e81 in QEventLoop::exec (this=0xbf9cfe6c, flags=...) at /local/git/Qt/qt/src/corelib/kernel/qeventloop.cpp:201
#47 0xb68966ca in QCoreApplication::exec () at /local/git/Qt/qt/src/corelib/kernel/qcoreapplication.cpp:1009
#48 0xb5b9644c in QApplication::exec () at /local/git/Qt/qt/src/gui/kernel/qapplication.cpp:3714
#49 0x080667d5 in main (argc=1, argv=0xbf9cffc4) at /local/svn/kde/trunk/playground/edu/workout/src/main.cpp:123

Reported using DrKonqi
Comment 1 Christoph Feck 2010-09-23 15:50:06 UTC
Adding Volker, author or Workout.
Comment 2 Volker Lanz 2010-09-23 17:41:14 UTC
Quoting from #marble a few weeks ago:

19:39 < Torch> deleting the starsplugin helps
19:46 < Torch> hjain: $ rm /home/kde-devel/kde4/lib/kde4/plugins/marble/StarsPlugin.so
19:48 < hjain> idis_: I think this problem is related to cmake. The previous StarsPlugin.so was not replaced by the newer one. But I am not sure.

The crash does not happen on my 4.5.1 installation where I mainly develop.
Comment 3 Christoph Feck 2010-09-23 22:11:24 UTC
Right, deleting StarsPlugin.so works, but on next installation of Marble, it is installed again, so it wasn't an old file lying around.
Comment 4 Dennis Nienhüser 2010-09-26 09:44:55 UTC
SVN commit 1179732 by nienhueser:

Replace the c-style cast with a dynamic_cast and check its result. You cannot rely on the paint device being the marble widget, this is not true if the widget is disabled, for example.
CCBUG: 252146

 M  +2 -2      StarsPlugin.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1179732
Comment 5 Christoph Feck 2010-09-26 13:29:54 UTC
Thanks, after this commit, workout no longer crashes.
Comment 6 Dennis Nienhüser 2010-09-26 14:30:28 UTC
Great, thanks for testing. Trunk doesn't have this code part, so no backport is needed.
Comment 7 Dennis Nienhüser 2010-09-26 14:30:49 UTC
Great, thanks for testing. 4.5 doesn't have this code part, so no backport is needed.