Mir

Activity log for bug #1238417

Date Who What changed Old value New value Message
2013-10-11 05:31:27 Christopher Lee bug added bug
2013-10-11 05:42:56 Daniel van Vugt mir: importance Critical High
2013-10-11 05:43:49 Daniel van Vugt mir: status Confirmed New
2013-10-11 07:43:33 Thomi Richards mir: importance High Critical
2013-10-11 07:45:19 Thomi Richards mir: status New Confirmed
2013-10-11 08:40:00 Michał Sawicz bug added subscriber Michał Sawicz
2013-10-11 10:02:33 Launchpad Janitor branch linked lp:~saviq/unity8/workaround-lp1238417
2013-10-11 15:55:07 kevin gunn mir: status Confirmed Fix Committed
2013-10-11 21:14:13 Michał Sawicz mir: status Fix Committed Confirmed
2013-10-23 05:58:41 Daniel van Vugt bug task added unity8
2013-10-23 05:58:57 Daniel van Vugt unity8: status New Fix Committed
2013-10-23 05:58:57 Daniel van Vugt unity8: assignee Michał Sawicz (saviq)
2013-10-23 07:18:52 Daniel van Vugt mir: status Confirmed Incomplete
2013-10-24 16:37:03 Michael Zanetti tags doesnt-need-test
2013-12-20 09:25:46 Michał Sawicz unity8: status Fix Committed Fix Released
2013-12-20 09:26:13 Michał Sawicz bug task added autopilot
2014-01-07 20:59:24 kevin gunn description Unity does not process events from evdev device created before unity is restarted (i.e. in autopilot tests) Brief: In an autopilot test if you have a touch device object, launch unity, do some tapping/dragging, stop unity, start it again the same created device will have no effect on the new unity. (i.e. attempt to swipe greeter will fail) * To reproduce using python shell: (Have 2 terminals, both on the device(ssh/adb shell); one for python shell the other for starting/stopping unity) 1. Make sure unity8 is running on the device 2. In the python shell execute: from autopilot.input import Touch touch = Touch.create() touch.drag(717,669,144,669) # assuming maguro, but some movement will happen regardless 3. You will see the greeter disappear/dash move/some movement. 4. Restart unity (without restarting the python shell) stop unity8 start unity8 5. Back in the python terminal, re-execute the drag: touch.drag(717,669,144,669) 6. Nothing will happen to unity (no greeter movement etc.) 7. (Work around) Re-create the device to get movement back (in python terminal): from autopilot.input import _uinput _uinput._touch_device = _uinput.create_touch_device() touch.drag(717,669,144,669) # Movement happens again. 7b. Or you can kill the python shell and do the pythno steps from scratch, but that just does `_uinput.create_touch_device()` again * To reproduce using autopilot: Any test after the first fails due to input not being processed by the evdev device that was created before unity8 is started. # Run at least 2 tests: $ autopilot run -v unity8.shell.tests.test_hud.TestHud.test_show_hud_appears unity8.shell.tests.test_hud.TestHud.test_hide_hud_dragging The second test will fail due to failing to swipe the greeter away. * Extra details: If I add extra logging: $ initctl set-env MIR_SERVER_INPUT_REPORT=log $ initctl set-env MIR_SERVER_LEGACY_INPUT_REPORT=log I see details in the logs (~/.cache/upstart/unity8.log) when the drag is attempted: ... [II, input] Received event (when, type, code, value) from kernel: (1381464336335967000ns, 3, 54, 621) [II, input] Received event (when, type, code, value) from kernel: (1381464336335967000ns, 0, 0, 0) [II, input] Published motion event (seq_id, event_time) to fd 65: (305, 1381464336335967000) [II, input] Received event finished (seq_id) from fd 65: 305 ... But nothing happens on the screen (I am able to manually swipe the screen). * Workaround A work around is to add this to the test setup: from autopilot.input import _uinput _uinput._touch_device = _uinput.create_touch_device() Which forces the creation of a new device for this specific test run and instance of unity. Unity does not process events from evdev device created before unity is restarted (i.e. in autopilot tests) Brief: In an autopilot test if you have a touch device object, launch unity, do some tapping/dragging, stop unity, start it again the same created device will have no effect on the new unity. (i.e. attempt to swipe greeter will fail) * To reproduce using python shell: (Have 2 terminals, both on the device(ssh/adb shell); one for python shell the other for starting/stopping unity) 1. Make sure unity8 is running on the device 2. In the python shell execute: from autopilot.input import Touch touch = Touch.create() touch.drag(717,669,144,669) # assuming maguro, but some movement will happen regardless 3. You will see the greeter disappear/dash move/some movement. 4. Restart unity (without restarting the python shell) stop unity8 start unity8 5. Back in the python terminal, re-execute the drag: touch.drag(717,669,144,669) 6. Nothing will happen to unity (no greeter movement etc.) 7. (Work around) Re-create the device to get movement back (in python terminal): from autopilot.input import _uinput _uinput._touch_device = _uinput.create_touch_device() touch.drag(717,669,144,669) # Movement happens again. 7b. Or you can kill the python shell and do the pythno steps from scratch, but that just does `_uinput.create_touch_device()` again * To reproduce using autopilot: Any test after the first fails due to input not being processed by the evdev device that was created before unity8 is started. # Run at least 2 tests: $ autopilot run -v unity8.shell.tests.test_hud.TestHud.test_show_hud_appears unity8.shell.tests.test_hud.TestHud.test_hide_hud_dragging The second test will fail due to failing to swipe the greeter away. * Extra details: If I add extra logging: $ initctl set-env MIR_SERVER_INPUT_REPORT=log $ initctl set-env MIR_SERVER_LEGACY_INPUT_REPORT=log I see details in the logs (~/.cache/upstart/unity8.log) when the drag is attempted: ... [II, input] Received event (when, type, code, value) from kernel: (1381464336335967000ns, 3, 54, 621) [II, input] Received event (when, type, code, value) from kernel: (1381464336335967000ns, 0, 0, 0) [II, input] Published motion event (seq_id, event_time) to fd 65: (305, 1381464336335967000) [II, input] Received event finished (seq_id) from fd 65: 305 ... But nothing happens on the screen (I am able to manually swipe the screen). * Workaround A work around is to add this to the test setup:         from autopilot.input import _uinput         _uinput._touch_device = _uinput.create_touch_device() Which forces the creation of a new device for this specific test run and instance of unity. related https://bugs.launchpad.net/mir/+bug/1237784
2014-01-09 21:56:38 Thomi Richards autopilot: status New Invalid
2014-01-15 12:31:00 Daniel d'Andrada mir: assignee Daniel d'Andrada (dandrader)
2014-01-15 19:01:46 Daniel d'Andrada mir: status Incomplete In Progress
2014-01-16 03:41:22 Daniel van Vugt mir: milestone 0.1.5
2014-01-16 20:37:27 Launchpad Janitor branch linked lp:~dandrader/mir/pressure_lp1238417
2014-01-17 12:03:15 PS Jenkins bot mir: status In Progress Fix Committed
2014-01-17 13:27:42 Launchpad Janitor branch linked lp:~dandrader/mir/trunk_pressure_lp1238417
2014-01-23 08:16:57 Daniel van Vugt mir: importance Critical High
2014-02-10 02:00:55 Daniel van Vugt bug task added mir (Ubuntu)
2014-02-10 02:02:34 Daniel van Vugt mir (Ubuntu): importance Undecided High
2014-02-10 02:02:34 Daniel van Vugt mir (Ubuntu): status New Fix Released
2014-02-10 07:17:59 Daniel van Vugt mir: status Fix Committed Fix Released
2014-02-13 03:58:23 Launchpad Janitor branch linked lp:ubuntu/trusty-proposed/mir
2017-03-13 23:10:32 Michał Sawicz unity8 (Ubuntu Vivid): status New Fix Released
2017-03-13 23:10:32 Michał Sawicz unity8 (Ubuntu Vivid): assignee Michał Sawicz (saviq)
2017-03-13 23:10:37 Michał Sawicz bug task deleted unity8