Bug 382843 - Reliably crashes on wayland when clicking logout button
Summary: Reliably crashes on wayland when clicking logout button
Status: RESOLVED DUPLICATE of bug 381032
Alias: None
Product: libplasma
Classification: Frameworks and Libraries
Component: tooltips (show other bugs)
Version: unspecified
Platform: openSUSE Linux
: NOR crash
Target Milestone: ---
Assignee: David Edmundson
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-07-28 08:58 UTC by Fabian Vogt
Modified: 2017-10-04 13:49 UTC (History)
1 user (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 Fabian Vogt 2017-07-28 08:58:13 UTC
I get this backtrace 100% reproducible:

#0  0x00007f87f15baa90 in raise () from /lib64/libc.so.6
#1  0x00007f87f15bc0f6 in abort () from /lib64/libc.so.6
#2  0x00007f87f05af41f in ?? ()
#3  0x00007f87f05ab4dd in wl_proxy_marshal_array_constructor_versioned () from /usr/lib64/libwayland-client.so.0
#4  0x00007f87f05ab5ec in wl_proxy_marshal () from /usr/lib64/libwayland-client.so.0
#5  0x00007f87e4714188 in QtWaylandClient::QWaylandWlShellSurface::updateTransientParent(QWindow*) () from /usr/lib64/libQt5WaylandClient.so.5
#6  0x00007f87e47124fb in QtWaylandClient::QWaylandWindow::initWindow() () from /usr/lib64/libQt5WaylandClient.so.5
#7  0x00007f87e4712b0d in QtWaylandClient::QWaylandWindow::setVisible(bool) () from /usr/lib64/libQt5WaylandClient.so.5
#8  0x00007f874fdf9cf4 in QtWaylandClient::QWaylandEglWindow::setVisible(bool) () from /usr/lib64/qt5/plugins/wayland-graphics-integration-client/libwayland-egl.so
#9  0x00007f87f2790c9d in QWindow::setVisible(bool) () from /usr/lib64/libQt5Gui.so.5
#10 0x00007f87f7a5c0cd in PlasmaQuick::Dialog::setVisible (this=0x556ed82ce3c0, visible=<optimized out>) at /usr/src/debug/plasma-framework-5.36.0git.20170727T045342~8125fbcbf/src/plasmaquick/dialog.cpp:1369
#11 0x00007f87450f4d9f in ToolTip::showToolTip (this=0x556edc1c0ae0) at /usr/src/debug/plasma-framework-5.36.0git.20170727T045342~8125fbcbf/src/declarativeimports/core/tooltip.cpp:160
#12 0x00007f87f1f6035c in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib64/libQt5Core.so.5
#13 0x00007f87f1f6c6a7 in QTimer::timeout(QTimer::QPrivateSignal) () from /usr/lib64/libQt5Core.so.5
#14 0x00007f87f1f6c9d8 in QTimer::timerEvent(QTimerEvent*) () from /usr/lib64/libQt5Core.so.5
#15 0x00007f87f1f60bfb in QObject::event(QEvent*) () from /usr/lib64/libQt5Core.so.5
#16 0x00007f87f2f4193c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib64/libQt5Widgets.so.5
#17 0x00007f87f2f48cb4 in QApplication::notify(QObject*, QEvent*) () from /usr/lib64/libQt5Widgets.so.5
#18 0x00007f87f1f32d48 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib64/libQt5Core.so.5
#19 0x00007f87f1f87c3e in QTimerInfoList::activateTimers() () from /usr/lib64/libQt5Core.so.5
#20 0x00007f87f1f88389 in ?? () from /usr/lib64/libQt5Core.so.5
#21 0x00007f87ec69eb67 in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0
#22 0x00007f87ec69ed98 in ?? () from /usr/lib64/libglib-2.0.so.0
#23 0x00007f87ec69ee2c in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#24 0x00007f87f1f8868f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQt5Core.so.5
#25 0x00007f87f1f3135a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQt5Core.so.5
#26 0x00007f87f1f39be4 in QCoreApplication::exec() () from /usr/lib64/libQt5Core.so.5
#27 0x0000556ed356cd9b in ?? ()
#28 0x00007f87f15a646a in __libc_start_main () from /lib64/libc.so.6
#29 0x0000556ed356d11a in _start ()

This is printed on stderr: "error marshalling arguments for set_transient (signature oiiu): null value passed for arg 0"

Not sure whether this is a bug in plasma-framework or Qt 5.9.1.

Workaround:

[PlasmaToolTips]
Delay=0

in ~/.config/plasmarc
Comment 1 David Edmundson 2017-07-28 09:05:21 UTC
>Not sure whether this is a bug in plasma-framework or Qt 5.9.1.

Bit of both.

Spec says       <arg name="parent" type="object" interface="wl_surface" summary="parent surface"/>


It doesn't have: allow-null="true"

Qt should check that and do nothing rather than make a protocol error.
It implies Plasma is setting an invisible window as a transient parent which doesn't make sense either.

But we'lll be switching to XdgV6 soon as not running this code anyway.
Comment 2 Fabian Vogt 2017-09-14 15:13:11 UTC
This bug is still 100% reproducible in Plasma 5.11.
So I would suggest fixing this for pre-xdg-shell as well, as plasma is practically unusuable without this.
Comment 3 David Edmundson 2017-09-14 16:09:27 UTC
ok.
Comment 4 Christoph Feck 2017-10-04 13:49:54 UTC

*** This bug has been marked as a duplicate of bug 381032 ***