RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.
Bug 1735382 - [abrt] [faf] gnome-shell: raise(): /usr/bin/gnome-shell killed by 6
Summary: [abrt] [faf] gnome-shell: raise(): /usr/bin/gnome-shell killed by 6
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 8
Classification: Red Hat
Component: mutter
Version: 8.1
Hardware: Unspecified
OS: Unspecified
high
high
Target Milestone: rc
: 8.0
Assignee: Jonas Ådahl
QA Contact: Desktop QE
URL: https://faf.lab.eng.brq.redhat.com/fa...
Whiteboard:
Depends On:
Blocks: 1678350 1737326
TreeView+ depends on / blocked
 
Reported: 2019-07-31 21:02 UTC by Vladimir Benes
Modified: 2020-11-14 07:50 UTC (History)
6 users (show)

Fixed In Version: mutter-3.32.2-9.el8
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2019-11-05 22:14:45 UTC
Type: Bug
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)
backtrace (44.38 KB, text/plain)
2019-08-01 13:58 UTC, Michal Odehnal
no flags Details
mutter fix that seems to work (1.95 KB, patch)
2019-08-01 20:18 UTC, Ray Strode [halfline]
no flags Details | Diff
gtk fix (989 bytes, patch)
2019-08-01 20:22 UTC, Ray Strode [halfline]
no flags Details | Diff


Links
System ID Private Priority Status Summary Last Updated
GNOME Gitlab GNOME/gtk/merge_requests/1038 0 None None None 2019-08-01 20:41:21 UTC
GNOME Gitlab GNOME/mutter/merge_requests/710 0 None None None 2019-08-01 20:45:26 UTC
GNOME Gitlab GNOME/mutter/merge_requests/715 0 None None None 2019-08-05 19:03:07 UTC
Red Hat Product Errata RHSA-2019:3553 0 None None None 2019-11-05 22:14:57 UTC

Description Vladimir Benes 2019-07-31 21:02:16 UTC
This bug has been created based on an anonymous crash report requested by the package maintainer.

Report URL: https://faf.lab.eng.brq.redhat.com/faf/reports/bthash/1edc443641fd9cbf1a80af69b6552bfd4df6756c/

we now see more than 80 occurences.

Comment 2 Michal Odehnal 2019-08-01 13:58:33 UTC
Created attachment 1597469 [details]
backtrace

Comment 3 Ray Strode [halfline] 2019-08-01 19:16:33 UTC
This bug has a number of layers to it.  I don't know why it just started crashing, though.

The issue is triggered by gnome-control-center's 512x512 icon.

icons can be attached to a window in one of two ways:

1) _NET_WM_ICON property on the window as raw pixel data
2) a separate pixmap pointed to in the WM_HINTS property

normally the first is preferred over the second.

Unfortunately gtk has a bug in it making the first path get skipped if there's a 512 icon.  the code is here:

   │3868      l = pixbufs;
   │3869      size = 0;
   │3870      n = 0;
   │3871      while (l)
   │3872        {
   │3873          pixbuf = l->data;
   │3874          g_return_if_fail (GDK_IS_PIXBUF (pixbuf));
   │3875
   │3876          width = gdk_pixbuf_get_width (pixbuf);
   │3877          height = gdk_pixbuf_get_height (pixbuf);
   │3878
   │3879          /* silently ignore overlarge icons */
   │3880          if (size + 2 + width * height > GDK_SELECTION_MAX_SIZE(display))
   │3881            break;
   │3882                                                                          
   │3883          n++;
   │3884          size += 2 + width * height;
   │3885
   │3886          l = l->next;
   │3887        }

you can see on line 3879 that it's trying to ignore icons that would be too big to fit in the property. a single 512x512 icon is too big to fit.
But line 3881 breaks out of the loop entirely; the apparent assumption is the list of pixbufs is sorted from lowest size to biggest size.

But the list isn't sorted at all!  It's just the result of a hash table turned to an array turned to a list. For whatever reason, the 512 icon
is now returned as the first pixbuf, meaning no further icons get processed and the _NET_WM_ICON isn't set at all.

This means we fall back to using a pixmap specified by WM_HINTS but that pixmap uses the same color depth as the root window.  On this cirrus machine,
we're getting a 16bpp window.

This wouldn't be a problem but mutter only supports 24bit and 32bit pixmaps for WM_HINTS icons:

   │291     static int
   │292     standard_pict_format_for_depth (int depth)
   │293     {
   │294       switch (depth)
   │295         {
   │296         case 1:
   │297           return PictStandardA1;
   │298         case 24:
   │299           return PictStandardRGB24;
   │300         case 32:
   │301           return PictStandardARGB32;
   │302         default:
   │303           g_assert_not_reached ();
   │304         }
   │305       return 0;
   │306     }

and so we're crashing.

So on the mutter side we can either skip loading the icon if it's 16bpp or support loading 16bpp icons (might be as simple as (if (depth == 16) depth = 32; not sure).
on the gtk side we can just sorting the icon list from smallest size to biggest size.

Comment 4 Ray Strode [halfline] 2019-08-01 20:18:09 UTC
Created attachment 1599288 [details]
mutter fix that seems to work

I just took a stab at the obvious mutter fix. I figured it would either crash, work, or make a black icon.  Seems to work.

Comment 5 Ray Strode [halfline] 2019-08-01 20:22:47 UTC
Created attachment 1599336 [details]
gtk fix

this gtk fix also works.

Comment 6 Ray Strode [halfline] 2019-08-05 18:34:59 UTC
note the mutter fix for this bug caused bug 1737326

Comment 9 errata-xmlrpc 2019-11-05 22:14:45 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHSA-2019:3553


Note You need to log in before you can comment on or make changes to this bug.