material-shell
material-shell copied to clipboard
Gnome 40.1 crashes when enabling material-shell
Describe the bug
I'm trying to enable material-shell (v40.a) on gnome 40.1 but every time it crashes gnome altogether. In order to figure out where in the code gnome was crashing I put log test probes all over the code and watch the journal for gnome-shell to see how far it got. This is the patch.
Interestingly enough as I added more log statements it became harder to get gnome to crash, indicating (to me) that this might be some kind of race condition (as the log statements take some time). Sometimes the extension enabled just fine and sometimes gnome shell crashed but when restarting it material-shell would work. Without the logs there is no way to make material-shell work.
With the patch I pasted above I get to Point 220 before it crashes, but it takes multiple tries of enabling and disabling it to actually get gnome shell to crash with all these test probes.
Expected behavior Material-shell should work just fine when I enable the extension on gnome 40.1
To Reproduce
- Occurs on:
- [ ] X.Org
- [x] Wayland
- GNOME Shell version: 3.40.1
- Distro: NixOS Unstable
- Steps to reproduce, if applicable:
- Build material-shell from tag
40.a - Symlink
~/.local/share/gnome-shell/extensions/material-shell@papyelgringoto./dist - Log out and back in
- Enable extension
- Gnome crashes
Current commit
Output from git rev-parse --short HEAD: ``f44335d
Log data
Output from journalctl /usr/bin/gnome-shell -o cat:
This is without the log/debug patch
Adding device '/dev/dri/card0' (amdgpu) using atomic mode setting.
Boot VGA GPU /dev/dri/card0 selected as primary
Disabling DMA buffer screen sharing for driver 'amdgpu'.
Using public X11 display :0, (using :1 for managed services)
Using Wayland display name 'wayland-0'
Skipping parental controls support as it’s disabled
Unset XDG_SESSION_ID, getCurrentSessionProxy() called outside a user session. Asking logind directly.
Will monitor session 36
Failed to launch ibus-daemon: Failed to execute child process “ibus-daemon” (No such file or directory)
Failed to create file /run/user/1000/gnome-shell-disable-extensions: Error opening file “/run/user/1000/gnome-shell-disable-extensions”: File exists
Error looking up permission: GDBus.Error:org.freedesktop.portal.Error.NotFound: No entry for geolocation
No permission to trigger offline updates: Polkit.Error: GDBus.Error:org.freedesktop.PolicyKit1.Error.Failed: Action org.freedesktop.packagekit.trigger-offline-update is not registered
Failed to launch ibus-daemon: Failed to execute child process “ibus-daemon” (No such file or directory)
ATK Bridge is disabled but a11y has already been enabled.
GNOME Shell started at Sun Jun 06 2021 16:09:04 GMT+0200 (CEST)
Registering session with GDM
Error checking authorization for action id org.freedesktop.packagekit.trigger-offline-update: GDBus.Error:org.freedesktop.PolicyKit1.Error.Failed: Action org.freedesktop.packagekit.trigger-offline-update is not registered
Error checking authorization for action id org.freedesktop.packagekit.trigger-offline-update: GDBus.Error:org.freedesktop.PolicyKit1.Error.Failed: Action org.freedesktop.packagekit.trigger-offline-update is not registered
Error checking authorization for action id org.freedesktop.packagekit.trigger-offline-update: GDBus.Error:org.freedesktop.PolicyKit1.Error.Failed: Action org.freedesktop.packagekit.trigger-offline-update is not registered
Error checking authorization for action id org.freedesktop.packagekit.trigger-offline-update: GDBus.Error:org.freedesktop.PolicyKit1.Error.Failed: Action org.freedesktop.packagekit.trigger-offline-update is not registered
Error checking authorization for action id org.freedesktop.packagekit.trigger-offline-update: GDBus.Error:org.freedesktop.PolicyKit1.Error.Failed: Action org.freedesktop.packagekit.trigger-offline-update is not registered
Error checking authorization for action id org.freedesktop.packagekit.trigger-offline-update: GDBus.Error:org.freedesktop.PolicyKit1.Error.Failed: Action org.freedesktop.packagekit.trigger-offline-update is not registered
Error checking authorization for action id org.freedesktop.packagekit.trigger-offline-update: GDBus.Error:org.freedesktop.PolicyKit1.Error.Failed: Action org.freedesktop.packagekit.trigger-offline-update is not registered
Error checking authorization for action id org.freedesktop.packagekit.trigger-offline-update: GDBus.Error:org.freedesktop.PolicyKit1.Error.Failed: Action org.freedesktop.packagekit.trigger-offline-update is not registered
Error checking authorization for action id org.freedesktop.packagekit.trigger-offline-update: GDBus.Error:org.freedesktop.PolicyKit1.Error.Failed: Action org.freedesktop.packagekit.trigger-offline-update is not registered
Error checking authorization for action id org.freedesktop.packagekit.trigger-offline-update: GDBus.Error:org.freedesktop.PolicyKit1.Error.Failed: Action org.freedesktop.packagekit.trigger-offline-update is not registered
Error checking authorization for action id org.freedesktop.packagekit.trigger-offline-update: GDBus.Error:org.freedesktop.PolicyKit1.Error.Failed: Action org.freedesktop.packagekit.trigger-offline-update is not registered
Error checking authorization for action id org.freedesktop.packagekit.trigger-offline-update: GDBus.Error:org.freedesktop.PolicyKit1.Error.Failed: Action org.freedesktop.packagekit.trigger-offline-update is not registered
Error checking authorization for action id org.freedesktop.packagekit.trigger-offline-update: GDBus.Error:org.freedesktop.PolicyKit1.Error.Failed: Action org.freedesktop.packagekit.trigger-offline-update is not registered
Error checking authorization for action id org.freedesktop.packagekit.trigger-offline-update: GDBus.Error:org.freedesktop.PolicyKit1.Error.Failed: Action org.freedesktop.packagekit.trigger-offline-update is not registered
Error checking authorization for action id org.freedesktop.packagekit.trigger-offline-update: GDBus.Error:org.freedesktop.PolicyKit1.Error.Failed: Action org.freedesktop.packagekit.trigger-offline-update is not registered
Error checking authorization for action id org.freedesktop.packagekit.trigger-offline-update: GDBus.Error:org.freedesktop.PolicyKit1.Error.Failed: Action org.freedesktop.packagekit.trigger-offline-update is not registered
Error checking authorization for action id org.freedesktop.packagekit.trigger-offline-update: GDBus.Error:org.freedesktop.PolicyKit1.Error.Failed: Action org.freedesktop.packagekit.trigger-offline-update is not registered
Error checking authorization for action id org.freedesktop.packagekit.trigger-offline-update: GDBus.Error:org.freedesktop.PolicyKit1.Error.Failed: Action org.freedesktop.packagekit.trigger-offline-update is not registered
Error checking authorization for action id org.freedesktop.packagekit.trigger-offline-update: GDBus.Error:org.freedesktop.PolicyKit1.Error.Failed: Action org.freedesktop.packagekit.trigger-offline-update is not registered
Error checking authorization for action id org.freedesktop.packagekit.trigger-offline-update: GDBus.Error:org.freedesktop.PolicyKit1.Error.Failed: Action org.freedesktop.packagekit.trigger-offline-update is not registered
Object .MetaInputDeviceNative (0x7f03440f3750), has been already deallocated — impossible to access it. This might be caused by the object having been destroyed from C code using something such as destroy(), dispose(), or remove() vfuncs.
clutter_input_device_get_device_type: assertion 'CLUTTER_IS_INPUT_DEVICE (device)' failed
== Stack trace for context 0x2207170 ==
#0 3e6eec8 i resource:///org/gnome/shell/ui/keyboard.js:1209 (d97086ac2e0 @ 57)
#1 3e6ee18 i resource:///org/gnome/shell/ui/keyboard.js:1215 (d97086ac290 @ 94)
#2 7fff9c0f7af0 b self-hosted:850 (1d8d4b823920 @ 454)
WARNING: addSignalMethods is replacing existing [object Object] connect method
WARNING: addSignalMethods is replacing existing [object Object] disconnect method
WARNING: addSignalMethods is replacing existing [object Object] emit method
Some code accessed the property 'ENABLED_EXTENSIONS_KEY' on the module 'extensionSystem'. That property was defined with 'let' or 'const' inside the module. This was previously supported, but is not correct according to the ES6 standard. Any symbols to be exported from a module must be defined with 'var'. The property access will work as previously for the time being, but please fix your code anyway.
--------------
INIT EXTENSION
--------------
----------------
ENABLE EXTENSION
----------------
Is there any less crude way of debugging what exactly might be causing this issue?
Any other extensions enabled?
No.
3.40.1 isn't a valid gnome version but I don't think it's related
Could you get the coredump stack?
3.40.1 isn't a valid gnome version but I don't think it's related
I just appended whatever I got from gnome-shell --version to the 3 to be honest.
Could you get the coredump stack?
I did not attempt this. I will try it later today. What would be the best way of doing this?
coredumpctl -1 debug
Here is something I managed to get. coredump.txt
PID: 77958 (.gnome-shell-wr)
UID: 1000 (arnar)
GID: 1000 (arnar)
Signal: 11 (SEGV)
Timestamp: Mon 2021-06-07 13:54:53 CEST (1min 19s ago)
Command Line: /nix/store/cla833lsr5hb9hp7f39p89wxpn145bkd-gnome-shell-40.1/bin/gnome-shell
Executable: /nix/store/cla833lsr5hb9hp7f39p89wxpn145bkd-gnome-shell-40.1/bin/.gnome-shell-wrapped
Control Group: /user.slice/user-1000.slice/[email protected]/session.slice/[email protected]
Unit: [email protected]
User Unit: [email protected]
Slice: user-1000.slice
Owner UID: 1000 (arnar)
Boot ID: c7161c87965c46eb95e3638aa074b0bd
Machine ID: 24e95f655e544ab38acb2b1210e1a78d
Hostname: flex
Storage: /var/lib/systemd/coredump/core.\x2egnome-shell-wr.1000.c7161c87965c46eb95e3638aa074b0bd.77958.1623066893000000.lz4
Message: Process 77958 (.gnome-shell-wr) of user 1000 dumped core.
GNU gdb (GDB) 10.2
Copyright (C) 2021 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-unknown-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /nix/store/cla833lsr5hb9hp7f39p89wxpn145bkd-gnome-shell-40.1/bin/.gnome-shell-wrapped...
(No debugging symbols found in /nix/store/cla833lsr5hb9hp7f39p89wxpn145bkd-gnome-shell-40.1/bin/.gnome-shell-wrapped)
[New LWP 77958]
[New LWP 77962]
[New LWP 77984]
[New LWP 77983]
[New LWP 78021]
[New LWP 77982]
[New LWP 77965]
[New LWP 77999]
[New LWP 77995]
[New LWP 78345]
[New LWP 77990]
[New LWP 78022]
[New LWP 78027]
[New LWP 77985]
[New LWP 77991]
[New LWP 77964]
[New LWP 77988]
[New LWP 77989]
[New LWP 78026]
[New LWP 77993]
[New LWP 77992]
[New LWP 77981]
[New LWP 77987]
[New LWP 78000]
[New LWP 78023]
[New LWP 78025]
[New LWP 77986]
[New LWP 78020]
[New LWP 77994]
[New LWP 77996]
[New LWP 78024]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/nix/store/sbbifs2ykc05inws26203h0xwcadnf0l-glibc-2.32-46/lib/libthread_db.so.1".
Core was generated by `/nix/store/cla833lsr5hb9hp7f39p89wxpn145bkd-gnome-shell-40.1/bin/gnome-shell'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x00007f5ed96276b7 in js::jit::JitScript::MonitorBytecodeType(JSContext*, JSScript*, unsigned char*, js::StackTypeSet*, JS::Value const&) () from /nix/store/5408l01zjwfdq7sph18zlx7h6744vj5h-spidermonkey-78.8.0/lib/libmozjs-78.so
[Current thread is 1 (Thread 0x7f5ed378b2c0 (LWP 77958))]
[?2004h(gdb) q
[?2004l
Gnome crashes for me every time I try to enable material-shell using the NixOS 21.05/Gnome 40.1/X.Org/https://github.com/material-shell/material-shell/commit/fa59ef898a2eed88259b64558eb2d4f837cdc267, but it works with @arnarg logging patch applied :eyes: :see_no_evil:
yep, same here on my NixOS System.
Yep.
❯ nixos-version
21.05.1105.6613a30c5e3 (Okapi)
~
❯ gnome-shell --version
GNOME Shell 40.1
I dunno, at this point it seems like the blame might lie with NixOS.
Confirmed on nixos 21.05.3367.fd8a7fd07da (Okapi) & GNOME Shell 40.1 Anyway I can help debug this issue? @arnarg The link to your logging patches seems dead, could you reupload those?
Same here but I'm on X11 so that rules some stuff out.
I have this issue on 22.05.2065.9370544d849 (Quokka), Gnome Shell 42.3.1 Wayland.
I would love to help depugging but someone has to point me in the right direction as I'm quite new to NixOS