Crash for certain entries in org.gnome.clocks world-clocks
After updating to gnome-shell 3.32.0 on Arch Linux, gnome-shell crashed directly on login for me with the following messages in the journal:
Mär 16 00:02:38 bevan-thinkpad gnome-shell[9571]: g_callable_info_get_n_args: assertion 'info != NULL' failed
Mär 16 00:02:38 bevan-thinkpad gnome-shell[9571]: Failed to launch ibus-daemon: Kindprozess »ibus-daemon« konnte nicht ausgeführt werden (Datei oder Verzeichnis nicht gefunden)
Mär 16 00:02:38 bevan-thinkpad gnome-shell[9571]: JS ERROR: TypeError: b.location.get_timezone(...) is null
_clocksChanged/<@resource:///org/gnome/shell/ui/dateMenu.js:127:20
_clocksChanged@resource:///org/gnome/shell/ui/dateMenu.js:125:9
_connectHandler@resource:///org/gnome/shell/misc/util.js:472:9
watchSetting@resource:///org/gnome/shell/misc/util.js:463:9
WorldClocksSection@resource:///org/gnome/shell/ui/dateMenu.js:102:9
_init@resource:///org/gnome/shell/ui/dateMenu.js:530:28
_ensureIndicator@resource:///org/gnome/shell/ui/panel.js:1115:25
_updateBox@resource:///org/gnome/shell/ui/panel.js:1126:29
_updatePanel@resource:///org/gnome/shell/ui/panel.js:1071:9
_init@resource:///org/gnome/shell/ui/panel.js:872:9
_initializeUI@resource:///org/gnome/shell/ui/main.js:175:13
start@resource:///org/gnome/shell/ui/main.js:124:5
@<main>:1:31
Mär 16 00:02:38 bevan-thinkpad gnome-shell[9571]: Execution of main.js threw exception: Script <main> threw an exception
Mär 16 00:02:38 bevan-thinkpad gnome-shell[9571]: 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() vfuncs. Because it would crash the application, it has been blocked and the JS callback not invoked.
Mär 16 00:02:38 bevan-thinkpad gnome-shell[9571]: The offending signal was destroy on Gjs_DateMenuButton 0x5583714a58e0.
Mär 16 00:02:38 bevan-thinkpad org.gnome.Shell.desktop[9571]: == Stack trace for context 0x55836fffc290 ==
Mär 16 00:02:38 bevan-thinkpad gnome-session[9530]: gnome-session-binary[9530]: WARNING: App 'org.gnome.Shell.desktop' exited with code 1
Mär 16 00:02:38 bevan-thinkpad gnome-session-binary[9530]: WARNING: App 'org.gnome.Shell.desktop' exited with code 1
I could work around this issue by wiping "org.gnome.clocks" in gsettings:
gsettings list-recursively org.gnome.clocks > world-clocks.bak
gsettings reset-recursively org.gnome.clocks
Here is the old content which caused the crash:
org.gnome.clocks timer uint32 1800
org.gnome.clocks geolocation true
org.gnome.clocks world-clocks [{'location': <(uint32 2, <('Anywhere on Earth (AoE)', '@AoE', false, @a(dd) [], @a(dd) [])>)>}, {'location': <(uint32 2, <('San Francisco', 'KSFO', true, [(0.65658801258494626, -2.1356672871875406)], [(0.659296885757089, -2.1366218601153339)])>)>}, {'location': <(uint32 2, <('New York City, Central Park', 'KNYC', false, [(0.71180344078725644, -1.2909618758762367)], [(0.71059804659265924, -1.2916478949920254)])>)>}, {'location': <(uint32 2, <('Panamá', 'MPHO', true, [(0.15562519745392522, -1.3892820845874863)], [(0.15649786207992239, -1.3881185259350592)])>)>}, {'location': <(uint32 2, <('Santiago', 'SCEL', true, [(-0.58264907613967609, -1.2354022163855554)], [(-0.58381263479210321, -1.2333660105604238)])>)>}, {'location': <(uint32 2, <('Coordinated Universal Time (UTC)', '@UTC', false, @a(dd) [], @a(dd) [])>)>}, {'location': <(uint32 2, <('Moscow', 'UUWW', true, [(0.97127572873484425, 0.65042604039431762)], [(0.97305983920281813, 0.65651530216830811)])>)>}, {'location': <(uint32 2, <('Shanghai', 'ZSSS', true, [(0.54396095602266359, 2.1194114825206833)], [(0.54493057368860898, 2.1198429802716539)])>)>}, {'location': <(uint32 2, <('Tokyo', 'RJTI', true, [(0.62191898430954862, 2.4408429589140699)], [(0.62282074357417661, 2.4391218722853854)])>)>}, {'location': <(uint32 2, <('Sydney', 'YSSY', true, [(-0.59253928105207498, 2.6386469349889961)], [(-0.59137572239964786, 2.6392287230418559)])>)>}]
org.gnome.clocks alarms @aa{sv} []