Mir

Nesting Mir servers with assorted display configs causes lockup

Bug #1516670 reported by Alan Griffiths
6
This bug affects 1 person
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_demo_standalone_render_surfaces --no-file --display-config single --host /run/user/32011/mir_socket
^C
(This last command can be repeated numerous times without problems manifesting)

$ bin/mir_demo_client_egltriangle

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

description: updated
Revision history for this message
Alan Griffiths (alan-griffiths) wrote :

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

Revision history for this message
Alan Griffiths (alan-griffiths) wrote :

Further experimentation suggests that this problem lies in the way that nested handles "clone" mode.

And the logic in mgn::Display::create_surfaces() certainly looks suspicious: it allocates a single display surface purportedly at the size of the bounding_rectangle but also fullscreen on the first output in the group (which will be resized by the host).

Changed in mir:
status: New → In Progress
assignee: nobody → Alan Griffiths (alan-griffiths)
importance: Undecided → Medium
milestone: none → 0.18.0
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :

Fix committed into lp:mir at revision None, scheduled for release in mir, milestone 0.18.0

Changed in mir:
status: In Progress → Fix Committed
tags: added: multimonitor nested
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (6.3 KiB)

This bug was fixed in the package mir - 0.18.0+16.04.20151216.1-0ubuntu1

---------------
mir (0.18.0+16.04.20151216.1-0ubuntu1) xenial; urgency=medium

  [ Kevin DuBois ]
  * New upstream release 0.18.0 (https://launchpad.net/mir/+milestone/0.18.0)
    - ABI summary: Only servers need rebuilding;
      . Mirclient ABI unchanged at 9
      . Mirserver ABI bumped to 36
      . Mircommon ABI unchanged at 5
      . Mirplatform ABI unchanged at 11
      . Mirprotobuf ABI unchanged at 3
      . Mirplatformgraphics ABI bumped to 7
      . Mirclientplatform ABI unchanged at 3
      . Mirinputplatform ABI added. Current version is 4
    - Enhancements:
      . Use libinput by default, and remove the android input stack
      . Add x11 input probing
      . Add alternative buffer swapping mechanism internally, available with
        --nbuffers 0
      . Automatic searching and selection of input platforms
      . Better support for themed cursors
      . Add demo client that uses multiple buffer streams in one surface
      . Improve fingerpaint demo to use touch pressure
      . Allow for configuring cursor acceleration, scroll speed and left or
        right handed mice
      . Allow for setting a base display configuration via client api
      . Various nested server multimonitor fixes and stability improvements
      . Remove DepthId from the SurfaceStack
    - Bug fixes:
      . Unit test failures in Display.* on Android (LP: #1519276)
      . Build failure due to missing dependency of client rpc code on mir
        protobuf (LP: #1518372)
      . Test failure in
        NestedServer.display_configuration_reset_when_application_exits
        (LP: #1517990)
      . CI test failures in various NesterServer tests (LP: #1517781)
      . FTBFS with -DMIR_PLATFORM=android (LP: #1517532)
      . Nesting Mir servers with assorted display configs causes lockup
        (LP: #1516670)
      . [testsfail] RaiseSurfaces.motion_events_dont_prevent_raise
        (LP: #1515931)
      . CI test failures in GLMark2Test (LP: #1515660)
      . Shells that inject user input events need to agree with the system
        compositor on the clock to use (LP: #1515515)
      . mircookie-dev is missing nettle-dev dependency (LP: #1514391)
      . Segmentation fault on server shutdown with mesa-kms (LP: #1513901)
      . mircookie requires nettle but libmircookie-dev doesn't depend on it
        (LP: #1513792)
      . libmircookie1 package does not list libnettle as dependency
        (LP: #1513225)
      . display configuration not reset when application exits (LP: #1511798)
      . unplugging external monitor causes nested server to throttle client
        (LP: #1511723)
      . 1/2 screen on external monitor (LP: #1511538)
      . unity-system-compositor crash, no interaction on windowed mode
        (LP: #1511095)
      . [regression] arm64/powerpc cross compile doesn't build any more
        (LP: #1510778)
      . mir_connection_get_egl_pixel_format() crashes if libEGL is loaded
        RTLD_LAZY (LP: #1510218)
      . [multimonitor] nested server surface positioning incorrect
        (LP: #1506846)
      . unity-system-compositor fails to build against lp:mir r3027
   ...

Read more...

Changed in mir (Ubuntu):
status: New → Fix Released
Kevin DuBois (kdub)
Changed in mir:
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.