| Summary: | Crash when changing rotation on primary display (and other screen changes related situations) [QWidget::mapToParent, QWidget::mapTo, SystemTray::X11EmbedPainter::performUpdates] | ||
|---|---|---|---|
| Product: | [Unmaintained] plasma4 | Reporter: | Clemens Eisserer <linuxhippy> |
| Component: | widget-systemtray | Assignee: | Plasma Bugs List <plasma-bugs-null> |
| Status: | RESOLVED FIXED | ||
| Severity: | crash | CC: | andresbajotierra, bespinboy1, fjavsalcas, kimrhh, michael.przybilski, mrdocs, radu.cosnita, rak, shess01, x00malachi |
| Priority: | NOR | ||
| Version First Reported In: | unspecified | ||
| Target Milestone: | --- | ||
| Platform: | Fedora RPMs | ||
| OS: | Linux | ||
| Latest Commit: | Version Fixed/Implemented In: | 4.6.0 | |
| Sentry Crash Report: | |||
| Attachments: | New crash information added by DrKonqi | ||
*** Bug 242054 has been marked as a duplicate of this bug. *** 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 *** Bug 252823 has been marked as a duplicate of this bug. *** 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
*** Bug 256087 has been marked as a duplicate of this bug. *** - Was this bug fixed on trunk or also on 4.5 branch ? Regards *** Bug 256388 has been marked as a duplicate of this bug. *** *** Bug 253509 has been marked as a duplicate of this bug. *** *** Bug 262042 has been marked as a duplicate of this bug. *** *** Bug 263820 has been marked as a duplicate of this bug. *** *** Bug 266947 has been marked as a duplicate of this bug. *** *** Bug 268275 has been marked as a duplicate of this bug. *** *** Bug 269355 has been marked as a duplicate of this bug. *** *** Bug 272036 has been marked as a duplicate of this bug. *** *** Bug 271572 has been marked as a duplicate of this bug. *** |
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