-
Notifications
You must be signed in to change notification settings - Fork 281
Description
(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 🤷 😕 )
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 😕
(2) Steps to reproduce (if you know):
WARNING: After installing the plugin below using the launcher will likely freeze your desktop session!
$ mkdir -p ~/.local/share/pop-shell/broken
$ cat > ~/.local/share/pop-shell/broken/meta.json <<EOF
{
"name": "broken",
"description": "Demonstrate broken",
"pattern": ".*",
"exec": "broken.py",
"icon": "dialog-error"
}
EOF
$ ~/.local/share/pop-shell/broken/meta.json <<EOF
import sys
for line in sys.stdin:
pass
EOF
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 💣
(3) Expected behavior:
The shell handles unresponsive launcher plugins gracefully.
(4) Distribution (run cat /etc/os-release
):
NAME="Arch Linux"
PRETTY_NAME="Arch Linux"
ID=arch
BUILD_ID=rolling
ANSI_COLOR="38;2;23;147;209"
HOME_URL="https://www.archlinux.org/"
DOCUMENTATION_URL="https://wiki.archlinux.org/"
SUPPORT_URL="https://bbs.archlinux.org/"
BUG_REPORT_URL="https://bugs.archlinux.org/"
LOGO=archlinux
(5) Gnome Shell version:
$ pacman -Qi gnome-shell | head -n3
Name : gnome-shell
Version : 1:3.38.3-1
Description : Next generation desktop shell
(6) Pop Shell version
$ pacman -Qi gnome-shell-extension-pop-shell | head -n3
Name : gnome-shell-extension-pop-shell
Version : 1.2.0-2
Description : Pop Shell - Tiling window management in Gnome (WIP)
(7) Where was Pop Shell installed from:
https://aur.archlinux.org/packages/gnome-shell-extension-pop-shell
Which essentially comes down to make install
:
make DESTDIR="${pkgdir}/" install
install -Dm644 schemas/org.gnome.shell.extensions.pop-shell.gschema.xml -t \
"$pkgdir/usr/share/glib-2.0/schemas"
install -Dm644 keybindings/*.xml -t \
"$pkgdir/usr/share/gnome-control-center/keybindings"
install -Dm755 scripts/configure.sh "${pkgdir}/usr/share/gnome-shell/extensions/[email protected]/scripts/configure.sh"
(8) Monitor Setup (2 x 1080p, 4K, Primary(Horizontal), Secondary(Vertical), etc):
Built-in laptop screen:
(9) Other Installed/Enabled Extensions:
$ gnome-extensions list --enabled
[email protected]
[email protected]
[email protected]
[email protected]
native-window-placement@gnome-shell-extensions.gcampax.github.com
[email protected]
(10) Other Notes:
I'd like to take the opportunity to give my heartfelt thanks to you for this magnificent extension 🙏 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 👏 ) It's a great piece of work and I am very grateful that you give this to the community of Gnome users 🙏
Thank you very much ❤️