projecthamster / hamster-shell-extension

Shell extension for hamster
http://projecthamster.org
GNU General Public License v3.0
215 stars 91 forks source link

Crashing gnome-shell 3.30 "Object St.Bin has been already deallocated" #313

Closed slaufmann closed 4 years ago

slaufmann commented 5 years ago

I am running gnome-shell 3.30 on Debian buster (10) and hamster-shell-extension crashes after trying to unlock the screen and leads to a crash of gnome-shell. I think that the relevant part from the log is this:

May 16 12:05:05 devpool36 gnome-shell[1160]: Shutting down hamster-shell-extension.
May 16 13:04:29 devpool36 gnome-shell[1160]: Object St.Bin (0x560778873e60), has been already deallocated — impossible to get any property from it. This might be caused by the object having been destroyed from C code using something such as destroy(), dispose(), or remove() vfuncs.
May 16 13:04:29 devpool36 org.gnome.Shell.desktop[1160]: == Stack trace for context 0x560774f8e240 ==
May 16 13:04:29 devpool36 org.gnome.Shell.desktop[1160]: #0   5607789e41f0 i   resource:///org/gnome/shell/ui/popupMenu.js:889 (7f1957e270d0 @ 61)
May 16 13:04:29 devpool36 org.gnome.Shell.desktop[1160]: #1   7ffc579392b0 b   resource:///org/gnome/gjs/modules/_legacy.js:82 (7f19902b0b80 @ 71)
May 16 13:04:29 devpool36 org.gnome.Shell.desktop[1160]: #2   5607789e4170 i   resource:///org/gnome/shell/ui/popupMenu.js:1343 (7f1957e28b80 @ 34)
May 16 13:04:29 devpool36 org.gnome.Shell.desktop[1160]: #3   7ffc5793a230 b   resource:///org/gnome/gjs/modules/_legacy.js:82 (7f19902b0b80 @ 71)
May 16 13:04:29 devpool36 org.gnome.Shell.desktop[1160]: #4   5607789e40e8 i   resource:///org/gnome/shell/ui/popupMenu.js:1302 (7f1957e288b0 @ 20)
May 16 13:04:29 devpool36 org.gnome.Shell.desktop[1160]: #5   5607789e4020 i   resource:///org/gnome/shell/ui/grabHelper.js:267 (7f1957e2d700 @ 305)
May 16 13:04:29 devpool36 org.gnome.Shell.desktop[1160]: #6   7ffc5793b880 b   resource:///org/gnome/gjs/modules/_legacy.js:82 (7f19902b0b80 @ 71)
May 16 13:04:29 devpool36 org.gnome.Shell.desktop[1160]: #7   7ffc5793c4e0 b   resource:///org/gnome/shell/ui/grabHelper.js:320 (7f1957e2d790 @ 758)
May 16 13:04:29 devpool36 org.gnome.Shell.desktop[1160]: #8   7ffc5793c5b0 b   resource:///org/gnome/gjs/modules/_legacy.js:82 (7f19902b0b80 @ 71)
May 16 13:04:29 devpool36 org.gnome.Shell.desktop[1160]: #9   7ffc5793c660 b   resource:///org/gnome/shell/ui/grabHelper.js:17 (7f1957e28ca0 @ 43)
May 16 13:04:29 devpool36 org.gnome.Shell.desktop[1160]: == Stack trace for context 0x560774f8e240 ==
May 16 13:04:29 devpool36 org.gnome.Shell.desktop[1160]: #0   5607789e4278 i   resource:///org/gnome/shell/ui/boxpointer.js:125 (7f1957e1b3a0 @ 43)
May 16 13:04:29 devpool36 org.gnome.Shell.desktop[1160]: #1   7ffc57938320 b   resource:///org/gnome/gjs/modules/_legacy.js:82 (7f19902b0b80 @ 71)
May 16 13:04:29 devpool36 org.gnome.Shell.desktop[1160]: #2   5607789e41f0 i   resource:///org/gnome/shell/ui/popupMenu.js:890 (7f1957e270d0 @ 98)
May 16 13:04:29 devpool36 org.gnome.Shell.desktop[1160]: #3   7ffc579392b0 b   resource:///org/gnome/gjs/modules/_legacy.js:82 (7f19902b0b80 @ 71)
May 16 13:04:29 devpool36 org.gnome.Shell.desktop[1160]: #4   5607789e4170 i   resource:///org/gnome/shell/ui/popupMenu.js:1343 (7f1957e28b80 @ 34)
May 16 13:04:29 devpool36 org.gnome.Shell.desktop[1160]: #5   7ffc5793a230 b   resource:///org/gnome/gjs/modules/_legacy.js:82 (7f19902b0b80 @ 71)
May 16 13:04:29 devpool36 org.gnome.Shell.desktop[1160]: #6   5607789e40e8 i   resource:///org/gnome/shell/ui/popupMenu.js:1302 (7f1957e288b0 @ 20)
May 16 13:04:29 devpool36 org.gnome.Shell.desktop[1160]: #7   5607789e4020 i   resource:///org/gnome/shell/ui/grabHelper.js:267 (7f1957e2d700 @ 305)
May 16 13:04:29 devpool36 org.gnome.Shell.desktop[1160]: #8   7ffc5793b880 b   resource:///org/gnome/gjs/modules/_legacy.js:82 (7f19902b0b80 @ 71)
May 16 13:04:29 devpool36 org.gnome.Shell.desktop[1160]: #9   7ffc5793c4e0 b   resource:///org/gnome/shell/ui/grabHelper.js:320 (7f1957e2d790 @ 758)
May 16 13:04:29 devpool36 org.gnome.Shell.desktop[1160]: #10   7ffc5793c5b0 b   resource:///org/gnome/gjs/modules/_legacy.js:82 (7f19902b0b80 @ 71)
May 16 13:04:29 devpool36 gnome-shell[1160]: Object St.Bin (0x560778873e60), has been already deallocated — impossible to get any property from it. This might be caused by the object having been destroyed from C code using something such as destroy(), dispose(), or remove() vfuncs.
May 16 13:04:29 devpool36 org.gnome.Shell.desktop[1160]: #11   7ffc5793c660 b   resource:///org/gnome/shell/ui/grabHelper.js:17 (7f1957e28ca0 @ 43)
May 16 13:04:29 devpool36 org.gnome.Shell.desktop[1160]: == Stack trace for context 0x560774f8e240 ==
May 16 13:04:29 devpool36 org.gnome.Shell.desktop[1160]: #0   5607789e4278 i   resource:///org/gnome/shell/ui/boxpointer.js:130 (7f1957e1b3a0 @ 89)
May 16 13:04:29 devpool36 org.gnome.Shell.desktop[1160]: #1   7ffc57938320 b   resource:///org/gnome/gjs/modules/_legacy.js:82 (7f19902b0b80 @ 71)
May 16 13:04:29 devpool36 org.gnome.Shell.desktop[1160]: #2   5607789e41f0 i   resource:///org/gnome/shell/ui/popupMenu.js:890 (7f1957e270d0 @ 98)
May 16 13:04:29 devpool36 org.gnome.Shell.desktop[1160]: #3   7ffc579392b0 b   resource:///org/gnome/gjs/modules/_legacy.js:82 (7f19902b0b80 @ 71)
May 16 13:04:29 devpool36 org.gnome.Shell.desktop[1160]: #4   5607789e4170 i   resource:///org/gnome/shell/ui/popupMenu.js:1343 (7f1957e28b80 @ 34)
May 16 13:04:29 devpool36 org.gnome.Shell.desktop[1160]: #5   7ffc5793a230 b   resource:///org/gnome/gjs/modules/_legacy.js:82 (7f19902b0b80 @ 71)
May 16 13:04:29 devpool36 org.gnome.Shell.desktop[1160]: #6   5607789e40e8 i   resource:///org/gnome/shell/ui/popupMenu.js:1302 (7f1957e288b0 @ 20)
May 16 13:04:29 devpool36 org.gnome.Shell.desktop[1160]: #7   5607789e4020 i   resource:///org/gnome/shell/ui/grabHelper.js:267 (7f1957e2d700 @ 305)
May 16 13:04:29 devpool36 org.gnome.Shell.desktop[1160]: #8   7ffc5793b880 b   resource:///org/gnome/gjs/modules/_legacy.js:82 (7f19902b0b80 @ 71)
May 16 13:04:29 devpool36 org.gnome.Shell.desktop[1160]: #9   7ffc5793c4e0 b   resource:///org/gnome/shell/ui/grabHelper.js:320 (7f1957e2d790 @ 758)
May 16 13:04:29 devpool36 org.gnome.Shell.desktop[1160]: #10   7ffc5793c5b0 b   resource:///org/gnome/gjs/modules/_legacy.js:82 (7f19902b0b80 @ 71)
May 16 13:04:29 devpool36 org.gnome.Shell.desktop[1160]: #11   7ffc5793c660 b   resource:///org/gnome/shell/ui/grabHelper.js:17 (7f1957e28ca0 @ 43)
May 16 13:04:29 devpool36 gnome-shell[1160]: Object St.Bin (0x560778873e60), 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.
May 16 13:04:29 devpool36 gnome-shell[1160]: st_widget_get_theme_node: assertion 'ST_IS_WIDGET (widget)' failed
May 16 13:04:29 devpool36 gnome-shell[1160]: JS ERROR: TypeError: themeNode is null
                                             hide@resource:///org/gnome/shell/ui/boxpointer.js:131:13
                                             wrapper@resource:///org/gnome/gjs/modules/_legacy.js:82:22
                                             close@resource:///org/gnome/shell/ui/popupMenu.js:890:13
                                             wrapper@resource:///org/gnome/gjs/modules/_legacy.js:82:22
                                             _closeMenu@resource:///org/gnome/shell/ui/popupMenu.js:1343:13
                                             wrapper@resource:///org/gnome/gjs/modules/_legacy.js:82:22
                                             onUngrab@resource:///org/gnome/shell/ui/popupMenu.js:1302:41
                                             ungrab@resource:///org/gnome/shell/ui/grabHelper.js:267:17
                                             wrapper@resource:///org/gnome/gjs/modules/_legacy.js:82:22
                                             onCapturedEvent@resource:///org/gnome/shell/ui/grabHelper.js:320:13
                                             wrapper@resource:///org/gnome/gjs/modules/_legacy.js:82:22
                                             _onCapturedEvent@resource:///org/gnome/shell/ui/grabHelper.js:17:12
May 16 13:04:38 devpool36 gnome-shell[1160]: JS WARNING: [resource:///org/gnome/shell/ui/grabHelper.js 320]: reference to undefined property 0
May 16 13:04:38 devpool36 gnome-shell[1160]: JS ERROR: TypeError: this._grabStack[i] is undefined
                                             onCapturedEvent@resource:///org/gnome/shell/ui/grabHelper.js:320:27
                                             wrapper@resource:///org/gnome/gjs/modules/_legacy.js:82:22
                                             _onCapturedEvent@resource:///org/gnome/shell/ui/grabHelper.js:17:12
May 16 13:04:38 devpool36 gnome-shell[1160]: JS ERROR: TypeError: this._grabStack[i] is undefined
                                             onCapturedEvent@resource:///org/gnome/shell/ui/grabHelper.js:320:27
                                             wrapper@resource:///org/gnome/gjs/modules/_legacy.js:82:22
                                             _onCapturedEvent@resource:///org/gnome/shell/ui/grabHelper.js:17:12
May 16 13:04:38 devpool36 gnome-shell[1160]: JS ERROR: TypeError: this._grabStack[i] is undefined
                                             onCapturedEvent@resource:///org/gnome/shell/ui/grabHelper.js:320:27
                                             wrapper@resource:///org/gnome/gjs/modules/_legacy.js:82:22
                                             _onCapturedEvent@resource:///org/gnome/shell/ui/grabHelper.js:17:12
May 16 13:04:38 devpool36 gnome-shell[1160]: JS ERROR: TypeError: this._grabStack[i] is undefined
                                             onCapturedEvent@resource:///org/gnome/shell/ui/grabHelper.js:320:27
                                             wrapper@resource:///org/gnome/gjs/modules/_legacy.js:82:22
                                             _onCapturedEvent@resource:///org/gnome/shell/ui/grabHelper.js:17:12
May 16 13:04:39 devpool36 gnome-shell[1160]: JS ERROR: TypeError: this._grabStack[i] is undefined
                                             onCapturedEvent@resource:///org/gnome/shell/ui/grabHelper.js:320:27
                                             wrapper@resource:///org/gnome/gjs/modules/_legacy.js:82:22
                                             _onCapturedEvent@resource:///org/gnome/shell/ui/grabHelper.js:17:12
May 16 13:04:39 devpool36 gnome-shell[1160]: JS ERROR: TypeError: this._grabStack[i] is undefined
                                             onCapturedEvent@resource:///org/gnome/shell/ui/grabHelper.js:320:27
                                             wrapper@resource:///org/gnome/gjs/modules/_legacy.js:82:22
                                             _onCapturedEvent@resource:///org/gnome/shell/ui/grabHelper.js:17:12
May 16 13:04:39 devpool36 gnome-shell[1160]: JS ERROR: TypeError: this._grabStack[i] is undefined
                                             onCapturedEvent@resource:///org/gnome/shell/ui/grabHelper.js:320:27
                                             wrapper@resource:///org/gnome/gjs/modules/_legacy.js:82:22
                                             _onCapturedEvent@resource:///org/gnome/shell/ui/grabHelper.js:17:12
May 16 13:04:40 devpool36 gnome-shell[1160]: JS ERROR: TypeError: this._grabStack[i] is undefined
                                             onCapturedEvent@resource:///org/gnome/shell/ui/grabHelper.js:320:27
                                             wrapper@resource:///org/gnome/gjs/modules/_legacy.js:82:22
                                             _onCapturedEvent@resource:///org/gnome/shell/ui/grabHelper.js:17:12
May 16 13:04:45 devpool36 gnome-shell[1160]: JS ERROR: TypeError: this._grabStack[i] is undefined
                                             onCapturedEvent@resource:///org/gnome/shell/ui/grabHelper.js:320:27
                                             wrapper@resource:///org/gnome/gjs/modules/_legacy.js:82:22
                                             _onCapturedEvent@resource:///org/gnome/shell/ui/grabHelper.js:17:12

Does anybody also experience this? I am not afraid to attempt a fix but i lack the experience on how to debug this further in order to get an idea where the code relevant for this crash is?

Thanks.

ghost commented 5 years ago

I am now running ubuntu 18.04 Linux 4.18.0-20-generic and gnome-shell 3.28.3 This error:

Jun 2 08:40:36 Queeny gnome-shell[XXXXX]: Object objectname(0x55a752a2d6f0), 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

occurs sometimes after login addressing no particular? gnome-extension hanging the computer for about 5min and not executing Gnome start up programs yet mostly during operation unnoticed by me unless I check the system log then it's the same extension during the session.

example without the rest of the error message:

Jun 2 08:40:36 Queeny gnome-shell[11607]: Object .Gjs_BoxLayout_Backup_Tools (0x55a752a2d6f0),

Jun 1 15:50:21 Queeny gnome-shell[5471]: Object .Gjs_BoxLayout_Backup_Tools (0x563e1b82f550) Jun 1 15:50:22 Queeny gnome-shell[5471]: Object .Gjs_BoxLayout_Backup_Tools (0x563e3216fc50)
Jun 1 15:50:22 Queeny gnome-shell[5471]: Object .Gjs_BoxLayout_Backup_Tools (0x563e32198350) Jun 1 15:50:24 Queeny gnome-shell[5471]: Object .Gjs_BoxLayout_Backup_Tools (0x563e329f7590) Jun 1 15:50:24 Queeny gnome-shell[5471]: Object .Gjs_BoxLayout_Backup_Tools (0x563e329f7590)

May 26 17:20:58 Queeny gnome-shell[5029]: Object Gdm.UserVerifierProxy (0x5566fa782bf0), has been May 26 17:21:15 Queeny gnome-shell[5029]: Object Gio.Settings (0x5566f51335c0), has been May 26 17:21:15 Queeny gnome-shell[5029]: Object Gio.Settings (0x5566f51335c0), has been May 26 17:21:15 Queeny gnome-shell[5029]: Object Gio.Settings (0x5566f51335c0), has been May 26 17:21:17 Queeny gnome-shell[5029]: Object Gio.Settings (0x5566f51335c0), has been

If I remember right this has been so since the upgrade to ubuntu 16. LTS about a year ago, tried other gnome versions, other managers, I like this setup yet don't know enough about gnome or the Linux system to fix it myself.

localuser2 commented 5 years ago

Commenting out the line this.extension.actor.destroy(); in the file "extension.js" solved the problem for me.

ghost commented 5 years ago

Thanks, I will try this when I find the correct file, this filename in relation to gnome only occurs under gnome-shell/extensions/ . I was trying to build gnome3.33.3 but hit a snag with jhbuild, will try again later.

localuser2 commented 5 years ago

You do not have to rebuild anything. The .js file can be found in the extension directory under /usr/share/gnome-shell/extensions or ~/.local/share/gnome-shell/extensions respectively. A reload of the gnome-shell should be enough.

ghost commented 5 years ago

Thank you, I did a search on my system and home mount and I'm sure there are only extension.js files in each extension app directory not in /usr/share/gnome-shell/extensions or ~/.local/share/gnome-shell/extensions itself. As I understand, gnome-shell expects an extension.js script in gnome-shell/extensions I wonder why the shell even starts without it.

ghost commented 5 years ago

Thank you, I did a search on my system and home mount and I'm sure there are only extension.js files in each extension app directory not in /usr/share/gnome-shell/extensions or ~/.local/share/gnome-shell/extensions itself. As I understand, gnome-shell expects an extension.js script in gnome-shell/extensions or is your solution specific for the hamster extension.js ?

localuser2 commented 5 years ago

I meant the "extension.js" inside the plugin directory (hamster@projecthamster...). Sorry for being so unclear.

ghost commented 5 years ago

No,it's my fault, this tread is about the hamster extension I didn't realize the already destroyed Object addressing also occured in stand alone apps at least I learned a little bit more and I thank you for it.

mwilck commented 4 years ago

@slaufmann and other affected people, which version of the hamster-shell-extension you've been using? There have been various fixes to problems related to destroying objects but they all went into the 0.10.0 release which has been out for about 2 years. Note that this is not the same code that is currently available from extensions.gnome.org.

As this has been silent for 6 months - have you been able to resolve the issue somehow? Can this be closed?

slaufmann commented 4 years ago

In the meantime I am running gnome-shell version 3.34.4 on Debian bullseye. Since I wanted to make a small modification I installed the extension from source. I did built on commit 4295319e4a16472f6b8609901c06a753b0437125 and it still runs fine.

So I guess this could be closed then.

mwilck commented 4 years ago

Thanks for the heads-up.