Bug 1117221

Summary: syslog filled with "gnome-shell[3094]: Object Shell.GenericContainer (0x558fee13e550), has been already finalized. Impossible to get any property from it."
Product: [openSUSE] openSUSE Distribution Reporter: Ulrich Windl <Ulrich.Windl>
Component: GNOMEAssignee: QK ZHU <qkzhu>
Status: RESOLVED FIXED QA Contact: E-mail List <qa-bugs>
Severity: Normal    
Priority: P5 - None CC: dimstar, jmader2, qkzhu, seroton10, sreeves, sschricker, victor.zhestkov, xiaoguang.wang, yfjiang
Version: Leap 15.0   
Target Milestone: ---   
Hardware: Other   
OS: Other   
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---
Attachments: New exception produced by proposed fixes
Patch by Ray Strode <rstrode@redhat.com>

Description Ulrich Windl 2018-11-25 00:04:39 UTC
After upgrading to Leap 15.0, syslog is filled with messages like this one:
Nov 25 00:52:27 i7a.site gnome-shell[3094]: Object Shell.GenericContainer (0x558fee9b6fa0), has been already finalized. Impossible to set any property to it.
Nov 25 00:52:27 i7a.site /usr/lib/gdm/gdm-x-session[2932]: == Stack trace for context 0x558fe9e41170 ==
Nov 25 00:52:27 i7a.site /usr/lib/gdm/gdm-x-session[2932]: #0 0x7ffd9a7ed480 b   resource:///org/gnome/shell/ui/tweener.js:73 (0x7f15f45ddef0 @ 9)
Nov 25 00:52:27 i7a.site /usr/lib/gdm/gdm-x-session[2932]: #1 0x558fea2feee8 i   resource:///org/gnome/shell/ui/tweener.js:105 (0x7f15f45df230 @ 36)
Nov 25 00:52:27 i7a.site /usr/lib/gdm/gdm-x-session[2932]: #2 0x558fea2fee60 i   resource:///org/gnome/shell/ui/tweener.js:92 (0x7f15f45df098 @ 52)
Nov 25 00:52:27 i7a.site /usr/lib/gdm/gdm-x-session[2932]: #3 0x7ffd9a7ee8b0 b   resource:///org/gnome/gjs/modules/tweener/tweener.js:203 (0x7f15f45e9cd0 @ 54)
Nov 25 00:52:27 i7a.site /usr/lib/gdm/gdm-x-session[2932]: #4 0x7ffd9a7eea00 b   resource:///org/gnome/gjs/modules/tweener/tweener.js:332 (0x7f15f45e9d58 @ 1626)
Nov 25 00:52:27 i7a.site /usr/lib/gdm/gdm-x-session[2932]: #5 0x7ffd9a7eeab0 b   resource:///org/gnome/gjs/modules/tweener/tweener.js:345 (0x7f15f45e9de0 @ 100)
Nov 25 00:52:27 i7a.site /usr/lib/gdm/gdm-x-session[2932]: #6 0x7ffd9a7eeb40 b   resource:///org/gnome/gjs/modules/tweener/tweener.js:360 (0x7f15f45e9e68 @ 10)
Nov 25 00:52:27 i7a.site /usr/lib/gdm/gdm-x-session[2932]: #7 0x7ffd9a7eebc0 I   resource:///org/gnome/gjs/modules/signals.js:126 (0x7f15f45e2b38 @ 386)
Nov 25 00:52:27 i7a.site /usr/lib/gdm/gdm-x-session[2932]: #8 0x7ffd9a7eec70 b   resource:///org/gnome/shell/ui/tweener.js:208 (0x7f15f45df808 @ 159)
Nov 25 00:52:27 i7a.site /usr/lib/gdm/gdm-x-session[2932]: #9 0x7ffd9a7eecd0 I   resource:///org/gnome/gjs/modules/_legacy.js:82 (0x7f15f45c2bc0 @ 71)
Nov 25 00:52:27 i7a.site /usr/lib/gdm/gdm-x-session[2932]: #10 0x7ffd9a7eed80 b   resource:///org/gnome/shell/ui/tweener.js:183 (0x7f15f45df780 @ 20)
Nov 25 00:52:27 i7a.site /usr/lib/gdm/gdm-x-session[2932]: #11 0x7ffd9a7eee10 I   self-hosted:917 (0x7f15f45ee5e8 @ 394)
Nov 25 00:52:27 i7a.site /usr/lib/gdm/gdm-x-session[2932]: == Stack trace for context 0x558fe9e41170 ==
Nov 25 00:52:27 i7a.site /usr/lib/gdm/gdm-x-session[2932]: #0 0x7ffd9a7ed480 b   resource:///org/gnome/shell/ui/tweener.js:80 (0x7f15f45ddef0 @ 82)
Nov 25 00:52:27 i7a.site /usr/lib/gdm/gdm-x-session[2932]: #1 0x558fea2feee8 i   resource:///org/gnome/shell/ui/tweener.js:105 (0x7f15f45df230 @ 36)
Nov 25 00:52:27 i7a.site /usr/lib/gdm/gdm-x-session[2932]: #2 0x558fea2fee60 i   resource:///org/gnome/shell/ui/tweener.js:92 (0x7f15f45df098 @ 52)
Nov 25 00:52:27 i7a.site /usr/lib/gdm/gdm-x-session[2932]: #3 0x7ffd9a7ee8b0 b   resource:///org/gnome/gjs/modules/tweener/tweener.js:203 (0x7f15f45e9cd0 @ 54)
Nov 25 00:52:27 i7a.site /usr/lib/gdm/gdm-x-session[2932]: #4 0x7ffd9a7eea00 b   resource:///org/gnome/gjs/modules/tweener/tweener.js:332 (0x7f15f45e9d58 @ 1626)
Nov 25 00:52:27 i7a.site /usr/lib/gdm/gdm-x-session[2932]: #5 0x7ffd9a7eeab0 b   resource:///org/gnome/gjs/modules/tweener/tweener.js:345 (0x7f15f45e9de0 @ 100)
Nov 25 00:52:27 i7a.site /usr/lib/gdm/gdm-x-session[2932]: #6 0x7ffd9a7eeb40 b   resource:///org/gnome/gjs/modules/tweener/tweener.js:360 (0x7f15f45e9e68 @ 10)
Nov 25 00:52:27 i7a.site /usr/lib/gdm/gdm-x-session[2932]: #7 0x7ffd9a7eebc0 I   resource:///org/gnome/gjs/modules/signals.js:126 (0x7f15f45e2b38 @ 386)
Nov 25 00:52:27 i7a.site /usr/lib/gdm/gdm-x-session[2932]: #8 0x7ffd9a7eec70 b   resource:///org/gnome/shell/ui/tweener.js:208 (0x7f15f45df808 @ 159)
Nov 25 00:52:27 i7a.site /usr/lib/gdm/gdm-x-session[2932]: #9 0x7ffd9a7eecd0 I   resource:///org/gnome/gjs/modules/_legacy.js:82 (0x7f15f45c2bc0 @ 71)
Nov 25 00:52:27 i7a.site /usr/lib/gdm/gdm-x-session[2932]: #10 0x7ffd9a7eed80 b   resource:///org/gnome/shell/ui/tweener.js:183 (0x7f15f45df780 @ 20)
Nov 25 00:52:27 i7a.site /usr/lib/gdm/gdm-x-session[2932]: #11 0x7ffd9a7eee10 I   self-hosted:917 (0x7f15f45ee5e8 @ 394)
Comment 1 Victor Zhestkov 2019-02-06 20:07:39 UTC
It seems I've fixed the issue.
just add repo:
zypper ar https://download.opensuse.org/repositories/home:/vzhestkov:/leap15-gnome-update/openSUSE_Leap_15.0 leap15-gnome-updates
and move to updated packages
zypper dup --allow-vendor-change
The GNOME become more responsive and gnome-shell abnormal CPU utilization seems gone.
I'll be happy if anyone else could test it.
Comment 2 Ulrich Windl 2019-02-06 22:26:48 UTC
(In reply to Victor Zhestkov from comment #1)
> It seems I've fixed the issue.

Is it a huge change that was required? I wonder: Did you find the change that caused the problem, and just undid that change, or what's the issue?
More interestingly: Is this just a problem openSUSE users are experiencing, and if so, why? Or did users stop to look into the logfiles (and thus do not notice that they have a problem)?
Comment 3 Victor Zhestkov 2019-02-07 06:02:32 UTC
Hi Ulrich.
It seems the issue was there since the release of Leap 15.0
I didn't see any changes with the updates.
My solution is to update mozjs52 first of all and then gjs and gnome-shell.
gjs and gnome-shell have some fixes with patches to avoid finalization of already finalized objects. mozjs52 just seems to have memory leaks and was updated to the latest version from 52 branch from Mozilla.
Other packages is not significant at all. For example gnome-music just has a bug with duplicated items in albums view.
gnome-terminal probably lead to some hangs of gnome-shell. I have no idea how is it related, but I saw situations when gnome-shell start eating whole the memory after intensive output in gnome-terminal.
Comment 4 Ulrich Windl 2019-02-07 07:00:21 UTC
(In reply to Victor Zhestkov from comment #3)
> (...) I have no idea
> how is it related, but I saw situations when gnome-shell start eating whole
> the memory after intensive output in gnome-terminal.

I noticed that gnome-terminal has a _huge_ scrollback buffer now (I haven't actually looked up the setting), so maybe that's where the memory went...
Comment 5 Victor Zhestkov 2019-02-07 07:47:38 UTC
Not sure if it depends on the scroll size. More possible to some specific output. In two cases there were no much lines, but about 7-10 tabs opened with about 50-1000 lines each, not so much I suppose.

By the way, in most distros gdm is compiled with disabled output to the journal, this is the only reason why tweener.js messages are not in the journal.
But the issue itself, I believe, still there.
Comment 6 Olav Reinert 2019-02-15 18:46:30 UTC
Your changes fix the error originally reported, but causes other errors instead that I didn't have before, like this one (yes, I use the gTile extension):

Feb 15 19:43:04 blackbox gnome-shell[8920]: JS ERROR: Exception in callback for signal: position-changed: TypeError: this._rect is undefined
                                            getCurrentRect@resource:///org/gnome/shell/ui/keyboard.js:547:22
                                            wrapper@resource:///org/gnome/gjs/modules/_legacy.js:82:22
                                            _onFocusPositionChanged@resource:///org/gnome/shell/ui/keyboard.js:612:20
                                            wrapper@resource:///org/gnome/gjs/modules/_legacy.js:82:22
                                            _emit@resource:///org/gnome/gjs/modules/signals.js:128:27
                                            _setCurrentWindow/this._currentWindowPositionId<@resource:///org/gnome/shell/ui/keyboard.js:528:21
Comment 7 Victor Zhestkov 2019-02-18 11:22:33 UTC
Hi Olav.
Are you talking about my fixes?
Could you please send me an output of this command:
rpm -q --qf="%{NAME} %{VERSION} %{RELEASE} %{VENDOR}\n" gjs gnome-shell
What extensions are enabled on your system?
Comment 8 Olav Reinert 2019-02-18 19:58:17 UTC
> Hi Olav.
> Are you talking about my fixes?

Yes, I'm talking about your fixes. And, like I mentioned, I am using the gTile extension, which is the one that produced the stack trace I intended to provide. :-) I have attached the correct stack trace.

The point of my comment was that, in case you planned to turn this into an update for Leap 15.0, I'd suggest you try to narrow the scope of the fix, since it seems to include unrelated changes.

> Could you please send me an output of this command:
> rpm -q --qf="%{NAME} %{VERSION} %{RELEASE} %{VENDOR}\n" gjs gnome-shell

I have reverted your fixes, so there's no point in running the rpm command you suggested, I guess. But these log statements, produced during the downgrade, are just as good, I believe:

Feb 15 19:47:55 blackbox [RPM][11581]: erase gjs-1.52.5-lp150.9.1.x86_64: success
Feb 15 19:47:55 blackbox [RPM][11581]: install gjs-1.50.4-lp150.2.1.x86_64: success

Feb 15 19:47:56 blackbox [RPM][11609]: erase gnome-shell-3.28.3-lp150.3.42.1.x86_64: success
Feb 15 19:47:56 blackbox [RPM][11609]: install gnome-shell-3.26.2+20180130.0d9c74212-lp150.3.3.1.x86_64: success

> What extensions are enabled on your system?

-Alternatetab
-Gtile(In reply to Victor Zhestkov from comment #7)
Comment 9 Olav Reinert 2019-02-18 19:59:10 UTC
Created attachment 797098 [details]
New exception produced by proposed fixes
Comment 10 Victor Zhestkov 2019-02-20 10:19:30 UTC
Olav, I've recompiled the packages in another repo. Could you please try it:
https://download.opensuse.org/repositories/home:/vzhestkov:/leap15-gnome-up/openSUSE_Leap_15.0/

The number of packages is limited in comparison with previous repo.
Comment 11 Victor Zhestkov 2019-02-20 15:35:02 UTC
Please don't test the repo from my previous comment. Something is broken inside. I need to check and fix.
Comment 12 Olav Reinert 2019-06-03 20:23:50 UTC
Created attachment 806701 [details]
Patch by Ray Strode <rstrode@redhat.com>

Hi Victor,

I just discovered that Ray Strode of RedHat has developed a patch to suppress the error messages mentioned in this bug report:

https://src.fedoraproject.org/rpms/gjs/blob/f27/f/disable-destoyed-object-criticals.patch

The patch applies cleanly to openSUSE:

https://build.opensuse.org/package/show/home:oreinert:branches:openSUSE:Leap:15.0/gjs

I've been running my system with the patch applied for a couple of days now, and for me this solution completely solves the problem, with no negative side-effects.

My suggestion would be to apply this patch to the gjs package in openSUSE. I would even submit the change myself if I could, but, because gjs is inherited from SLE, that doesn't seem to be an option, unfortunately.

What do you think, would this patch be a way to proceed?
If so, how do we get it done?
Comment 13 Victor Zhestkov 2019-06-04 07:28:51 UTC
Hi Olav.
I've tried the other patch before, but there were some side effects related to it. I'll test this one on my system.
I don't know how to apply the patch to the channel. I think it's better to ask the maintainer.
Comment 14 Olav Reinert 2019-06-05 19:44:54 UTC
This bug is also/still present in Leap 15.1.
Comment 15 Victor Zhestkov 2019-06-06 06:25:35 UTC
Hi Olav.
I'm testing it on Leap 15.1
It seems ok. I'm using it almost 3 days and didn't notice any issues.
Comment 16 QK ZHU 2019-06-06 06:44:37 UTC
Thank you Olav and Victor for the finding and testing, I will submit this patch to STABLE:3.26 and 15:Update
Comment 17 QK ZHU 2019-06-06 06:47:02 UTC
Submitted: https://build.opensuse.org/request/show/708013
Comment 19 QK ZHU 2019-06-11 03:19:46 UTC
Request accepted
Comment 20 QK ZHU 2019-06-11 08:28:18 UTC
*** Bug 1127231 has been marked as a duplicate of this bug. ***
Comment 21 QK ZHU 2019-06-11 08:31:34 UTC
*** Bug 1113572 has been marked as a duplicate of this bug. ***
Comment 22 QK ZHU 2019-06-11 08:31:56 UTC
*** Bug 1115094 has been marked as a duplicate of this bug. ***
Comment 24 Michael Gorse 2019-07-08 21:49:21 UTC
*** Bug 1135992 has been marked as a duplicate of this bug. ***
Comment 25 Swamp Workflow Management 2019-07-22 10:16:24 UTC
SUSE-RU-2019:1913-1: An update that has two recommended fixes can now be installed.

Category: recommended (moderate)
Bug References: 1093541,1117221
CVE References: 
Sources used:
SUSE Linux Enterprise Module for Desktop Applications 15-SP1 (src):    gjs-1.50.4-4.5.1
SUSE Linux Enterprise Module for Desktop Applications 15 (src):    gjs-1.50.4-4.5.1

NOTE: This line indicates an update has been released for the listed product(s). At times this might be only a partial fix. If you have questions please reach out to maintenance coordination.
Comment 26 Swamp Workflow Management 2019-08-19 16:21:41 UTC
openSUSE-RU-2019:1949-1: An update that has two recommended fixes can now be installed.

Category: recommended (moderate)
Bug References: 1093541,1117221
CVE References: 
Sources used:
openSUSE Leap 15.1 (src):    gjs-1.50.4-lp151.4.3.1
openSUSE Leap 15.0 (src):    gjs-1.50.4-lp150.3.3.1