[Wayland-bugs] [Bug 759299] New: wayland: possible infinite loop in gdkwindow-wayland

gtk+ (GNOME Bugzilla) bugzilla at gnome.org
Thu Dec 10 05:08:29 PST 2015


https://bugzilla.gnome.org/show_bug.cgi?id=759299

            Bug ID: 759299
           Summary: wayland: possible infinite loop in gdkwindow-wayland
    Classification: Platform
           Product: gtk+
           Version: 3.19.x
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: Normal
         Component: Backend: Wayland
          Assignee: gtk-bugs at gtk.org
          Reporter: ofourdan at redhat.com
        QA Contact: gtk-bugs at gtk.org
                CC: rob at robster.org.uk, wayland-bugs at lists.freedesktop.org
     GNOME version: ---

Created attachment 317111
  --> https://bugzilla.gnome.org/attachment.cgi?id=317111&action=edit
Reproducer program

Summary:

The Wayland backend will enter an infinite loop in case of a cycle in transient
relationship (a transient for B and B transient for A).

Steps to reproduce:

1. Save and build the attached program
  $ gcc -o cycling-transient cycling-transient.c `pkg-config --libs --cflags
gtk+-3.0`

2. Execute the program under Wayland

Actual result:

The program wil lenter an infinite loop and take 100% CPU

Expected result:

The windows appear normally as in X11

Additional data:

This is because of the following code construct in gdkwindow-wayland.c

      while (window)
        {
          GdkWindowImplWayland *impl;
          impl = GDK_WINDOW_IMPL_WAYLAND (window->impl);
          window = impl->transient_for;
        }

As found in find_grab_input_seat(), get_popup_parent() or
gdk_wayland_window_get_fake_root_coords()

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/wayland-bugs/attachments/20151210/85a885ee/attachment.html>


More information about the wayland-bugs mailing list