Nesting Mir servers with assorted display configs causes lockup
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Mir |
Fix Released
|
Medium
|
Alan Griffiths | ||
mir (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
Using a mako, with external display attached, flashed with ubuntu-pd and Mir trunk + a few branches:
lp:~alan-griffiths/mir/fix-1463873
lp:~alan-griffiths/mir/fullscreen-sticks
lp:~alan-griffiths/mir/name-nested-display-for-output
lp:~alan-griffiths/mir/more-detailed-log-from-shell-report
(The latter three are probably irrelevant, the first one is needed for the scenario to work well enough to see this error.)
$ sudo stop lightdm
$ cd mir/build
$ bin/mir_demo_server --window-manager system-compositor --display-config sidebyside --file /tmp/mir_socket
(in a new ssh session)
$ cd mir/build
$ bin/mir_demo_server --host /tmp/mir_socket --display-config clone
(in a new ssh session)
$ cd mir/build
$ bin/mir_
^C
(This last command can be repeated numerous times without problems manifesting)
$ bin/mir_
The triangle is displayed, but doesn't rotate.
In the second (nested) session there's an error:
[1447687623.835199] <ERROR> MirBufferStream: Error processing incoming buffer error registering graphics buffer for client use
Neither the client, not nested server respond to ^C until the host server is stopped with ^C.
Related branches
- PS Jenkins bot (community): Approve (continuous-integration)
- Alexandros Frantzis (community): Needs Information
- Andreas Pokorny (community): Approve
- Alberto Aguirre: Pending requested
-
Diff: 192 lines (+78/-37)3 files modifiedsrc/server/graphics/nested/display.cpp (+67/-30)
src/server/graphics/nested/display.h (+2/-0)
tests/acceptance-tests/test_nested_mir.cpp (+9/-7)
description: | updated |
Changed in mir: | |
status: | New → In Progress |
assignee: | nobody → Alan Griffiths (alan-griffiths) |
importance: | Undecided → Medium |
milestone: | none → 0.18.0 |
tags: | added: multimonitor nested |
Changed in mir: | |
status: | Fix Committed → Fix Released |
The corresponding scenario on mesa-kms seems to work OK:
$ sudo bin/mir_demo_server --window-manager system-compositor --display-config sidebyside --file /tmp/mir_socket --vt 1 --arw-file
$ bin/mir_demo_server --host /tmp/mir_socket --display-config clone --vt -1
$ bin/mir_ demo_standalone _render_ surfaces --no-file --display-config single --host /run/user/ 1000/mir_ socket
^C
$ bin/mir_ demo_client_ egltriangle