Plainbox session can't be resumed if plugged in devices (e.g. mice) have been replugged/changed

Bug #1561821 reported by Kristin Chuang
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Checkbox Provider - Base
Fix Released
High
Sylvain Pineau
PlainBox (Toolkit)
Fix Released
High
Sylvain Pineau

Bug Description

[Steps to reproduce]
1. Boot up a system with a USB mouse connected to any USB port
2. Launch a plainbox session
3. Select a few cases to run, include cases input/clicking.* and input/pointing.* in the selection
4. Once a test case's instructions show up, CTRL+C to terminate the session
5. Unplug the USB mouse and replug it back in
6. Relaunch the plainbox session
7. Check if it resumes correctly

[Expected results]
Plainbox should resume correctly and user should be able to continue on from the last test case that was run

[Actual results]
Plainbox session resume failed, output of error message: http://paste.ubuntu.com/15485984/

* Plainbox-provider-checkbox version: 0.26~ppa2~ubuntu14.04.1

Related branches

Revision history for this message
Kristin Chuang (kristinchuang) wrote :

Here is another slightly different output of error message: http://paste.ubuntu.com/15492843/ .

Revision history for this message
Pierre Equoy (pieq) wrote :

We also tried to modify the job descriptions (for jobs `input/pointing...` and `input/clicking...`) to remove
     requires: device.path == '{path}'

It looks like it doesn't have any (good or bad) impact: the issue is still there.

Changed in plainbox-provider-checkbox:
status: New → Confirmed
importance: Undecided → High
Revision history for this message
Pierre Equoy (pieq) wrote :
Revision history for this message
Pierre Equoy (pieq) wrote :
Revision history for this message
Pierre Equoy (pieq) wrote :
Revision history for this message
Pierre Equoy (pieq) wrote :

Kristin provided the attachments above using
    udevadm info --export-db

udev1-port1: collected after plugging in keyboard to port 1
udev2-port2: collected after unplugging keyboard from port 1 > plug in keyboard to port 2
udev3-replug-port1: collected after unplugging keyboard from port 2 > replug in keyboard to port 1

As you can see, even when the same keyboard is replugged in the same port, the data changes.

Revision history for this message
Pierre Equoy (pieq) wrote :

Every time a USB input device is plugged, even if it's the same device and it's plugged in the same USB port, its path (e.g. '/devices/pci0000:00/0000:00:14.0/usb3/3-7/3-7:1.0/0003:06CB:2970.0004/input/input12') changes. More specifically, the last part (inputXX) changes.

In previous versions of the Checkbox provider, we were using this input number as part of the job ID, which avoided the "duplicate job id" error.

An option to do so with the new version of plainbox is to add a parameter (e.g. `input`) to the list of Udev properties available (name, bus, interface, product_id, etc.) for input devices. We could then use this parameter in the job ID and avoid the duplicate job ID exception.

Changed in plainbox-provider-checkbox:
assignee: nobody → Sylvain Pineau (sylvain-pineau)
milestone: none → 0.27
status: Confirmed → In Progress
Changed in plainbox:
status: New → In Progress
importance: Undecided → High
assignee: nobody → Sylvain Pineau (sylvain-pineau)
milestone: none → 0.27
Changed in plainbox-provider-checkbox:
status: In Progress → Fix Committed
Changed in plainbox:
status: In Progress → Fix Committed
Pierre Equoy (pieq)
Changed in plainbox:
status: Fix Committed → Fix Released
Changed in plainbox-provider-checkbox:
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.