| Summary: | QT_QPA_PLATFORM, unset by default, defaults to xcb, causing Xwayland to segfault due to not being able to handle Plasma Shell | ||
|---|---|---|---|
| Product: | [Plasma] plasmashell | Reporter: | Kyle Devir <kyle.devir> |
| Component: | generic-crash | Assignee: | Plasma Bugs List <plasma-bugs-null> |
| Status: | RESOLVED NOT A BUG | ||
| Severity: | normal | CC: | arojas |
| Priority: | NOR | ||
| Version First Reported In: | 5.13.90 | ||
| Target Milestone: | 1.0 | ||
| Platform: | Other | ||
| OS: | Linux | ||
| Latest Commit: | Version Fixed/Implemented In: | ||
| Sentry Crash Report: | |||
|
Description
Kyle Devir
2018-09-15 07:47:16 UTC
Which distro? Arch Linux. It works fine here. How do you know that plasmashell is running on xwayland? Because with "QT_QPA_PLATFORM=wayland" added, Xwayland never once segfaults, at all, no matter what I do with Plasma Shell. Every single time I've started Plasma Shell like this, it just works. It runs for hours, quite happily. With "QT_QPA_PLATFORM=xcb", however, Xwayland segfaults almost immediately, freezing kwin_wayland, exactly like the vanilla startplasmacompositor script does. When I reboot via SysRQ REISUB, because I can't even switch TTYs at that point, journalctl shows Xwayland segfaulting. So, that made me suspicious that QT_QPA_PLATFORM was defaulting to XCB for some odd reason. My experimentation makes me quite certain that this is the case. I probably should have specified at the beginning that I'm running an RX580 with Mesa master and LLVM master from AUR. I'm not sure this has an impact, because with QT_QPA_PLATFORM=wayland, there's no freezing. It seems like a possible Xwayland problem, if it can't even handle full Plasma Shell under kwin_wayland. Try this: from a X Plasma session, run a nested kwin_wayland: $ kwin_wayland --xwayland Then from a terminal kill the plasmashell process and run $ XDG_SESSION_TYPE=wayland plasmashell Does Plasma open in the nested Wayland window? No, it doesn't. It just exits immediately, because of the already running plasmashell process. (In reply to Kyle Devir from comment #7) > No, it doesn't. > > It just exits immediately, because of the already running plasmashell > process. That's why I said "kill the plasmashell process" Whoops. I skipped that part somehow. Let's try that again... Now that I've done it properly... Yes, it works just fine. Also, Xwayland doesn't segfault at all, amusingly. What next, I wonder? That means that the Qt platform detection code is working correctly, so your problem is somewhere else. When you log into Plasma Wayland, what is XDG_SESSION_TYPE set to? How are you logging in? XDG_SESSION_TYPE is unset. I log in via TTY, and then run startplasmacompositor. Does KDE rely on a GUI login manager to set XDG_SESSION_TYPE properly...? Qt (and plasma-workspace's own code) rely on the XDG_SESSION_TYPE environment variable to choose the correct QPA platform. Display managers will automatically set it for you, if you don't use one then it's your job to make sure it's correctly set. Ah. That explains my woes. Damn it. :/ Thanks Antonio! :) |