maweki / twitchlive-extension

TwitchLive-Panel Gnome Shell Extension displaying your favorite streamers
GNU General Public License v3.0
39 stars 8 forks source link

Extension spamming Journalctl logs and likely crashing shell (Gnome 3.28) #46

Open rusins opened 6 years ago

rusins commented 6 years ago

Gnome 3.28.0 Twitchlive constantly keeps spamming Journalctl logs with this:

mar 26 13:09:16 karbons org.gnome.Shell.desktop[788]: #1 0x7fff81270760 I resource:///org/gnome/gjs/modules/_legacy.js:82 (0x7f1cf01b4de0 @ 71) mar 26 13:09:16 karbons org.gnome.Shell.desktop[788]: #2 0x7fff812707e0 I self-hosted:913 (0x7f1cf01ebef0 @ 346) mar 26 13:09:16 karbons gnome-shell[788]: Object St.Icon (0x561e9b7dc260), has been already deallocated - impossible to access to it. This might be caused by the fact that the object has been destroyed from C code using something such as destroy(), dispose(), or remove() vfuncs mar 26 13:09:16 karbons gnome-shell[788]: Object St.BoxLayout (0x561e9a2f8850), has been already deallocated - impossible to access to it. This might be caused by the fact that the object has been destroyed from C code using something such as destroy(), dispose(), or remove() vfuncs mar 26 13:09:18 karbons gnome-shell[788]: Object St.Icon (0x561e96667890), has been already deallocated - impossible to access to it. This might be caused by the fact that the object has been destroyed from C code using something such as destroy(), dispose(), or remove() vfuncs mar 26 13:09:18 karbons org.gnome.Shell.desktop[788]: == Stack trace for context 0x561e92e2d210 == mar 26 13:09:18 karbons org.gnome.Shell.desktop[788]: #0 0x7fff81270700 I /home/raitis/.local/share/gnome-shell/extensions/TwitchLive_Panel@extensions.maweki.de/extension.js:290 (0x7f1cb15b2b38 @ 64) mar 26 13:09:18 karbons org.gnome.Shell.desktop[788]: #1 0x7fff81270760 I resource:///org/gnome/gjs/modules/_legacy.js:82 (0x7f1cf01b4de0 @ 71) mar 26 13:09:18 karbons org.gnome.Shell.desktop[788]: #2 0x7fff812707e0 I self-hosted:913 (0x7f1cf01ebef0 @ 346) mar 26 13:09:18 karbons org.gnome.Shell.desktop[788]: == Stack trace for context 0x561e92e2d210 == mar 26 13:09:18 karbons org.gnome.Shell.desktop[788]: #0 0x7fff81270700 I /home/raitis/.local/share/gnome-shell/extensions/TwitchLive_Panel@extensions.maweki.de/extension.js:292 (0x7f1cb15b2b38 @ 109) mar 26 13:09:18 karbons org.gnome.Shell.desktop[788]: #1 0x7fff81270760 I resource:///org/gnome/gjs/modules/_legacy.js:82 (0x7f1cf01b4de0 @ 71) mar 26 13:09:18 karbons org.gnome.Shell.desktop[788]: #2 0x7fff812707e0 I self-hosted:913 (0x7f1cf01ebef0 @ 346) mar 26 13:09:18 karbons org.gnome.Shell.desktop[788]: == Stack trace for context 0x561e92e2d210 == mar 26 13:09:18 karbons org.gnome.Shell.desktop[788]: #0 0x7fff81270700 I /home/raitis/.local/share/gnome-shell/extensions/TwitchLive_Panel@extensions.maweki.de/extension.js:290 (0x7f1cb15b2b38 @ 64) mar 26 13:09:18 karbons org.gnome.Shell.desktop[788]: #1 0x7fff81270760 I resource:///org/gnome/gjs/modules/_legacy.js:82 (0x7f1cf01b4de0 @ 71) mar 26 13:09:18 karbons org.gnome.Shell.desktop[788]: #2 0x7fff812707e0 I self-hosted:913 (0x7f1cf01ebef0 @ 346) mar 26 13:09:18 karbons org.gnome.Shell.desktop[788]: == Stack trace for context 0x561e92e2d210 == mar 26 13:09:18 karbons org.gnome.Shell.desktop[788]: #0 0x7fff81270700 I /home/raitis/.local/share/gnome-shell/extensions/TwitchLive_Panel@extensions.maweki.de/extension.js:292 (0x7f1cb15b2b38 @ 109) mar 26 13:09:18 karbons org.gnome.Shell.desktop[788]: #1 0x7fff81270760 I resource:///org/gnome/gjs/modules/_legacy.js:82 (0x7f1cf01b4de0 @ 71) mar 26 13:09:18 karbons org.gnome.Shell.desktop[788]: #2 0x7fff812707e0 I self-hosted:913 (0x7f1cf01ebef0 @ 346) mar 26 13:09:18 karbons org.gnome.Shell.desktop[788]: == Stack trace for context 0x561e92e2d210 == mar 26 13:09:28 karbons systemd-journald[223]: Suppressed 432 messages from session-c2.scope mar 26 13:09:28 karbons gnome-shell[788]: Object St.Icon (0x561e96667890), has been already deallocated - impossible to access to it. This might be caused by the fact that the object has been destroyed from C code using something such as destroy(), dispose(), or remove() vfuncs mar 26 13:09:28 karbons org.gnome.Shell.desktop[788]: == Stack trace for context 0x561e92e2d210 == mar 26 13:09:28 karbons org.gnome.Shell.desktop[788]: #0 0x7fff81270700 I /home/raitis/.local/share/gnome-shell/extensions/TwitchLive_Panel@extensions.maweki.de/extension.js:290 (0x7f1cb15b2b38 @ 64)

Reason I even checked the logs was because my desktop crashed, and the log before the crash leads me to believe the extension was at fault: crash.txt

Let me know if the extension wasn't at fault, in which case I'll forward the bug over to the Gnome Shell developer team.

maweki commented 6 years ago

For reference here are the lines possibly affected.

https://github.com/maweki/twitchlive-extension/blob/master/extension.js#L290-L292

Strange. The trace seems to correspond to an Icon or Box. But as I see it, we never deallocate those objects. The icon we never do and the box we only do when we update settings. So I don't see what we could do differently.

@RaphaelRochet ping. Any idea?

drew-parsons commented 6 years ago

I've noticed this problem arising out of many extensions lately (Workspace Grid, Frittery Bottom Panel).

A common point is the reference to resource:///org/gnome/gjs/modules/_legacy.js:82

Does _legacy.js need to be fixed?

maweki commented 6 years ago

I have the same error with another extension /home/maweki/.local/share/gnome-shell/extensions/shell-volume-mixer@derhofbauer.at/widget/volume.js:424. (https://github.com/aleho/gnome-shell-volume-mixer/issues/83) - they don't know of a fix.

I get the exceptions when I change the layout mode of the twitchlive extension at 148 and 140 (https://github.com/maweki/twitchlive-extension/blob/master/extension.js#L140-L148)

So over at volume-mixer they have

Apr 30 14:24:34 starfire gnome-shell[8495]: Object St.DrawingArea (0x56476fd54450), has been already deallocated - impossible to access to it. This might be caused by the fact that the object has been destroyed from C code using something such as destroy(), dispose(), or remove() vfuncs
Apr 30 14:24:34 starfire gnome-shell[8495]: clutter_content_invalidate: assertion 'CLUTTER_IS_CONTENT (content)' failed

and we have

Aug 11 12:05:33 maweki-desktop gnome-shell[18350]: Object St.BoxLayout (0x561581955850), has been already deallocated - impossible to access to it. This might be caused by the fact that the object has been destroyed from C code using something such as destroy(), dispose(), or remove() vfuncs
Aug 11 12:05:33 maweki-desktop gnome-shell[18350]: clutter_layout_manager_get_child_meta: assertion 'CLUTTER_IS_LAYOUT_MANAGER (manager)' failed

So this looks like it could be a Clutter issue. Maybe we find other extensions affected as well.

On the other hand: https://github.com/elvetemedve/gnome-shell-extension-system-monitor/issues/46

They say the issue could be left-over asynchronous operations that remain uncancelled.