<html>
    <head>
      <base href="https://bugs.freedesktop.org/" />
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Priority</th>
          <td>medium
          </td>
        </tr>

        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW --- - [bug] drm, evdev: shell grab start does not end"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=62368">62368</a>
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>wayland-bugs@lists.freedesktop.org
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>[bug] drm, evdev: shell grab start does not end
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>normal
          </td>
        </tr>

        <tr>
          <th>Classification</th>
          <td>Unclassified
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>All
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>min2@mail.mailinator.com
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>Other
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>unspecified
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>weston
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>Wayland
          </td>
        </tr></table>
      <p>
        <div>
        <pre>On DRM backend, with heavy system/compositor load, the surfaces dragging or
rotating, the pointer is locked even after releasing all the buttons.

Steps to reproduce:
1. Use DRM backend with evdev
2. Run 25 mpv's to stress the system
3. Move or rotate some surfaces

Actual result:
Grab does not terminate, even after releasing all the buttons.

Expected result:
The grab should terminate when releasing all the buttons.

Under heavy system load, on DRM with evdev backend, the button key press event
is processed 2 times, or not at all.
This causes the pointer->button_count in compositor.c: notify_button() to
randomly overflow to UINT_MAX, or gets stuck in 1 when no button is pressed.

Configuration:

atk:                 ATK_2_7_4-3-g689619a
cairo:               1.11.2
drm:                 libdrm-2.4.42-4-g41fc2cc
fontconfig:          2.10.91-19-gfb3b410
glib:                2.35.4-59-g82f2ee9
gtk+:                3.7.6-78-g18938b7
kmscon:              kmscon-7-27-ge4d2526
libxcb:              1.9
libxkbcommon:        xkbcommon-0.2.0-28-g852d920
mesa:                snb-magic-14773-g4154ac0
mtdev:               e5eb274
pango:               1.32.6-5-g4701908
pixman:              pixman-0.28.0-47-g480dd38
wayland:             1.0.1-32-g8f1386f
weston:              1.0.0-356-ge7144fd
xf86-video-intel:    2.19.0-27-g1c65dd7
xf86-video-wlshm:    af6618a
xserver:             xorg-server-1.12.2-104-g5569c0e</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>