Closed swsnr closed 3 years ago
The launcher cannot be its own process, but it can be made async.
The launcher cannot be its own process, but it can be made async.
I thought so :shrug:
That said, all I really care for here is that the launcher doesn't freeze my shell if I make a mistake in the code of my plugin :grimacing: :innocent:
I'm coming back to this because I just managed to freeze the shell all over again, this time by synchronously shelling out to zenity --password
in response to a submit
event. I guess pop shell synchronously waits for the response from the plugin, and thus can't handle input or render windows meanwhile?
Would you perhaps re-classify this as a bug? It's really really easy to lock up the entire shell with what seems to be an entirely legit thing, i.e. starting a dialog input field. Even if it's not supported, I don't think it should freeze the entire shell process catastrophically—mind, on wayland there's no way out of this short of a sysrq reboot.
(1) Issue/Bug Description:
A launcher plugin which (due to some internal error perhaps) does not reply to a
query
event, by simply not writing anything to stdout, freezes the launcher and the entire shell so definitely that (on wayland at least) I had to resort to a SysRq reboot.I presume the launcher actually runs in-process as part of the shell extension.
I think this is rather dangerous; even a slight error in the communication between a plugin and the launcher can bring down the entire Gnome Shell, which is catastrophic on Wayland where the shell is also the compositor process (arguably a serious design flaw in Gnome, but that's what we've got :shrug: :confused: )
Perhaps Pop Shell could move the launcher into a dedicated subprocess? I understand that this may not be possible though, if the launcher needs access to the St toolkit or Gnome Shell API :confused:
(2) Steps to reproduce (if you know):
WARNING: After installing the plugin below using the launcher will likely freeze your desktop session!
WARNING: The next steps may leave your system in a state where only a Sysrq reboot or hard reset helps; best use a VM for this!
Logout and login again to make Pop Shell discover the launcher, then type
Ctrl+/
and type any text. The shell freezes :bomb:(3) Expected behavior:
The shell handles unresponsive launcher plugins gracefully.
(4) Distribution (run
cat /etc/os-release
):(5) Gnome Shell version:
(6) Pop Shell version
(7) Where was Pop Shell installed from:
https://aur.archlinux.org/packages/gnome-shell-extension-pop-shell
Which essentially comes down to
make install
:(8) Monitor Setup (2 x 1080p, 4K, Primary(Horizontal), Secondary(Vertical), etc):
Built-in laptop screen:
(9) Other Installed/Enabled Extensions:
(10) Other Notes:
I'd like to take the opportunity to give my heartfelt thanks to you for this magnificent extension :pray: It gives Gnome almost everything I missed from i3, while being so super-easy to setup, and rock-solid (till now it never crashed on me :clap: ) It's a great piece of work and I am very grateful that you give this to the community of Gnome users :pray:
Thank you very much :heart: