grail doesn't work properly if ownership comes for touch whose end is pending

Bug #1026962 reported by Daniel d'Andrada
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Grail
Fix Released
High
Daniel d'Andrada
grail (Ubuntu)
Fix Released
Undecided
Unassigned
Precise
Fix Released
High
Francis Ginther

Bug Description

[Impact]
Gestures must be accepted or rejected by the grail client. Gestures are held by grail until all the touches become "owned" by the grail client. Otherwise, the gestures are discarded automatically by grail. When this bug occurs, grail sees that a gesture is "owned", but does not send the gesture events to the client. The client doesn't react to the gesture, and thus never accepts or rejects the gesture. A side effect of this is that touchscreen input can "lock up".

[Test Case]
Steps to reproduce the problem:
 1 - a touch is part of some gesture and that touch is the only one whose ownership hasn't come yet
 2 - an update event with "pending end" property set comes for that touch
 3 - an ownership event comes for that touch

Expected outcome:
  the gesture that has this touch becomes owned and grail client finally receives all queued events from that gesture. That touch should be effectively considered as ended (from grail clients' point of view) even though its final End event didn't come yet from frame.

Actual outcome:
  the gesture that has this touch stays as unowned. grail client still receives no events from that gesture.

This is difficult to test for using human input. It is hard to cause this exact scenario. The best way to test is to simply use the new grail version and confirm that nothing unexpected happens.

[Regression Potential]
Small. The resolution mostly involves a bit of functional reordering. A new regression test case has been added for this issue. All previous functional and regression test cases continue to pass.

Areas of concern for testing is whether gestures continue to operate properly, and whether touchscreens become unresponsive after gestural or pointer interactions.

Related branches

Changed in utouch-grail:
assignee: nobody → Daniel d'Andrada (dandrader)
importance: Undecided → High
status: New → In Progress
Changed in utouch-grail:
status: In Progress → Fix Committed
Changed in utouch-grail:
milestone: none → 3.0.6
Changed in utouch-grail:
status: Fix Committed → Fix Released
affects: utouch-grail (Ubuntu) → grail (Ubuntu)
Changed in grail (Ubuntu):
status: New → Fix Released
description: updated
description: updated
Changed in grail (Ubuntu Precise):
status: New → In Progress
importance: Undecided → High
assignee: nobody → Francis Ginther (fginther)
Revision history for this message
Adam Conrad (adconrad) wrote : Please test proposed package

Hello Daniel, or anyone else affected,

Accepted grail into precise-proposed. The package will build now and be available at http://launchpad.net/ubuntu/+source/grail/3.0.6-0ubuntu0.12.04.01 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please change the bug tag from verification-needed to verification-done. If it does not, change the tag to verification-failed. In either case, details of your testing will help us make a better decision.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance!

Changed in grail (Ubuntu Precise):
status: In Progress → Fix Committed
tags: added: verification-needed
Revision history for this message
Daniel d'Andrada (dandrader) wrote :

Verification was done by running the regression test for this bug, PendingEndImpedesGestures, against the libgrail 3.0.6-0ubuntu0.12.04.01 provided by precise-proposed. Marking as verified since that regression test ended successfully.

Also no outstanding regressions were noticed while performing unity gestures.

tags: added: verification-done
removed: verification-needed
Revision history for this message
Adam Conrad (adconrad) wrote : Update Released

The verification of this Stable Release Update has completed successfully and the package has now been released to -updates. Subsequently, the Ubuntu Stable Release Updates Team is being unsubscribed and will not receive messages about this bug report. In the event that you encounter a regression using the package from -updates please report a new bug using ubuntu-bug and tag the bug report regression-update so we can easily find any regresssions.

Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package grail - 3.0.6-0ubuntu0.12.04.01

---------------
grail (3.0.6-0ubuntu0.12.04.01) precise-proposed; urgency=low

  * Update debian/watch file for project rename
  * New upstream microrelease, bug fixes only
    - Fix documentation of UGSubscriptionPropertyTapThreshold
    - Properly process gestures that end before composition time (LP: #1020315)
    - Don't expand gestures that have physically ended already (LP: #1023397)
    - Correct behaviour when a touch ends before ownership is gained
      for it (LP: #1026962)
    - Fix include path for correct compilation of some tests
    - Rename project to "Grail"
    - Remove ChangeLog
  * Removed grail v2 symbols
    - Renamed libgrail1 package to libgrail5 due to SONAME bump
  * Rename package and update packaging (lp: #1029643)
    - Added Conflicts and Replaces clauses for libgrail-dev and grail-tools
  * Remove no longer necessary build depends on mtdev and evemu
    - Added 01-remove-mtdev-dependency.patch and
      02-remove-evemu-dependency.patch
 -- Francis Ginther <email address hidden> Mon, 27 Aug 2012 14:18:32 -0500

Changed in grail (Ubuntu Precise):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.