Your message dated Sun, 11 Jul 2021 18:36:42 +0000
with message-id <[email protected]>
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 [email protected]
immediately.)
--
990903: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=990903
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
User: [email protected]
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 <[email protected]> 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 <[email protected]>
+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 ---