Mir

Server::override_the_coordinate_translator() cannot be effectively used downstream

Bug #1641166 reported by Alan Griffiths
14
This bug affects 3 people
Affects Status Importance Assigned to Milestone
Mir
Fix Released
High
Alan Griffiths
0.25
Fix Released
High
Alan Griffiths
mir (Ubuntu)
Fix Released
Undecided
Unassigned

Bug Description

Being able to switch the debug APIs on at runtime is needed by Unity8 to address autopilot issues.

According to the documentation in include/server/mir/scene/coordinate_translator.h the CoordinateTranslator interface can be implemented by throwing std::runtime_error. Vis:

     * \note It is acceptable for this call to unconditionally throw a std::runtime_error.
     * It is not required for normal functioning of the server or clients; clients which
     * use the debug extension will receive an appropriate failure notice.

However, the relevant code in src/server/frontend/protobuf_message_processor.cpp is:

            try
            {
                ...
            }
            catch (mir::frontend::unsupported_feature const&)
            {
                ...
            }

As mir::frontend::unsupported_feature subclasses std::runtime_error this does not correctly handle std::runtime_error.

Further, as unsupported_feature is not a public class, this can't be thrown by downstream code. (Although I suspect throwing an identical class with the same name will trick the RTTI implementation.)

Related branches

Revision history for this message
Mir CI Bot (mir-ci-bot) wrote :

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

Changed in mir:
status: In Progress → Fix Committed
Changed in mir:
milestone: none → 0.26.0
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (5.7 KiB)

This bug was fixed in the package mir - 0.25.0+17.04.20161203-0ubuntu1

---------------
mir (0.25.0+17.04.20161203-0ubuntu1) zesty; urgency=medium

  * New upstream release 0.25.0 (https://launchpad.net/mir/+milestone/0.25.0)
    - ABI summary:
      . mirclient ABI unchanged at 9
      . mirserver ABI bumped to 42
      . mircommon ABI bumped to 7
      . mirplatform ABI bumped to 14
      . mirprotobuf ABI unchanged at 3
      . mirplatformgraphics ABI bumped to 11
      . mirclientplatform ABI unchanged at 5
      . mirinputplatform ABI bumped to 6
      . mircore ABI added, at version 1
    - Enhancements:
      . Added pointer confinement support
      . Identify Raspberry Pi output types correctly
      . Added dead key and compose key support
      . Added gamma support for KMS hardware
      . Added yakkety and zesty gcc-6 support
      . Added surface passthrough support for fullscreen clients of nested
        servers
      . Introduced a new library `libmircore'
      . Began migrating from Protobuf to Cap'n Proto starting with events
      . Began support for VirtualBox (servers now start instead of crashing
        but full support for GL clients is still missing)
      . Began support for high precision frame timing, implemented for the
        KMS, Android and X11 backends so far
      . Added --display-report support for the X11 backend
      . Improved reliability of `mirvanity' latency test tool
      . Moved to using the CSS cursor naming scheme internally, although
        the old symbolic indentifiers remain unchanged and still work
      . Added refresh rate to MirSurfaceOutputEvent
      . Many improvements to automated test quality and coverage
      . Smoother desktop zoom using mir_proving_server (Super + two fingers)
    - Bugs fixed:
      . FTBFS On Zesty: invalid use of
        'struct native_handle' (LP: #1638774)
      . libmirclient-debug-extension-dev install debug/surface.h
        twice (LP: #1639153)
      . Mir crashes on virtual box drmModeCrtcSetGamma
        Function not implemented (LP: #1638220)
      . Flickering in mir_demo_client_multistream (LP: #1635273)
      . Camera apps (camera & vanity) never exit (LP: #1635010)
      . Clients cannot connect when MIR_SOCKET="" (LP: #1634508)
      . mirtest-dev packaging fails to sepcify boost depends (LP: #1633537)
      . cursor.h is unclear about mir_diagonal_resize_* (LP: #1626924)
      . Inconsistent underscores in cursor names (LP: #1632617)
      . [regression] Accidental libmircommon.so.6 break (LP: #1617865)
      . [regression] mir demo server fails to start with mx4 (LP: #1615703)
      . [regression] Trust prompt now shown when starting camera (LP: #1612256)
      . [regression] make abi-check fails to build (LP: #1626866)
      . Nested servers prevent overlays or fullscreen bypass (LP: #1262116)
      . Failed to get PRIME fd from gbm bo (LP: #1607812)
      . Mir-on-X is difficult to use on 1366x768 laptop (LP: #1590959)
      . Remove useless message 'Surface 0 DPI' in demos (LP: #1559831)
      . Mir fails to cross-build with newer sbuild (LP: #1628507)
      . Infinite loop in AbstractShell::focus_next_session (LP: #1625401)
      . Dest...

Read more...

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