Bug 357744 - [wayland] startplasmacompositor fails because it cannot start qdbus for D-Bus
Summary: [wayland] startplasmacompositor fails because it cannot start qdbus for D-Bus
Status: RESOLVED WORKSFORME
Alias: None
Product: plasmashell
Classification: Plasma
Component: general (show other bugs)
Version: 5.5.3
Platform: Fedora RPMs Linux
: NOR normal
Target Milestone: 1.0
Assignee: David Edmundson
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-01-09 16:06 UTC by Christian Stadelmann
Modified: 2016-06-16 03:38 UTC (History)
4 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 Christian Stadelmann 2016-01-09 16:06:54 UTC
I am running plasma/KDE 5 on Fedora 23 from updates-testing, so with most recent 5.5.3 plasma updates installed.

Reproducible: Always

Steps to Reproduce:
Steps to reproduce:
0. log in into a tty, run SDDM 0.13.0 or GDM 3.18.2
1. log in into a plasma+wayland session by running `startplasmacompositor` or selecting the associated option in your desktop manager
2. wait

Actual Results:  
startplasmacompositor is printing this to cli:

startplasmacompositor: Starting up …
startplasmacompositor: Could not start D-Bus. Can you call qdbus?

Expected Results:  
a plasma session should start.

when manually starting qdbus on a tty it complains that it cannot auto-launch a dbus-daemon without a $DISPLAY being set for X11.
Comment 1 Christian Stadelmann 2016-01-09 16:07:53 UTC
I am quite new to KDE and unsure whether this is the correct product/component. Feel free to reassign since you probably know better than me.
Comment 2 Christian Stadelmann 2016-01-09 17:42:22 UTC
Running startplasmacompositor from inside a plasma session works fine, but starts to a black window.

And btw shouldn't this be qdbus-qt5 instead of qdbus?
Comment 3 David Edmundson 2016-01-10 19:02:51 UTC
>And btw shouldn't this be qdbus-qt5 instead of qdbus?

Qt calls is qdbus. Some distros rename it.

Can you check if you have qdbus available in your path.
Comment 4 Christian Stadelmann 2016-01-10 19:47:19 UTC
So it should be the distro (Fedora) to change qdbus to qdbus-qt5?

$ which qdbus
/usr/bin/qdbus

$ which qdbus-qt5
/usr/bin/qdbus-qt5

`$ env | grep PATH` includes /usr/bin.

I think startplasmacompositor succeeds in finding qdbus but qdbus fails in startplasmacompositor line 163. When run from tty both qdbus and qdbus-qt5 fail with this error message:

Could not connect to D-Bus server: org.freedesktop.DBus.Error.NotSupported: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11
Comment 5 Rex Dieter 2016-01-11 14:04:35 UTC
Definitely a downstream issue wrt the qdbus renaming, I will help take care of fixing that as part of
https://bugzilla.redhat.com/show_bug.cgi?id=1297418

But,
Could not connect to D-Bus server: org.freedesktop.DBus.Error.NotSupported: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11

is it's own fun problem to solve
Comment 6 Christian Stadelmann 2016-01-11 15:28:03 UTC
Hm, yes, looks like a bootstrapping problem: startplasmacompositor requires qdbus which requires X11 which doesn't run yet because it should be started as nested XWayland server…

This could be specific to how fedora handles X and wayland sessions running on separate ttys.

The question is: Can dbus-daemon start without $DISPLAY and having it set later? Or can startplasmacompositor be changed to start without dbus-daemon?
Comment 7 Rex Dieter 2016-01-13 19:32:44 UTC
My
/usr/share/wayland-sessions/plasmawayland.desktop
has
Exec=dbus-launch --exit-with-session /usr/bin/startplasmacompositor

but, trying to start that session using sddm, I get:
/usr/bin/startcompositor: 5417 Segmentation fault (core dumped) /usr/bin/kwin_wayland --xwayland ...
startplasmacompositor: Shutting down...
...
Comment 8 Rex Dieter 2016-01-13 20:29:24 UTC
If it matters any, a backtrace that hints at a Qt issue:

$ rpm -q kwin-wayland plasma-workspace-wayland qt5-qtbase
kwin-wayland-5.5.3-1.fc23.x86_64
plasma-workspace-wayland-5.5.3-4.fc23.x86_64
qt5-qtbase-5.6.0-0.19.beta.fc23.x86_64


Thread 1 (Thread 0x7fffdedae940 (LWP 14213)):
#0  0x00007fffefcc61e0 in QScreen::handle() const (this=0x0) at kernel/qscreen.cpp:139
#1  0x00007fffefcd6a82 in QHighDpiScaling::updateHighDpiScaling() () at kernel/qhighdpiscaling.cpp:305
#2  0x00007fffef9579ca in QCoreApplication::init() (this=this@entry=0x7fffffffd9c0) at kernel/qcoreapplication.cpp:821
#3  0x00007fffef957bc6 in QCoreApplication::QCoreApplication(QCoreApplicationPrivate&) (this=0x7fffffffd9c0, p=...) at kernel/qcoreapplication.cpp:703
#4  0x00007fffefc9af99 in QGuiApplication::QGuiApplication(QGuiApplicationPrivate&) (this=0x7fffffffd9c0, p=...) at kernel/qguiapplication.cpp:573
#5  0x00007ffff028406d in QApplication::QApplication(int&, char**, int) (this=0x7fffffffd9c0, argc=@0x7fffffffd7ec: 1, argv=0x7fffffffdbf8, _internal=328961)
    at kernel/qapplication.cpp:561
#6  0x00007ffff79e1c0e in KWin::Application::Application(KWin::Application::OperationMode, int&, char**) (this=0x7fffffffd9c0, mode=KWin::Application::OperationModeWaylandAndX11, argc=<optimized out>, argv=<optimized out>) at ../main.cpp:153
#7  0x000055555555f209 in KWin::ApplicationWayland::ApplicationWayland(int&, char**) (this=0x7fffffffd9c0, argc=<optimized out>, argv=<optimized out>) at ../main_wayland.cpp:72
#8  0x000055555555cba5 in main(int, char**) (argc=1, argv=<optimized out>) at ../main_wayland.cpp:416
Comment 9 Christian Stadelmann 2016-01-13 23:16:36 UTC
I'm not running into the crasher you see, instead startplasmacompositor is running fine and actually starts a plasma-wayland session for me. The crash you are seeing is something different. I guess it is an qt issue too. I am running qt5-qtbase-5.5.1-11.fc23.x86_64. If yours is working fine with that version you should probably report a regression to Qt5.

My issue itself is solved since I just didn't get the right command line, as you figured out for comment #7. Thank you!