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

Bug#901928: marked as done (xwayland: Firefox causes Xwayland to freeze and eat 100% CPU)



Your message dated Fri, 17 Aug 2018 22:42:03 +0200
with message-id <20180817204203.pveap4flshov7vor@localhost.localdomain>
and subject line Re: Bug#901928: xwayland: Firefox causes Xwayland to freeze and eat 100% CPU
has caused the Debian Bug report #901928,
regarding xwayland: Firefox causes Xwayland to freeze and eat 100% CPU
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.)


-- 
901928: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=901928
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: xwayland
Version: 2:1.20.0-2
Severity: normal
Tags: patch

Dear Maintainer,

while trying to watch the German TV show "Die Sendung mit der Maus" from
https://www.wdrmaus.de/aktuelle-sendung/, my Gnome desktop freezes.  I can
SSH into the machine and see that Xwayland eats 100% CPU.  The freeze can be
reproduced, it happened every time I accessed the above URL in Firefox 60.

I found a similar issue in the Red Hat bugzilla:
https://bugzilla.redhat.com/show_bug.cgi?id=1579067

The issue mentions patches in
https://patchwork.freedesktop.org/series/43618/.  I applied them to the
xorg-server source, built and installed the package and the freeze does not
happen anymore.

The patches are also attached to this bugreport.

Regards,
Tino

-- System Information:
Debian Release: buster/sid
  APT prefers unstable-debug
  APT policy: (500, 'unstable-debug'), (500, 'unstable'), (500, 'stable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.17.2 (SMP w/4 CPU cores)
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8), LANGUAGE=de_DE.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages xwayland depends on:
ii  libaudit1           1:2.8.3-1
ii  libbsd0             0.9.1-1
ii  libc6               2.27-3
ii  libdrm2             2.4.92-1
ii  libegl1             1.0.0+git20180308-3
ii  libepoxy0           1.4.3-1
ii  libgbm1             18.1.1-1
ii  libgcrypt20         1.8.3-1
ii  libgl1              1.0.0+git20180308-3
ii  libpixman-1-0       0.34.0-2
ii  libselinux1         2.8-1
ii  libsystemd0         238-5
ii  libwayland-client0  1.15.0-2
ii  libxau6             1:1.0.8-1+b2
ii  libxdmcp6           1:1.1.2-3
ii  libxfont2           1:2.0.3-1
ii  libxshmfence1       1.3-1
ii  xserver-common      2:1.20.0-2

xwayland recommends no packages.

xwayland suggests no packages.

-- debconf-show failed
diff --git a/glamor/glamor.c b/glamor/glamor.c
index d984d20f3..e2c74d17a 100644
--- a/glamor/glamor.c
+++ b/glamor/glamor.c
@@ -836,20 +836,20 @@ glamor_fds_from_pixmap(ScreenPtr screen, PixmapPtr pixmap, int *fds,
         glamor_get_screen_private(pixmap->drawable.pScreen);
 
     if (!glamor_priv->dri3_enabled)
-        return -1;
+        return 0;
     switch (pixmap_priv->type) {
     case GLAMOR_TEXTURE_DRM:
     case GLAMOR_TEXTURE_ONLY:
         if (!glamor_pixmap_ensure_fbo(pixmap, pixmap->drawable.depth == 30 ?
                                       GL_RGB10_A2 : GL_RGBA, 0))
-            return -1;
+            return 0;
         return glamor_egl_fds_from_pixmap(screen, pixmap, fds,
                                           strides, offsets,
                                           modifier);
     default:
         break;
     }
-    return -1;
+    return 0;
 }
 
 _X_EXPORT int
diff --git a/glamor/glamor.c b/glamor/glamor.c
index e2c74d17a..63f0947fa 100644
--- a/glamor/glamor.c
+++ b/glamor/glamor.c
@@ -865,17 +865,15 @@ glamor_fd_from_pixmap(ScreenPtr screen,
                                  &modifier);
 
     /* Pixmaps with multi-planes/modifier are not supported in this interface */
-    if (ret > 1) {
-        while (ret > 0)
-            close(fds[--ret]);
-        return -1;
+    if (ret == 1 && offsets[0] == 0) {
+        *stride = strides[0];
+        *size = pixmap->drawable.height * *stride;
+        return fds[0];
     }
 
-    ret = fds[0];
-    *stride = strides[0];
-    *size = pixmap->drawable.height * *stride;
-
-    return ret;
+    while (ret > 0)
+        close(fds[--ret]);
+    return -1;
 }
 
 _X_EXPORT int

--- End Message ---
--- Begin Message ---
Version: 2:1.20.0-3

On Tue, Jul 03, 2018 at 09:49:35AM -0400, Rann Bar-On wrote:
> This is fixed for me in 2:1.20.0-3

Closing this bug accordingly.

Thanks,
Andreas

--- End Message ---

Reply to: