Bug 249516 - Crash when changing rotation on primary display (and other screen changes related situations) [QWidget::mapToParent, QWidget::mapTo, SystemTray::X11EmbedPainter::performUpdates]
Summary: Crash when changing rotation on primary display (and other screen changes rel...
Status: RESOLVED FIXED
Alias: None
Product: plasma4
Classification: Plasma
Component: widget-systemtray (show other bugs)
Version: unspecified
Platform: Fedora RPMs Linux
: NOR crash
Target Milestone: ---
Assignee: Plasma Bugs List
URL:
Keywords:
: 242054 252823 253509 256087 256388 262042 263820 266947 268275 269355 271572 272036 (view as bug list)
Depends on:
Blocks:
 
Reported: 2010-08-30 16:19 UTC by Clemens Eisserer
Modified: 2011-05-01 14:44 UTC (History)
10 users (show)

See Also:
Latest Commit:
Version Fixed In: 4.6.0


Attachments
New crash information added by DrKonqi (5.11 KB, text/plain)
2010-10-28 02:22 UTC, Javi
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Clemens Eisserer 2010-08-30 16:19:30 UTC
Version:           unspecified (using KDE 4.5.0) 
OS:                Linux

I have a dual-screen setup where VGA1 (1280x1024) is the primary display where I have my KDE panel, and the laptop's internal display (1280x800) is left of it.

For fun I played a bit with rotating the display, which led to a system widget crash:


Thread 1 (Thread 0xb76fe780 (LWP 1693)):
[KCrash Handler]
#7  QWidget::mapToParent (this=0x0, pos=...) at kernel/qwidget.cpp:4119
#8  0x038f3e8b in QWidget::mapTo (this=0xa1b27c8, parent=0xae35838, pos=...) at kernel/qwidget.cpp:4075
#9  0x011db376 in SystemTray::X11EmbedPainter::performUpdates (this=0xafc9c58) at /usr/src/debug/kdebase-workspace-4.5.0/plasma/generic/applets/systemtray/protocols/fdo/x11embedpainter.cpp:134
#10 0x011db832 in SystemTray::X11EmbedPainter::qt_metacall (this=0xafc9c58, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0xbfc716dc)
    at /usr/src/debug/kdebase-workspace-4.5.0/i686-redhat-linux-gnu/plasma/generic/applets/systemtray/x11embedpainter.moc:75
#11 0x0215cf1b in QMetaObject::metacall (object=0xafc9c58, cl=QMetaObject::InvokeMetaMethod, idx=4, argv=0xbfc716dc) at kernel/qmetaobject.cpp:237
#12 0x0216f32d in QMetaObject::activate (sender=0x9d36b44, m=0x2289824, local_signal_index=0, argv=0x0) at kernel/qobject.cpp:3272
#13 0x021b7f28 in QTimer::timeout (this=0x9d36b44) at .moc/release-shared/moc_qtimer.cpp:134
#14 0x0217395e in QTimer::timerEvent (this=0x9d36b44, e=0xbfc71c10) at kernel/qtimer.cpp:271
#15 0x02169ba4 in QObject::event (this=0x9d36b44, e=0xbfc71c10) at kernel/qobject.cpp:1175
#16 0x038ae40c in QApplicationPrivate::notify_helper (this=0x9817cc0, receiver=0x9d36b44, e=0xbfc71c10) at kernel/qapplication.cpp:4396
#17 0x038b49b6 in QApplication::notify (this=0x9804620, receiver=0x9d36b44, e=0xbfc71c10) at kernel/qapplication.cpp:3798
#18 0x0272538b in KApplication::notify (this=0x9804620, receiver=0x9d36b44, event=0xbfc71c10) at /usr/src/debug/kdelibs-4.5.0/kdeui/kernel/kapplication.cpp:310
#19 0x02157b33 in QCoreApplication::notifyInternal (this=0x9804620, receiver=0x9d36b44, event=0xbfc71c10) at kernel/qcoreapplication.cpp:732
#20 0x0218512e in sendEvent (this=0x981ae34) at kernel/qcoreapplication.h:215
#21 QTimerInfoList::activateTimers (this=0x981ae34) at kernel/qeventdispatcher_unix.cpp:602
#22 0x02182855 in timerSourceDispatch (source=0x981ae00) at kernel/qeventdispatcher_glib.cpp:184
#23 0x00ab5525 in g_main_dispatch (context=0x981a090) at gmain.c:1960
#24 IA__g_main_context_dispatch (context=0x981a090) at gmain.c:2513
#25 0x00ab9268 in g_main_context_iterate (context=0xa28490, block=1, dispatch=1, self=0x9817c98) at gmain.c:2591
#26 0x00ab9449 in IA__g_main_context_iteration (context=0x981a090, may_block=1) at gmain.c:2654
#27 0x02182546 in QEventDispatcherGlib::processEvents (this=0x97ee990, flags=...) at kernel/qeventdispatcher_glib.cpp:415
#28 0x0395e436 in QGuiEventDispatcherGlib::processEvents (this=0x97ee990, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#29 0x021566aa in QEventLoop::processEvents (this=0xbfc71ed4, flags=...) at kernel/qeventloop.cpp:149
#30 0x02156a0a in QEventLoop::exec (this=0xbfc71ed4, flags=...) at kernel/qeventloop.cpp:201
#31 0x0215b967 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1009
#32 0x038ad3e8 in QApplication::exec () at kernel/qapplication.cpp:3672
#33 0x02fe7480 in kdemain (argc=1, argv=0xbfc720e4) at /usr/src/debug/kdebase-workspace-4.5.0/plasma/desktop/shell/main.cpp:118
#34 0x0804879c in main (argc=1, argv=0xbfc720e4) at /usr/src/debug/kdebase-workspace-4.5.0/i686-redhat-linux-gnu/plasma/desktop/shell/plasma-desktop_dummy.cpp:3


Reproducible: Always

Steps to Reproduce:
1. Attach two screens one left and one right
2. Set rotation for the first screen to 90° left
3. Apply
4. Set rotation to None again and Apply
5. Plasma crashes

Actual Results:  
plasma crashes

Expected Results:  
plasma should handle the rotation switch properly
Comment 1 Aaron J. Seigo 2010-09-20 22:50:15 UTC
*** Bug 242054 has been marked as a duplicate of this bug. ***
Comment 2 Aaron J. Seigo 2010-09-20 22:52:12 UTC
SVN commit 1177673 by aseigo:

cache the parent-relative rects, seems in some edge conditions the parent can no longer be the parent by the second iteration through
BUG:249516


 M  +3 -2      x11embedpainter.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1177673
Comment 3 Beat Wolf 2010-09-30 11:42:42 UTC
*** Bug 252823 has been marked as a duplicate of this bug. ***
Comment 4 Javi 2010-10-28 02:22:13 UTC
Created attachment 52927 [details]
New crash information added by DrKonqi

plasma-desktop (0.3) on KDE Platform 4.5.2 (KDE 4.5.2) using Qt 4.7.0

- What I was doing when the application crashed:

The crash happened when adding an external monitor. If the monitor is deactivated and activated later, everything goes fine, but if I have to detect the monitor before, Plasma crashes.

-- Backtrace (Reduced):
#7  QWidget::mapToParent (this=0x0, pos=...) at kernel/qwidget.cpp:4148
#8  0xb5c3004b in QWidget::mapTo (this=0x0, parent=0x8956718, pos=...) at kernel/qwidget.cpp:4104
#9  0xaa022636 in SystemTray::X11EmbedPainter::performUpdates (this=0x85dc1d0) at ../../../../../plasma/generic/applets/systemtray/protocols/fdo/x11embedpainter.cpp:134
#10 0xaa022b21 in SystemTray::X11EmbedPainter::qt_metacall (this=0x85dc1d0, _c=QMetaObject::InvokeMetaMethod, _id=4, _a=0xbfdb0e3c) at ./x11embedpainter.moc:75
[...]
[...]
#13 0xb67651e7 in QTimer::timeout (this=0x84612bc) at .moc/release-shared/moc_qtimer.cpp:134
Comment 5 Beat Wolf 2010-11-05 10:31:04 UTC
*** Bug 256087 has been marked as a duplicate of this bug. ***
Comment 6 Dario Andres 2010-11-15 16:59:01 UTC
- Was this bug fixed on trunk or also on 4.5 branch ? Regards
Comment 7 Dario Andres 2010-11-15 16:59:12 UTC
*** Bug 256388 has been marked as a duplicate of this bug. ***
Comment 8 Dario Andres 2010-11-15 17:01:56 UTC
*** Bug 253509 has been marked as a duplicate of this bug. ***
Comment 9 Dario Andres 2011-01-08 12:40:43 UTC
*** Bug 262042 has been marked as a duplicate of this bug. ***
Comment 10 Dario Andres 2011-03-08 20:08:36 UTC
*** Bug 263820 has been marked as a duplicate of this bug. ***
Comment 11 Dario Andres 2011-03-08 20:08:49 UTC
*** Bug 266947 has been marked as a duplicate of this bug. ***
Comment 12 Dario Andres 2011-03-13 01:54:40 UTC
*** Bug 268275 has been marked as a duplicate of this bug. ***
Comment 13 Dario Andres 2011-03-25 11:21:49 UTC
*** Bug 269355 has been marked as a duplicate of this bug. ***
Comment 14 Dario Andres 2011-05-01 14:44:06 UTC
*** Bug 272036 has been marked as a duplicate of this bug. ***
Comment 15 Dario Andres 2011-05-01 14:44:08 UTC
*** Bug 271572 has been marked as a duplicate of this bug. ***