You are not logged in.
Hello. On Friday I updated gnome via pacman -Syu and my computer kept on working fine. I turned off the computer for the day and on Saturday morning I was met with a Gnome error right when GDM started. It said (and I translate it because my computer is set to Brazilian Portuguese):
Oh no! Something's wrong
A problem has occurred and the system could not be recovered. Please get in contact with a systems administrator
Ok, so I ran journalctl -xe to understand what was happening. I was met with this error log:
set 09 11:24:05 theseus systemd-coredump[2478]: [?] Process 2453 (gnome-shell) of user 1000 dumped core.
Stack trace of thread 2453:
#0 0x00007f51a2c9894c n/a (libc.so.6 + 0x9894c)
#1 0x00007f51a2c3e410 raise (libc.so.6 + 0x3e410)
#2 0x000055da393df11e n/a (/usr/bin/gnome-shell + 0x311e)
#3 0x00007f51a2c3e540 n/a (libc.so.6 + 0x3e540)
#4 0x00007f51a2c9894c n/a (libc.so.6 + 0x9894c)
#5 0x00007f51a2c3e410 raise (libc.so.6 + 0x3e410)
#6 0x00007f51a2c2557a abort (libc.so.6 + 0x2557a)
#7 0x00007f51a2c26613 n/a (libc.so.6 + 0x26613)
#8 0x00007f51a2ca2d65 n/a (libc.so.6 + 0xa2d65)
#9 0x00007f51a2ca2d84 n/a (libc.so.6 + 0xa2d84)
#10 0x00007f51a36bc07f g_error_free (libglib-2.0.so.0 + 0x4507f)
#11 0x00007f51a357d098 n/a (libgjs.so.0 + 0xc3098)
#12 0x00007f51a17caa0f n/a (libmozjs-128.so + 0x19caa0f)
#13 0x00007f51a17d1059 n/a (libmozjs-128.so + 0x19d1059)
#14 0x00007f51a17d0769 n/a (libmozjs-128.so + 0x19d0769)
#15 0x00007f51a1745860 n/a (libmozjs-128.so + 0x1945860)
#16 0x00007f51a1784727 n/a (libmozjs-128.so + 0x1984727)
#17 0x00007f51a17d0175 n/a (libmozjs-128.so + 0x19d0175)
#18 0x00007f51a17ad232 n/a (libmozjs-128.so + 0x19ad232)
#19 0x00007f51a17acc2b n/a (libmozjs-128.so + 0x19acc2b)
#20 0x00007f51a177e977 n/a (libmozjs-128.so + 0x197e977)
#21 0x00007f51a1779abb n/a (libmozjs-128.so + 0x1979abb)
#22 0x00007f51a17796aa n/a (libmozjs-128.so + 0x19796aa)
#23 0x00007f51a35d9bdc n/a (libgjs.so.0 + 0x11fbdc)
#24 0x00007f51a37f0de6 g_object_unref (libgobject-2.0.so.0 + 0x21de6)
#25 0x000055da393de89e n/a (/usr/bin/gnome-shell + 0x289e)
#26 0x00007f51a2c27675 n/a (libc.so.6 + 0x27675)
#27 0x00007f51a2c27729 __libc_start_main (libc.so.6 + 0x27729)
#28 0x000055da393de9d5 n/a (/usr/bin/gnome-shell + 0x29d5)
The error is way longer but I quote only this part because I tried to pursue other diagnostics and apparently the problem is in the GJS Javascript library and how it's connected to the gnome-weather app. When I uninstall gnome-weather, the greeting error on GDM stops and I can at least input my username and password, but when I try to login it doesn't work. There's some DBUS error. However, here is what the logs, obtained via journalctl -b, say about GJS and gnome-weather:
set 09 11:23:38 theseus gnome-shell[965]: JS ERROR: Gio.IOErrorEnum: TypeError: this._weatherApp.app_info.has_key is not a function
Stack trace:
_onInstalledChanged@resource:///org/gnome/shell/misc/weather.js:192:53
WeatherClient@resource:///org/gnome/shell/misc/weather.js:108:14
_init@resource:///org/gnome/shell/ui/dateMenu.js:552:31
WeatherSection@resource:///org/gnome/shell/ui/dateMenu.js:544:1
_init@resource:///org/gnome/shell/ui/dateMenu.js:970:29
ButtonBox@resource:///org/gnome/shell/ui/panelMenu.js:10:1
PanelMenuButton@resource:///org/gnome/shell/ui/panelMenu.js:95:4
DateMenuButton@resource:///org/gnome/shell/ui/dateMenu.js:863:1
_ensureIndicator@resource:///org/gnome/shell/ui/panel.js:899:25
_updateBox@resource:///org/gnome/shell/ui/panel.js:910:34
_updatePanel@resource:///org/gnome/shell/ui/panel.js:863:14
_init@resource:///org/gnome/shell/ui/panel.js:688:14
Panel@resource:///org/gnome/shell/ui/panel.js:644:1
_initializeUI@resource:///org/gnome/shell/ui/main.js:246:13
start@resource:///org/gnome/shell/ui/main.js:180:11
@resource:///org/gnome/shell/ui/init.js:12:47
@resource:///org/gnome/shell/ui/init.js:21:20
@resource:///org/gnome/shell/ui/init.js:21:20
set 09 11:23:38 theseus gnome-shell[965]: Execution of main.js threw exception: Module resource:///org/gnome/shell/ui/init.js threw an exception
set 09 11:23:38 theseus systemd[878]: Starting sandboxed app permission store...
set 09 11:23:38 theseus gnome-shell[965]: free(): invalid pointer
set 09 11:23:38 theseus gnome-shell[965]: == Stack trace for context 0x561b66c01740 ==
set 09 11:23:38 theseus systemd-coredump[1051]: Process 965 (gnome-shell) of user 1000 terminated abnormally with signal 6/ABRT, processing...
set 09 11:23:38 theseus systemd[1]: Created slice Slice /system/systemd-coredump.
set 09 11:23:38 theseus systemd[1]: Started Process Core Dump (PID 1051/UID 0).
I'm now running Cosmic which is as close as I can get to Gnome. I kinda like it but I would rather go back to using Gnome again. The issue doesn't seem to be with Wayland, as I can't run Gnome on Xorg either. Nothing on the logs say anything about my GPU (which is Nvidia btw), but it has been connecting just fine.
Offline
May I ask what glib version you are on before and after you do pacman -Syu? I'm running into the exact same issue on a non-Arch system with very different gnome versions. I know this is Arch BBS and I'm on GNOME 42.4, but this is literally the only mention of this crash I can find on the Internet.
My gdm started crashing after updates to glib from 2.84.4 to 2.86.0. After reverting / downgrading glib alone, gdm starts fine again. Alternatively like you said, I could also "workaround" by removing gnome-weather but keep glib at 2.86.0.
The particular crash in gnome shell weather.js boils down to the following snippet. Apparently removing gnome-weather causes the first null check to short-circuit around the problematic has_key call. The pattern remains the same across 42.4 all the way to main branch tip 49.0.
this._needsAuth = this._weatherApp === null ||
this._weatherApp.app_info.has_key('X-Flatpak');
Makes me wonder what breaking changes we have in the app_info API between glib 2.84.4 to 2.86.0.
Offline
For additional information: My GJS stack trace seems to be accompanied by a some sort of signal warning:
The offending signal was destroy on Gjs_ui_dateMenu_DateMenuButton 0x562a9ad81b50.
Attempting to call back into JSAPI during the sweeping phase of GC. This is most likely caused by not destroying a Clutter actor or Gtk+ widget with ::destroy signals connected, but can also be caused by using the destroy(), dispose(), or remove() >
Seems like type DesktopAppInfo was moved from namespace Gio to GioUnix. The following python snippet works fine on glib 2.84.4 but no longer works on 2.86.0
# On glib 2.84.4
from gi.repository import Gio
Gio.DesktopAppInfo
# class 'gi.repository.Gio.DesktopAppInfo'
# On glib 2.86.0
from gi.repository import Gio, GioUnix
Gio.DesktopAppInfo
# Traceback (most recent call last):
# File "<stdin>", line 1, in <module>
# File "/usr/lib/python3.10/site-packages/gi/overrides/__init__.py", line 31, in __getattr__
# return getattr(self._introspection_module, name)
# File "/usr/lib/python3.10/site-packages/gi/module.py", line 130, in __getattr__
# raise AttributeError("%r object has no attribute %r" % (
# AttributeError: 'gi.repository.Gio' object has no attribute 'DesktopAppInfo'
# DesktopAppInfo is available under this namespace
GioUnix.DesktopAppInfo
# <class 'gi.repository.GioUnix.DesktopAppInfo'>
GJS follows a similar GI repository look up procedure. A missing type might have caused the function to not resolve correctly.
Upstream merge in glib that caused this change seems to be https://gitlab.gnome.org/GNOME/glib/-/m … uests/4761 - knowingly breaking compatibility I guess.
Offline