Crash log:
Nov 24 16:04:45 i-5 gnome-shell[1705]: [System monitor] applet enabling
Nov 24 16:04:45 i-5 gnome-shell[1705]: JS ERROR: Extension [email protected]: Error: Tried to construct an object without a GType; are you using GObjec>
SystemMonitor_TipItem@/home/strykar/.local/share/gnome-shell/extensions/[email protected]/extension.js:640:9
tip_format@/home/strykar/.local/share/gnome-shell/extensions/[email protected]/extension.js:898:27
SystemMonitor_Cpu@/home/strykar/.local/share/gnome-shell/extensions/[email protected]/extension.js:1196:9
createCpus@/home/strykar/.local/share/gnome-shell/extensions/[email protected]/extension.js:1363:20
enable@/home/strykar/.local/share/gnome-shell/extensions/[email protected]/extension.js:2316:26
_callExtensionEnable@resource:///org/gnome/shell/ui/extensionSystem.js:131:13
loadExtension@resource:///org/gnome/shell/ui/extensionSystem.js:263:21
callback@resource:///org/gnome/shell/ui/extensionDownloader.js:232:17
gotExtensionZipFile/<@resource:///org/gnome/shell/ui/extensionDownloader.js:99:13
Nov 24 16:04:45 i-5 gnome-software[1959]: State change on user/*/*/shell-extension/system-monitor_paradoxxx.zero.gmail.com/* from available to installed is not OK
Nov 24 16:04:45 i-5 gnome-software[1959]: system-monitor_paradoxxx.zero.gmail.com has error: Error: Tried to construct an object without a GType; are you using GObject.regis>
Nov 24 16:04:45 i-5 gnome-software[1959]: system-monitor_paradoxxx.zero.gmail.com has error: Error: Tried to construct an object without a GType; are you using GObject.regis>
Nov 24 16:04:47 i-5 gnome-shell[1705]: JS ERROR: TypeError: this.tip_labels[i] is undefined
update@/home/strykar/.local/share/gnome-shell/extensions/[email protected]/extension.js:925:39
Nov 24 16:05:11 i-5 gnome-shell[1705]: Object .Gjs_WindowSwitcherPopup (0x55e302849870), has been already deallocated — impossible to access it. This might be caused by the >
Nov 24 16:05:11 i-5 gnome-shell[1705]: == Stack trace for context 0x55e2ffd7a360 ==
Nov 24 16:05:11 i-5 gnome-shell[1705]: #0 55e302a82820 i resource:///org/gnome/shell/ui/windowManager.js:2094 (7fc0fbc3baf0 @ 410)
Nov 24 16:05:11 i-5 gnome-shell[1705]: #1 7fff381c5060 b self-hosted:981 (7fc0fbb380d0 @ 474)
Nov 24 16:05:11 i-5 gnome-shell[1705]: clutter_actor_destroy: assertion 'CLUTTER_IS_ACTOR (self)' failed
See https://gitlab.gnome.org/World/ShellExtensions/desktop-icons/merge_requests/151
I'm happy to help troubleshoot or provide more information, this is likely due to sweeping non-backward-compatible changes to Gnome in3.34.
Same here... I just updated the last updated and crashes.
You can workaround it if you downgrade gjs 1.58.2 to 1.58.1.
You can workaround it if you downgrade gjs 1.58.2 to 1.58.1.
Thanks! works for me, and for now.
You can workaround it if you downgrade gjs 1.58.2 to 1.58.1.
Thanks! works for me, and for now.
I don't know what the reason of this issue:
The extension developers should add support of gjs 1.58.2?
Or the real reason of the issue is a regression in the new version of gjs 1.58.2?
Not sure if gjs follows semver, but typically you would not expect an increment of the third part of a version number to be an intentionally breaking change. I don't think gnome-shell extensions are expected to keep up with changes in between major releases of gnome-shell.
Reported a bug to gjs, which links to the commit in gjs that introduces the exception we're seeing.
@chrisjbillington keeping up with gnome shell breaking changes is actually the greatest struggle for all extension maintainers. No backwards compatibility expectations allowed.
@chrisjbillington keeping up with gnome shell breaking changes is actually the greatest struggle for all extension maintainers. No backwards compatibility expectations allowed.
True but it's not supposed to be the case intra-release.
Issue is being addressed in gjs:
https://gitlab.gnome.org/GNOME/gjs/issues/288
They will make an emergency release that should resolve the problem in gnome-shell 3.34.
Watch the gjs bug report to see whether action will need to be taken for the gnome 3.36 release.
Hi, I have made an emergency GJS 1.58.3 release, that should make things work again for the moment. Sorry about this; I didn't realize there was any possibility that the condition being checked for could have worked at all! I thought we were just replacing a cryptic error message with a clear one.
That said, the breaking change happened in GNOME Shell 3.34.0, the GNOME Shell developers changed some classes to inherit from GObject for performance reasons, and unfortunately that means we have to use GObject.registerClass() on subclasses of those classes, or things will break in subtle ways, for example because parent methods aren't overridden correctly, or when connecting to signals. So we are going to put back the check starting in GNOME 3.36, and I am considering re-adding it as a warning (instead of an exception) in GJS 1.58.4 next month.
Therefore I would recommend fixing the code even for GNOME 3.34, to avoid subtle breakage that your extension might be suffering from even right now. It should be fairly straightforward to fix, for example in the particular class declaration that failed the check:
-const TipItem = class SystemMonitor_TipItem extends PopupMenu.PopupBaseMenuItem {
- constructor() {
- super();
- // PopupMenu.PopupBaseMenuItem.prototype._init.call(this);
+const TipItem = GObject.registerClass(
+class SystemMonitor_TipItem extends PopupMenu.PopupBaseMenuItem {
+ _init() {
+ super._init();
this.actor.remove_style_class_name('popup-menu-item');
this.actor.add_style_class_name('sm-tooltip-item');
}
-}
+});
(and import const GObject = imports.gi.GObject at the top of the file)
Fixed in 1.58.3-1! Thanks @ptomato @chrisjbillington
@paradoxxxzero Your thoughts on Philip's notes about the changes required to get this working in future versions?
Fixed in 1.58.3-1! Thanks @ptomato @chrisjbillington
@paradoxxxzero Your thoughts on Philip's notes about the changes required to get this working in future versions?
And thanks @Kerrung who told you that the reason is in a gjs regression.
And thanks @Kerrung who told you that the reason is in a gjs regression.
My mistake indeed, thank you! @Kerrung
Most helpful comment
Hi, I have made an emergency GJS 1.58.3 release, that should make things work again for the moment. Sorry about this; I didn't realize there was any possibility that the condition being checked for could have worked at all! I thought we were just replacing a cryptic error message with a clear one.
That said, the breaking change happened in GNOME Shell 3.34.0, the GNOME Shell developers changed some classes to inherit from GObject for performance reasons, and unfortunately that means we have to use
GObject.registerClass()on subclasses of those classes, or things will break in subtle ways, for example because parent methods aren't overridden correctly, or when connecting to signals. So we are going to put back the check starting in GNOME 3.36, and I am considering re-adding it as a warning (instead of an exception) in GJS 1.58.4 next month.Therefore I would recommend fixing the code even for GNOME 3.34, to avoid subtle breakage that your extension might be suffering from even right now. It should be fairly straightforward to fix, for example in the particular class declaration that failed the check:
(and import
const GObject = imports.gi.GObjectat the top of the file)