Bug 318039 - xrestop shows leaking with oxygen-gtk with guitarix
Summary: xrestop shows leaking with oxygen-gtk with guitarix
Status: RESOLVED UNMAINTAINED
Alias: None
Product: Oxygen
Classification: Plasma
Component: gtk2-engine (show other bugs)
Version: 4.10
Platform: Arch Linux Linux
: NOR major
Target Milestone: ---
Assignee: Hugo Pereira Da Costa
URL: https://sourceforge.net/apps/phpbb/gu...
Keywords:
Depends on:
Blocks:
 
Reported: 2013-04-08 14:27 UTC by Antonio Orefice
Modified: 2021-03-10 10:20 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Antonio Orefice 2013-04-08 14:27:53 UTC
When using guitarix-git with oxygen-gtk, xrestop shows a lot of GCs objects growing until the gui became slow and choppy.

Reproducible: Always

Steps to Reproduce:
0. Use oxygen-gtk2
1. Install jack, qjacktcl and guitarix-gtk
2. start guitarix-git
3. in qjackctl, feed gx_head_amp with some audio source so that the vmeter starts to move
4. start xrestop
5. see that the number under Gcs is growing
6. Wait an hour (or trust me!), and the framerate will slow down.
7. set redmond theme for gtk apps, repeat from point 1 till 5, and see that with this theme is ok.
Comment 1 Hugo Pereira Da Costa 2013-04-08 15:02:19 UTC

*** This bug has been marked as a duplicate of bug 316066 ***
Comment 2 Antonio Orefice 2013-04-23 08:18:35 UTC
Are you sure this bug is a duplicate of  bug 316066?
I'm asking because 316066 is claimed as fixed, but i just tried oxygen-gtk2 from the git repo and guitarix is still leaking Gcs in xrestop.
Comment 3 Ruslan Kabatsayev 2013-04-23 08:57:50 UTC
Well, why verified duplicate then? :)
This was closed as dup because the bug 316066 symptoms looked quite the same as yours.
But, if you insist that it's not fixed, I'm reopening it.
Comment 4 Hugo Pereira Da Costa 2013-04-23 09:00:34 UTC
@Antonio
You are sure this is a leak and not simply the caches getting filled ? 
Namely: you can reproduce the conditions of comment #1, and not simply watch the gc count growing at the beginning of running the applications ? 
(the number of allocated GCs is expected to grow at the beginning and then eventually saturate)

Also: what's your cairo version ?
Comment 5 Hugo Pereira Da Costa 2013-04-23 09:32:43 UTC
after installing guitarix, my observations are:
GC: stable
Pixmaps: first increase then stable (around 1000, which, I think, is expected - will double check)
Misc: seams to be leaking. (always increasing, when, for instance I keep clicking on a menu entry)

No clue what Misc is. 
Will investigate.
Comment 6 Antonio Orefice 2013-04-23 09:40:16 UTC
I'm just trying; Gcs is growing constantly, now at 6900.
pxms is bteween 49 and 50; misc is stable.
my cairo version is 1.12.14 and it contains patches for nvidia blob that basically skips gradient acceleration because that driver slows down.
https://aur.archlinux.org/packages/cairo-nvidia/?setlang=it
At the end of this message GCs reached 16697.
I'll wait a while and will test plain cairo next ; will report back.
Comment 7 Hugo Pereira Da Costa 2013-04-23 09:48:05 UTC
I have cairo 1.12.12
what you report is clearly different from what I see here ... 
will be hard to debug.
Comment 8 Antonio Orefice 2013-04-23 09:58:15 UTC
I stopped watching when Gc reached about 30000.
Then i installed upstream cairo, same version without any patch, but things are the same.
I'm testing this git:
# git describe
v1.3.2.1-89-g76735ff

Does it includes your latest fix?
Comment 9 Antonio Orefice 2013-04-23 10:05:35 UTC
(In reply to comment #7)
> I have cairo 1.12.12
> what you report is clearly different from what I see here ... 
> will be hard to debug.

I tried cairo 1.12.12, same result.
Are you sure you connected an audio source to  gx_head_amp? if the meter doesn't move then Gcs are stable for me as well.
Comment 10 Antonio Orefice 2013-04-23 10:15:29 UTC
Update: if i run guitarix into Xnest, Gcs are stable, maybe this could help (?)
Comment 11 Hugo Pereira Da Costa 2013-04-23 10:16:47 UTC
v1.3.2.1-89-g76735ff <- yes includes patch.

"Are you sure you connected an audio source to gx_head_amp?"
mmm sorry, missed that from the "description". Trying now.
Comment 12 Hugo Pereira Da Costa 2013-04-23 10:18:08 UTC
"in qjackctl, feed gx_head_amp with some audio source so that the vmeter starts to move"
how do you do that ?
Comment 13 Hugo Pereira Da Costa 2013-04-23 10:26:44 UTC
ok. I sort of can reproduce the GC grow

what worries me is that it is triggered by something that is definitely not rendered by oxygen-gtk
(the vu-meters). 

also: (to Ruslan): another case of application being useless with our grab from empty areas. 

Bottomline: this is definitely not a duplicate of the other bug.
Comment 14 Hugo Pereira Da Costa 2013-04-23 10:28:52 UTC
... I wonder if it could be related to "compositing"
@Antonio
can you try recompile oxygen-gtk with ENABLE_INNER_SHADOWS_HACK set to 0 (see README) ? 
just to take that off the hook
Comment 15 Antonio Orefice 2013-04-23 10:38:35 UTC
(In reply to comment #12)
> "in qjackctl, feed gx_head_amp with some audio source so that the vmeter
> starts to move"
> how do you do that ?
you just start qjackctl first, then guitarix
then start mplayer this way: mplayer longaudiofile -ao jack -loop 0
then, while mplayer is playing, go into qjackctl gui and click on "Connect" button.
In the "Audio tab", you have a two side pane view, with mplayer on the left and gx_head_amp on the right.
click mplayer on the left, click gx_head_amp on the right, then click connect.
Now mplayer output goes into gx_head_amp and vmeter start to move.


Anyway, I investigated further by using Xephir instead of Xnest.
Xephir allows you to manually disable X extensions, and i found that as soon as i disable DAMAGE, i've no leak anymore.
Comment 16 Hugo Pereira Da Costa 2013-04-23 10:40:59 UTC
mmm. Here, using Raleigh as a widget style, GC's also seem to increase infinitly when the VU meters move ... You sure it is not the case on your side ?
Comment 17 Antonio Orefice 2013-04-23 10:53:09 UTC
(In reply to comment #16)
> mmm. Here, using Raleigh as a widget style, GC's also seem to increase
> infinitly when the VU meters move ... You sure it is not the case on your
> side ?
I changed theme using gtk-chtheme (i'm sure i changed it because the menus looks different, are you sure you are testing Raleigh?)

Anyway nope; with Raleigh it seems that Gcs grows for every Vmeter position, not indefinitely (eg: after it went from position 0% to position 100%, Gcs stops growing).

(In reply to comment #14)
> ... I wonder if it could be related to "compositing"

Nope, i tried with openbox (so no compositing at all) into the Real X server and Gcs still grows.
And sorry for my last message, it overlapped with yours.
My try with Xephir (with COMPOSE enabled but with DAMAGE disabled) shows stable Gcs.

(What the heck does it means Gcs!? )

> @Antonio
> can you try recompile oxygen-gtk with ENABLE_INNER_SHADOWS_HACK set to 0
> (see README) ? 
> just to take that off the hook

Going to try.
Comment 18 Antonio Orefice 2013-04-23 11:03:28 UTC
> > @Antonio
> > can you try recompile oxygen-gtk with ENABLE_INNER_SHADOWS_HACK set to 0
> > (see README) ? 
> > just to take that off the hook
> 
> Going to try.

Gcs are stable with ENABLE_INNER_SHADOWS_HACK set to 0 at compile time!
Comment 19 Antonio Orefice 2013-04-23 11:06:08 UTC
(In reply to comment #18)
> > > @Antonio
> > > can you try recompile oxygen-gtk with ENABLE_INNER_SHADOWS_HACK set to 0
> > > (see README) ? 
> > > just to take that off the hook
> > 
> > Going to try.
> 
> Gcs are stable with ENABLE_INNER_SHADOWS_HACK set to 0 at compile time!

#OXYGEN_DISABLE_INNER_SHADOWS_HACK=1 guitarix 
works as well.
Comment 20 Hugo Pereira Da Costa 2013-04-23 11:35:36 UTC
@Antonio
Comment 21 Hugo Pereira Da Costa 2013-04-23 11:37:16 UTC
argh
@antonio
yes: I can reproduce/confirm your last 3 comments.
that definitely helps; there is hope.
(at worse we can attempt to blacklist the guilty custom widget, both for inner_shadow, and for window grab)
Thanks for all the information. I'll come back to you when I have something new.
Comment 22 Antonio Orefice 2013-04-24 06:42:29 UTC
That's nothing compared to your work, thanks to you!

At least there is an easy workaround.
Comment 23 Justin Zobel 2021-03-09 23:58:25 UTC
Thank you for the bug report.

As this report hasn't seen any changes in 5 years or more, we ask if you can please confirm that the issue still persists.

If this bug is no longer persisting or relevant please change the status to resolved.
Comment 24 Antonio Orefice 2021-03-10 10:20:54 UTC
(In reply to Justin Zobel from comment #23)
> Thank you for the bug report.
> 
> As this report hasn't seen any changes in 5 years or more, we ask if you can
> please confirm that the issue still persists.
> 
> If this bug is no longer persisting or relevant please change the status to
> resolved.

Guitarix switched to gtk3, i think this bug can be killed without mercy.
Not sure how to close it, feel free to change the reason!
Thanks ;)