Pixbuf memory leak

Bug #260345 reported by Alessandro Decina
2
Affects Status Importance Assigned to Milestone
Moovida
Fix Released
Critical
Alessandro Decina

Bug Description

The widgets in our UI contain a lot of reference cycles. It's especially bad as most of the widgets contain pigment images. Images hold pixbuf memory until they are dellocated. In other words, between collection cycles, we keep in memory all the pixbuf memory that we allocate.

I have debugged and fixed all the cycles. The fixes are hackish in some places as I don't know UI code at all. The code is at lp:~alessandro.decina/pigment/widget_leaks and lp:~elisa-developers/elisa/widget_leaks.

Changed in elisa:
importance: Undecided → Medium
milestone: none → 0.5.7
yyoyo (lionel.martin)
Changed in elisa:
assignee: nobody → alessandro.decina
importance: Medium → Critical
status: New → In Progress
yyoyo (lionel.martin)
Changed in elisa:
milestone: 0.5.7 → 0.5.8
yyoyo (lionel.martin)
Changed in elisa:
milestone: 0.5.8 → 0.5.9
Revision history for this message
Guillaume Emont (guijemont) wrote :

There's a big functional regression with these patches applied. When switching view mode to switch to coverflow or grid mode, keyboard navigation breaks, and you get a lot of tracebacks (one is attached).

Revision history for this message
Guillaume Emont (guijemont) wrote :

Also, according to my measurements, latest upicek + latest pigment with these patches: still leaks.

Revision history for this message
Alessandro Decina (alessandro.decina) wrote :

No one said it fixes all the leaks. It's only about pixbufs.
A way to check that is to use the pigment branch above and start elisa with PGM_DEBUG=pgm_image:5.
Then enter and leave a level, the number (and ids) of the the pixbuf allocated and deallocated should match.

yyoyo (lionel.martin)
Changed in elisa:
milestone: 0.5.9 → 0.5.10
Revision history for this message
Loïc Molinari (loic.molinari) wrote :

The fix to free the GdkPixbuf after upload to video memory when an image is set from a file is committed in Pigment revision 1278 [1]. As it's been said by Guillaume it improves a lot the memory comsumption of Elisa, but it still remains a bunch of annoying memory leaks.

[1] https://code.fluendo.com/pigment/trac/changeset/1278

Revision history for this message
Loïc Molinari (loic.molinari) wrote :

The commit 1278 in Pigment for this bug changed the API, the signal PgmImage::pixbuf-loaded is now called PgmImage::file-loaded. You have to apply this attached patch.

yyoyo (lionel.martin)
Changed in elisa:
milestone: 0.5.10 → 0.5.11
Revision history for this message
yyoyo (lionel.martin) wrote :

I close this bug.

Others leaks are still in Elisa, we will open specific bugs for them.

Changed in elisa:
status: In Progress → Fix Released
status: Fix Released → Fix Committed
yyoyo (lionel.martin)
Changed in elisa:
milestone: 0.5.11 → 0.5.10
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Bug attachments

Remote bug watches

Bug watches keep track of this bug in other bug trackers.