[regression] mir_demo_server refuses to quit on Ctrl+Alt+Backspace or Ctrl+C in its terminal (deadlock in DefaultInputDeviceHub::add_device)
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
| Mir |
Fix Released
|
High
|
Alan Griffiths | |
| 0.26 |
Invalid
|
High
|
Unassigned | |
| mir (Ubuntu) |
Undecided
|
Unassigned |
Bug Description
mir_demo_server refuses to quit on Ctrl+Alt+Backspace
It knows it should be quitting but doesn't, even when I try multiple times:
[2017-02-02 12:13:12.670302] mirserver: Stopping
[2017-02-02 12:13:13.070166] mirserver: Stopping
[2017-02-02 12:13:13.302165] mirserver: Stopping
[2017-02-02 12:13:13.510186] mirserver: Stopping
[2017-02-02 12:13:13.686165] mirserver: Stopping
[2017-02-02 12:13:13.870160] mirserver: Stopping
[2017-02-02 12:13:14.062330] mirserver: Stopping
[2017-02-02 12:13:14.254349] mirserver: Stopping
[2017-02-02 12:13:14.438335] mirserver: Stopping
[2017-02-02 12:13:14.622329] mirserver: Stopping
[2017-02-02 12:13:14.830312] mirserver: Stopping
Similarly, Ctrl+C no longer works:
[2017-02-10 11:16:18.643952] mirserver: Logical position +0+0
[2017-02-10 11:16:18.643955] mirserver: Output 52: HDMI-A disconnected
^C^C^C^
Related branches
- Andreas Pokorny (community): Approve on 2017-02-28
- Alan Griffiths: Abstain on 2017-02-28
- Daniel van Vugt: Approve (manual testing) on 2017-02-28
- Mir CI Bot: Approve (continuous-integration) on 2017-02-27
-
Diff: 207 lines (+68/-50)2 files modifiedsrc/server/input/default_input_device_hub.cpp (+65/-48)
src/server/input/default_input_device_hub.h (+3/-2)
Changed in mir: | |
importance: | Undecided → Medium |
Daniel van Vugt (vanvugt) wrote : Re: mir_demo_server refuses to quit on Ctrl+Alt+Backspace or Ctrl+C in its terminal | #1 |
summary: |
- mir_demo_server refuses to quit on Ctrl+Alt+Backspace + mir_demo_server refuses to quit on Ctrl+Alt+Backspace or Ctrl+C in its + terminal |
Changed in mir: | |
milestone: | none → 1.0.0 |
tags: | added: regression |
description: | updated |
summary: |
- mir_demo_server refuses to quit on Ctrl+Alt+Backspace or Ctrl+C in its - terminal + [regression] mir_demo_server refuses to quit on Ctrl+Alt+Backspace or + Ctrl+C in its terminal |
Changed in mir: | |
status: | New → Triaged |
Alan Griffiths (alan-griffiths) wrote : Re: [regression] mir_demo_server refuses to quit on Ctrl+Alt+Backspace or Ctrl+C in its terminal | #2 |
The problem is that the main loop never exists. I'm guessing we now have a source that never shuts up.
Changed in mir: | |
assignee: | nobody → Alan Griffiths (alan-griffiths) |
Alan Griffiths (alan-griffiths) wrote : | #3 |
This is the cause...
#0 __lll_lock_wait () at ../sysdeps/
#1 0x00007f08e1a65ebd in __GI___
#2 0x00007f08e017e8e3 in __gthread_
at /usr/bin/
#3 0x00007f08e017eaa5 in std::mutex::lock (this=0x2823fd0)
at /usr/bin/
#4 0x00007f08e01a387c in std::unique_
at /usr/bin/
#5 0x00007f08e019ea44 in std::unique_
at /usr/bin/
#6 0x00007f08e0211697 in mir::input:
0x7f08c8014f80) at /home/alan/
****************>>> std::unique_
#7 0x00007f08e0212820 in mir::input:
at /home/alan/
#8 0x00007f08e02126d2 in std::_Function_
__args=<unknown type in cmake-build-
at /usr/bin/
#9 0x00007f08e020cef8 in std::function<void (mir::input:
(this=
at /usr/bin/
#10 0x00007f08e020b11b in mir::input:
conf=...) at /home/alan/
#11 0x00007f08e091988b in mir::examples:
warning: RTTI symbol not found for class 'std::_
std::shared_ptr (count 3, weak 0) 0x7f08c8014f80)
at /home/alan/
#12 0x00007f08e0211136 in mir::input:
Daniel van Vugt (vanvugt) wrote : | #4 |
Cool. I had noticed some server threads hung/deadlocked there recently and not realised it was this bug.
Changed in mir: | |
status: | Triaged → In Progress |
Daniel van Vugt (vanvugt) wrote : | #5 |
Bumped to High since Alan found it's a general deadlock in the server.
Changed in mir: | |
importance: | Medium → High |
summary: |
[regression] mir_demo_server refuses to quit on Ctrl+Alt+Backspace or - Ctrl+C in its terminal + Ctrl+C in its terminal (deadlock in DefaultInputDeviceHub::add_device) |
Mir CI Bot (mir-ci-bot) wrote : | #6 |
Fix committed into lp:mir at revision None, scheduled for release in mir, milestone 1.0.0
Changed in mir: | |
status: | In Progress → Fix Committed |
Changed in mir (Ubuntu): | |
status: | New → Invalid |
Launchpad Janitor (janitor) wrote : | #7 |
This bug was fixed in the package mir - 0.27.0+
---------------
mir (0.27.0+
[ Daniel van Vugt ]
* New upstream release 0.27.0 (https:/
- ABI summary:
. mirclient ABI unchanged at 9
. mirserver ABI bumped to 44
. mircommon ABI unchanged at 7
. mirplatform ABI bumped to 61
. mirprotobuf ABI unchanged at 3
. mirplatformgraphics ABI bumped to 13
. mirclientplatform ABI unchanged at 5
. mirinputplatform ABI bumped to 7
. mircore ABI unchanged at 1
- Enhancements:
. Mostly groundwork required to support major enhancements coming in
future Mir versions.
. Removed android-input and eliminated the entire "3rd_party/" subtree.
Now the Mir source tree contains original code only.
. Added mir_prompt_
. mirout: Added load and save options for keeping display configs
on disk.
. mirout: Added "--" support for applying configuration changes under
Unity8.
. Fixed failure of DRM hardware cursor {hide(); show(image);}
. Added server option: "--cursor software" (MIR_SERVER_
. Added letterboxing/black bars support to the GL renderer in preparation
for generic output cloning.
. Added client API for getting the logical size of an output.
. Migrated MirCookie to use SHA-256.
. Ensure RealKMSOutputCo
state.
. Added support for drag-and-drop.
. Lots of other client API enhancements.
. Minor clean-ups, optimizations and dead code removal.
. Added support for building on Ubuntu 17.10 artful.
. Update example code to use undeprecated API.
. mesa-kms: Support hardware cursors in hybrid setups.
. Rework and publish the graphics platform APIs
- Bugs fixed:
. [enhancement] Make able to get version information from client /
server APIs (LP: #1195540)
. Touch screen coordinates don't rotate with the screen (LP: #1349660)
. Subpixel order not included in Mir display information (LP: #1393578)
. [enhancement] Missing client API for relative surface movement (e.g.
dragging client-decorated windows) (LP: #1420334) . Mir does not reset
key states when paused or resumed (modifiers get stuck after VT
switching) (LP: #1536279)
. NBS never uses mc::MultiMonito
only a single monitor is plugged in (LP: #1561418)
. Inconsistent behaviour of Num Lock (LP: #1588237)
. A scaled (not panned or clipped) mirror/clone mode is desired
(LP: #1639226)
. Rotating an output left or right without restarting the
compositor distorts the image (LP: #1643488)
. support display scaling slider in unity8 (LP: #1645372)
. [ FAILED ] NestedInputWith
. [ FAILED ] NestedInputWith
ho...
Changed in mir (Ubuntu): | |
status: | Invalid → Fix Released |
Changed in mir: | |
status: | Fix Committed → Fix Released |
Bisected. The regression started here:
------- ------- ------- ------- ------- ------- ------- ------- ---- n_apply_ input_configura tion and mir_connection_ set_base_ input_configura tion
revno: 4002 [merge]
author: Andreas Pokorny <email address hidden>
committer: Tarmac
branch nick: development-branch
timestamp: Wed 2017-02-01 17:32:36 +0000
message:
mir_connectio
This adds two new mirclient functions to configure input devices. The base input configuration behaves like the base display configuration.
.
Approved by Alan Griffiths, mir-ci-bot. ------- ------- ------- ------- ------- ------- ------- ----
-------