Summary: | Plasmashell crashed after kmix crashed ( QWidgetPrivate::nearestGraphicsProxyWidget) | ||
---|---|---|---|
Product: | [Plasma] plasmashell | Reporter: | H.H. <cyberbeat> |
Component: | general | Assignee: | David Edmundson <kde> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | bshah, clickwir631, d3trax, iamgrief, izenzon, kde, logonyelvu, moromisato.luis, Ondrej.Bozek, rafalfr, rapar, rdieter, thomas.pfeiffer |
Priority: | NOR | Keywords: | drkonqi |
Version First Reported In: | 5.2.0 | ||
Target Milestone: | 1.0 | ||
Platform: | unspecified | ||
OS: | Linux | ||
Latest Commit: | http://commits.kde.org/plasma-workspace/3d0a9cd462a7ab256b65dec7ed2035e0d7658818 | Version Fixed In: | |
Sentry Crash Report: |
Description
H.H.
2015-02-09 16:42:18 UTC
*** Bug 343622 has been marked as a duplicate of this bug. *** *** Bug 343593 has been marked as a duplicate of this bug. *** *** Bug 346812 has been marked as a duplicate of this bug. *** Important comment from a duplicate
>Seems that is could be easily reproduced with clicking steam tray icon after exiting steam while icon is still there for a couple of seconds. Several clicks with left and right mouse buttons gives almost 100% reproducibility chance. After steam ended closing procedures and icons disapears from tray it causes either crash or complete hang of on-desktop widgets (taskbar, tray, kickoff menu and so on).
BT with better symbols Thread 1 (Thread 0x7fb05f371800 (LWP 584)): [KCrash Handler] #6 0x00007fb06d9295f1 in QWidgetPrivate::nearestGraphicsProxyWidget (origin=0x99c8600) at /home/david/projects/kde5/qt5/qtbase/src/widgets/kernel/qwidget.cpp:5833 #7 0x00007fb06d95577f in QWidgetPrivate::screenGeometry (widget=0x99c8600) at ../../include/QtWidgets/5.4.2/QtWidgets/private/../../../../../../../qt5/qtbase/src/widgets/kernel/qwidget_p.h:527 #8 0x00007fb06d9544ba in QDesktopWidget::screenGeometry (this=0x7bfe470, widget=0x99c8600) at /home/david/projects/kde5/qt5/qtbase/src/widgets/kernel/qdesktopwidget.cpp:56 #9 0x00007fb06dacc9cb in QMenuPrivate::popupGeometry (this=0x95ad9c0, widget=0x99c8600) at /home/david/projects/kde5/qt5/qtbase/src/widgets/widgets/qmenu.cpp:203 #10 0x00007fb06daccbb7 in QMenuPrivate::updateActionRects (this=0x95ad9c0) at /home/david/projects/kde5/qt5/qtbase/src/widgets/widgets/qmenu.cpp:238 #11 0x00007fb06dad253b in QMenu::popup (this=0xa8943c0, p=..., atAction=0x0) at /home/david/projects/kde5/qt5/qtbase/src/widgets/widgets/qmenu.cpp:1900 #12 0x00007faf6aa5b3c5 in SystemTray::DBusSystemTrayTask::_onContextMenu(KJob*) () from /opt/kde5/lib64/qml/org/kde/private/systemtray/libsystemtrayplugin.so #13 0x00007faf6aa693cd in SystemTray::DBusSystemTrayTask::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) () from /opt/kde5/lib64/qml/org/kde/private/systemtray/libsystemtrayplugin.so #14 0x00007fb06cad4f43 in QMetaObject::activate (sender=0x9fe3790, signalOffset=3, local_signal_index=3, argv=0x7fff763179b0) at /home/david/projects/kde5/qt5/qtbase/src/corelib/kernel/qobject.cpp:3717 #15 0x00007fb06cad4750 in QMetaObject::activate (sender=0x9fe3790, m=0x7fb06ea6ea20 <KJob::staticMetaObject>, local_signal_index=3, argv=0x7fff763179b0) at /home/david/projects/kde5/qt5/qtbase/src/corelib/kernel/qobject.cpp:3582 #16 0x00007fb06e81130b in KJob::result (this=0x9fe3790, _t1=0x9fe3790) at src/lib/moc_kjob.cpp:552 ... Valgrind trace ==27719== Invalid read of size 8 ==27719== at 0x7EC0246: QWeakPointer<QObject>::data() const (in /opt/qt5/lib/libQt5Widgets.so.5.4.2) ==27719== by 0x7ED6441: QPointer<QWidget>::data() const (qpointer.h:70) ==27719== by 0x7ED4061: QPointer<QWidget>::operator QWidget*() const (qpointer.h:76) ==27719== by 0x80BF560: QMenu::popup(QPoint const&, QAction*) (qmenu.cpp:1902) ==27719== by 0x2C4C0410: SystemTray::DBusSystemTrayTask::_onContextMenu(KJob*) (in /opt/kde5/lib64/qml/org/kde/private/systemtray/libsystemtrayplugin.so) ==27719== by 0x2C4CE418: SystemTray::DBusSystemTrayTask::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (in /opt/kde5/lib64/qml/org/kde/private/systemtray/libsystemtrayplugin.so) ==27719== by 0x8F76F42: QMetaObject::activate(QObject*, int, int, void**) (qobject.cpp:3717) ==27719== by 0x8F7674F: QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (qobject.cpp:3582) ==27719== by 0x776230A: KJob::result(KJob*, KJob::QPrivateSignal) (moc_kjob.cpp:552) ==27719== by 0x7760CB8: KJob::emitResult() (kjob.cpp:294) ==27719== by 0x50FA304: Plasma::ServiceJob::setResult(QVariant const&) (servicejob.cpp:94) ==27719== by 0x2CCC2E08: StatusNotifierItemJob::contextMenuReady(QMenu*) (in /opt/kde5/lib64/plugins/plasma/dataengine/plasma_engine_statusnotifieritem.so) ==27719== Address 0x2ffa7278 is 584 bytes inside a block of size 752 free'd ==27719== at 0x4C2B6D0: operator delete(void*) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==27719== by 0x80C6BA5: QMenuPrivate::~QMenuPrivate() (qmenu_p.h:101) ==27719== by 0x8F7C63B: QScopedPointerDeleter<QObjectData>::cleanup(QObjectData*) (qscopedpointer.h:54) ==27719== by 0x8F7AC26: QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> >::~QScopedPointer() (qscopedpointer.h:101) ==27719== by 0x8F701AC: QObject::~QObject() (qobject.cpp:882) ==27719== by 0x7F0B143: QWidget::~QWidget() (qwidget.cpp:1518) ==27719== by 0x80BE5CE: QMenu::~QMenu() (qmenu.cpp:1367) ==27719== by 0x80BE607: QMenu::~QMenu() (qmenu.cpp:1384) ==27719== by 0x8F78A81: qDeleteInEventHandler(QObject*) (qobject.cpp:4391) ==27719== by 0x8F7049D: QObject::event(QEvent*) (qobject.cpp:1236) ==27719== by 0x7F1F12B: QWidget::event(QEvent*) (qwidget.cpp:9084) ==27719== by 0x80C25F5: QMenu::event(QEvent*) (qmenu.cpp:2516) *** Bug 347655 has been marked as a duplicate of this bug. *** *** Bug 345933 has been marked as a duplicate of this bug. *** *** Bug 349144 has been marked as a duplicate of this bug. *** *** Bug 349262 has been marked as a duplicate of this bug. *** *** Bug 349293 has been marked as a duplicate of this bug. *** *** Bug 349419 has been marked as a duplicate of this bug. *** *** Bug 349510 has been marked as a duplicate of this bug. *** Git commit 3d0a9cd462a7ab256b65dec7ed2035e0d7658818 by David Edmundson. Committed on 06/07/2015 at 08:53. Pushed by davidedmundson into branch 'master'. Use upcoming version of libdbusmenu-qt This contains a temporary fork of the importer, with the main paths fixed. The old code spawned a new event loop in the signal QMenu::aboutToShow() This refetched the menu, even though we had already fetched it, before calling show. Spawning new event loops from a QML function, leads to all sorts of crashes. This fixes that, and saves some pointless DBus traffic Related: bug 345838, bug 345933 REVIEW: 123992 M +5 -2 dataengines/statusnotifieritem/CMakeLists.txt A +2 -0 dataengines/statusnotifieritem/libdbusmenuqt/README A +532 -0 dataengines/statusnotifieritem/libdbusmenuqt/dbusmenuimporter.cpp [License: LGPL (v2+)] A +109 -0 dataengines/statusnotifieritem/libdbusmenuqt/dbusmenuimporter.h [License: LGPL (v2+)] A +82 -0 dataengines/statusnotifieritem/libdbusmenuqt/dbusmenushortcut_p.cpp [License: LGPL (v2+)] A +39 -0 dataengines/statusnotifieritem/libdbusmenuqt/dbusmenushortcut_p.h [License: LGPL (v2+)] A +111 -0 dataengines/statusnotifieritem/libdbusmenuqt/dbusmenutypes_p.cpp [License: LGPL (v2+)] A +93 -0 dataengines/statusnotifieritem/libdbusmenuqt/dbusmenutypes_p.h [License: LGPL (v2+)] A +64 -0 dataengines/statusnotifieritem/libdbusmenuqt/utils.cpp [License: LGPL (v2+)] A +31 -0 dataengines/statusnotifieritem/libdbusmenuqt/utils_p.h [License: LGPL (v2+)] http://commits.kde.org/plasma-workspace/3d0a9cd462a7ab256b65dec7ed2035e0d7658818 *** Bug 350149 has been marked as a duplicate of this bug. *** *** Bug 350977 has been marked as a duplicate of this bug. *** *** Bug 357124 has been marked as a duplicate of this bug. *** |