Trying to run the live installer on current Rawhide KDE images fails with this output:
[liveuser@localhost-live ~]$ liveinst
Starting installer, one moment...
anaconda 34.20-1.fc34 for Fedora 34 (pre-release) started.
* installation log files are stored in /tmp during the installation
* shell is available on TTY2 and in second TMUX pane (ctrl+b, then press 2)
* when reporting a bug add logs from /tmp as separate text/plain attachments
No protocol specified
No protocol specified
Traceback (most recent call last):
File "/sbin/anaconda", line 516, in <module>
File "/usr/lib64/python3.9/site-packages/pyanaconda/display.py", line 359, in setup_display
File "/usr/lib64/python3.9/site-packages/pyanaconda/anaconda.py", line 284, in initInterface
self._intf = GraphicalUserInterface(None, self.payload,
File "/usr/lib64/python3.9/site-packages/pyanaconda/ui/gui/__init__.py", line 554, in __init__
self.mainWindow = MainWindow(fullscreen=fullscreen, decorated=conf.ui.decorated_window)
File "/usr/lib64/python3.9/site-packages/pyanaconda/ui/gui/__init__.py", line 261, in __init__
File "/usr/lib/python3.9/site-packages/gi/overrides/Gtk.py", line 515, in __init__
RuntimeError: Gtk couldn't be initialized. Use Gtk.init_check() if you want to handle this case.
This does not happen on the Workstation image, so it's something to do with the KDE environment (possibly related to its recent switch to Wayland?), but I'm not sure what. CCing rdieter.
This is a clear violation of https://fedoraproject.org/wiki/Basic_Release_Criteria#Installer_must_run , "The installer must run when launched normally from the release-blocking images."
The installer was working on Wayland for months. I made the switch back in November.
It's possible that there's something funky about the switch to systemd user sessions. Rex had pulled in some fixes for that, which might help.
So...not really figured this out yet, but got a bit more data anyway.
It broke between 20210124.n.0 and 20210127.n.1 (there are no successful composes between those too), by the looks of things. anaconda didn't change in 01217.n.1, and neither did anything GTK+-y or gobject-y that I can see. What did change is indeed plasma-workspace, from 5.20.90-3 to 5.20.90-5, which included the systemd user sessions change.
The problem seems to be that GTK initialization is failing at the bottom of gi/overrides/Gtk.py , where it does (for GTK+ 3, which is what we're on) `initialized, argv = Gtk.init_check(sys.argv)` . If you add a debug print right there, it shows that `initialized` winds up as False. The console line "No protocol specified" is printed during this check, but I'm not sure if that's significant or not.
I reduced Gtk.py to what should be a simple reproducer, but it *doesn't* reproduce, at least not when run directly:
from gi.repository import GObject
from gi.module import get_introspection_module
Gtk = get_introspection_module('Gtk')
initialized, argv = Gtk.init_check(sys.argv)
if I run that directly as liveuser or root, it prints True. So either something else about what Gtk.py does, or what gets done before it, or about running through consolehelper, results in the different outcome, I guess.
re-assigning to plasma-workspace, at least tentatively.
Switching off systemd user sessions by renaming /etc/xdg/startkderc to /etc/xdg/startkderc.disabled does not fix this.
I attempted to run Anaconda (by running liveinst in Konsole) and still get the same traceback as I do with systemd user sessions enabled.
(In reply to Neal Gompa from comment #5)
> Switching off systemd user sessions by renaming /etc/xdg/startkderc to
> /etc/xdg/startkderc.disabled does not fix this.
> I attempted to run Anaconda (by running liveinst in Konsole) and still get
> the same traceback as I do with systemd user sessions enabled.
I forgot to mention, I rebooted between those runs where I disabled or enabled systemd user sessions. Since Anaconda is installed on an installed system, I attempted to run that from Konsole, and that's where I saw the tracebacks.
I can reproduce this on fedora 33 plasma wayland session as well. plasma x11 session starts ok.
Created attachment 1755447 [details]
Screenshot of Anaconda working with xhost +
Some *weird* progress...
I was able to get Anaconda to run by doing the following (in Rawhide 20210206.n.0 build):
$ xhost +
That causes Anaconda to start up correctly and I can run through installation.
Created attachment 1755462 [details]
Diff of the environment variables between GNOME and KDE Plasma
I took a sample of the environment variables between GNOME and KDE with the same Rawhide compose, and attached the output of the diff between the two.
The main differences I note that might have an impact:
* No XAUTHORITY variable pointed to Xauthority socket
* Different value for DISPLAY
I suspect the lack of Xauthority socket is the failure mode here.
This is likely caused by Kwin, since it starts the Xwayland bits in the Wayland session...
When investigating a prior sddm issue, I found it only sets xauthority bar for x sessions. We could consider setting it unconditionally.
liveinst-setup does some "xhost" stuff, but it doesn't work: https://github.com/rhinstaller/anaconda/blob/59231a831ef6647fe81d9c6971b98a2ab7d9b520/data/liveinst/liveinst-setup.sh#L11
I tried it manually, and "xhost +si:localuser:root" does not work in Plasma. This is *definitely* because of the difference in Wayland session initialization in Plasma vs GNOME. Even switching to GDM does not fix it.
I've filed a bug upstream with KDE: https://bugs.kde.org/show_bug.cgi?id=432625
Thanks for figuring that out, Neal!
I've cherry-picked a fix proposed upstream into our kwin package and notified upstream that it fixes our issue in my local testing.
I've pushed a build into Koji too: https://koji.fedoraproject.org/koji/buildinfo?buildID=1705067
It should be fixed with the next compose.
This bug appears to have been reported against 'rawhide' during the Fedora 34 development cycle.
Changing version to 34.
FEDORA-2021-2a1eb24b14 contains a potential fix. Setting to ON_QA.
Yes, this is indeed fixed now.