[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#990903: marked as done (unblock: marco/1.24.1-3)



Your message dated Sun, 11 Jul 2021 18:36:42 +0000
with message-id <E1m2eJm-0002M7-7W@respighi.debian.org>
and subject line unblock marco
has caused the Debian Bug report #990903,
regarding unblock: marco/1.24.1-3
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
990903: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=990903
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock

Please unblock package marco

[ Reason ]
Recently, a longterm runtime flaw in marco has been hunted down and
resolved.

+  * debian/patches:
+    + Add 0002_tabpopup-fix-cairo-surface-leak.patch. Fix cairo surface leak in
+      src/ui/draw-workspace.c. (Closes: 990859).

-> This fixes marco freezing more and more until it has become unusable
after 1-2 weeks of runtime.

[ Impact ]
Marco regularly requires a restart (marco --replace) from the cmdline to keep a
session usable without this fix being applied.

[ Tests ]
Patch introspection, accepted upstream. Smoke test of the marco WM (nothing broken at first spot).

[ Risks ]
Window manager issues in MATE Desktop Environment which then would need a
follow-up upload.

[ Checklist ]
  [x] all changes are documented in the d/changelog
  [x] I reviewed all changes and I approve them
  [x] attach debdiff against the package in testing

[ Other info ]
None.

unblock marco/1.24.1-3
diff -Nru marco-1.24.1/debian/changelog marco-1.24.1/debian/changelog
--- marco-1.24.1/debian/changelog	2021-02-02 10:45:35.000000000 +0100
+++ marco-1.24.1/debian/changelog	2021-07-10 23:47:08.000000000 +0200
@@ -1,3 +1,11 @@
+marco (1.24.1-3) unstable; urgency=medium
+
+  * debian/patches:
+    + Add 0002_tabpopup-fix-cairo-surface-leak.patch. Fix cairo surface leak in
+      src/ui/draw-workspace.c. (Closes: 990859).
+
+ -- Mike Gabriel <sunweaver@debian.org>  Sat, 10 Jul 2021 23:47:08 +0200
+
 marco (1.24.1-2) unstable; urgency=medium
 
   [ Martin Wimpress ]
diff -Nru marco-1.24.1/debian/patches/0002_tabpopup-fix-cairo-surface-leak.patch marco-1.24.1/debian/patches/0002_tabpopup-fix-cairo-surface-leak.patch
--- marco-1.24.1/debian/patches/0002_tabpopup-fix-cairo-surface-leak.patch	1970-01-01 01:00:00.000000000 +0100
+++ marco-1.24.1/debian/patches/0002_tabpopup-fix-cairo-surface-leak.patch	2021-07-10 23:43:40.000000000 +0200
@@ -0,0 +1,51 @@
+From 8f204678be6d888ad1d2904e28af1aa9f2ad8e11 Mon Sep 17 00:00:00 2001
+From: Faidon Liambotis <paravoid@debian.org>
+Date: Sat, 3 Jul 2021 01:10:22 +0300
+Subject: [PATCH] tabpopup: fix cairo surface leak
+
+Commit 6b05da5e49996a2101edfd703dd3f5d91011d726 introduced a Cairo
+surface leak, by calling gdk_cairo_surface_create_from_pixbuf() but then
+never freeing those surfaces with cairo_surface_destroy().
+
+This manifested in leaking resources when switching between virtual
+desktops, as observed using xrestop ("Pxms" column), which made the
+desktop slow and ultimately unusable after a few weeks of uptime.
+
+Fixes #685
+---
+ src/ui/draw-workspace.c | 8 +++++++-
+ 1 file changed, 7 insertions(+), 1 deletion(-)
+
+diff --git a/src/ui/draw-workspace.c b/src/ui/draw-workspace.c
+index 8229abd00..fc8f82e55 100644
+--- a/src/ui/draw-workspace.c
++++ b/src/ui/draw-workspace.c
+@@ -131,6 +131,7 @@ draw_window (GtkWidget                   *widget,
+       /* If the icon is too big, fall back to mini icon. */
+       if (icon_w > (winrect->width - 2) || icon_h > (winrect->height - 2))
+         {
++          cairo_surface_destroy (icon);
+           icon = gdk_cairo_surface_create_from_pixbuf (win->mini_icon, scale, NULL);
+           if (icon)
+             {
+@@ -139,7 +140,10 @@ draw_window (GtkWidget                   *widget,
+ 
+               /* Give up. */
+               if (icon_w > (winrect->width - 2) || icon_h > (winrect->height - 2))
+-                icon = NULL;
++                {
++                  cairo_surface_destroy (icon);
++                  icon = NULL;
++                }
+             }
+         }
+     }
+@@ -155,6 +159,8 @@ draw_window (GtkWidget                   *widget,
+       cairo_clip (cr);
+       cairo_paint (cr);
+       cairo_restore (cr);
++
++      cairo_surface_destroy (icon);
+     }
+ 
+   gtk_style_context_get_color (style, state, &color);
diff -Nru marco-1.24.1/debian/patches/series marco-1.24.1/debian/patches/series
--- marco-1.24.1/debian/patches/series	2021-02-02 10:44:11.000000000 +0100
+++ marco-1.24.1/debian/patches/series	2021-07-10 23:43:47.000000000 +0200
@@ -1 +1,2 @@
 0001_no-shadows-for-side-tiled-windows.patch
+0002_tabpopup-fix-cairo-surface-leak.patch

--- End Message ---
--- Begin Message ---
Unblocked.

--- End Message ---

Reply to: