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: [email protected]
          Reporter: [email protected]
        QA Contact: [email protected]
                CC: [email protected], [email protected]
     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.
_______________________________________________
wayland-bugs mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/wayland-bugs

Reply via email to