Mir

Merge lp:~mir-team/mir/fix-1661163 into lp:mir

Proposed by Daniel van Vugt on 2017-02-03
Status: Merged
Approved by: Alan Griffiths on 2017-02-09
Approved revision: 4013
Merged at revision: 4020
Proposed branch: lp:~mir-team/mir/fix-1661163
Merge into: lp:mir
Diff against target: 40 lines (+3/-5)
3 files modified
include/client/mir_toolkit/mir_display_configuration.h (+2/-1)
src/client/display_configuration_api.cpp (+1/-1)
src/utils/out.c (+0/-3)
To merge this branch: bzr merge lp:~mir-team/mir/fix-1661163
Reviewer Review Type Date Requested Status
Mir CI Bot continuous-integration Approve on 2017-02-09
Alan Griffiths Approve on 2017-02-09
Chris Halse Rogers Approve on 2017-02-09
Kevin DuBois (community) 2017-02-03 Approve on 2017-02-08
Review via email: mp+316307@code.launchpad.net

Commit Message

Fix crash when zero cards are in the display config (nested server).
And deprecate the offending function because it's probably not useful to
keep (or to write tests for). (LP: #1661163)

To post a comment you must log in.
Mir CI Bot (mir-ci-bot) wrote :

PASSED: Continuous integration, rev:4009
https://mir-jenkins.ubuntu.com/job/mir-ci/2931/
Executed test runs:
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-mir/3875
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-0-fetch/3954
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/3944
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial+overlay/3944
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=zesty/3944
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=zesty/3902
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=zesty/3902/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial+overlay/3902
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial+overlay/3902/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=zesty/3902
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=zesty/3902/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/3902
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/3902/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/3902
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/3902/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial+overlay/3902
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial+overlay/3902/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://mir-jenkins.ubuntu.com/job/mir-ci/2931/rebuild

review: Approve (continuous-integration)
Kevin DuBois (kdub) wrote :

lgtm

review: Approve
Chris Halse Rogers (raof) wrote :

So, the deprecation comment is incorrect; the information provided by get_max_simultaneous_outputs() is (modulo crashes like this) correct.

I don't mind deprecating it, but the reason that I don't mind it being deprecated is that it's difficult for a client to make use of this information.

Or, rather, it's easy to make use of - a client can definitely know up front that a configuration with more outputs enabled will fail - but that doesn't tell a client how to set up a configuration with that many outputs enabled (which will often have quite significant restrictions).

I'm not entirely sure how to make the latter happen.

review: Approve
Daniel van Vugt (vanvugt) wrote :

OK then. Land it, then clarify the comment, then decided whether to un-deprecate in future.

Daniel van Vugt (vanvugt) wrote :

I have now clarified the comment.

Mir CI Bot (mir-ci-bot) wrote :

FAILED: Autolanding.
More details in the following jenkins job:
https://mir-jenkins.ubuntu.com/job/mir-autolanding/1082/
Executed test runs:
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-mir/3926/console
    None: https://mir-jenkins.ubuntu.com/job/generic-land-mp/1143/console
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-0-fetch/4012
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/4002
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial+overlay/4002
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=zesty/4002
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=zesty/3953
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=zesty/3953/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial+overlay/3953
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial+overlay/3953/artifact/output/*zip*/output.zip
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=zesty/3953/console
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/3953
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/3953/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/3953
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/3953/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial+overlay/3953
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial+overlay/3953/artifact/output/*zip*/output.zip

review: Needs Fixing (continuous-integration)
Daniel van Vugt (vanvugt) wrote :

^^^
Bug 1616312

but that was also probably trying to land the wrong revision.

lp:~mir-team/mir/fix-1661163 updated on 2017-02-09
4013. By Daniel van Vugt on 2017-02-09

Clarify deprecation comment even better.

Mir CI Bot (mir-ci-bot) wrote :

FAILED: Continuous integration, rev:4012
https://mir-jenkins.ubuntu.com/job/mir-ci/2959/
Executed test runs:
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-mir/3927/console
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-0-fetch/4013
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/4003
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial+overlay/4003
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=zesty/4003
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=zesty/3954/console
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial+overlay/3954
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial+overlay/3954/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=zesty/3954
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=zesty/3954/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/3954
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/3954/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/3954
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/3954/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial+overlay/3954
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial+overlay/3954/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://mir-jenkins.ubuntu.com/job/mir-ci/2959/rebuild

review: Needs Fixing (continuous-integration)
Mir CI Bot (mir-ci-bot) wrote :

FAILED: Continuous integration, rev:4013
https://mir-jenkins.ubuntu.com/job/mir-ci/2961/
Executed test runs:
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-mir/3929/console
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-0-fetch/4015
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/4005
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial+overlay/4005
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=zesty/4005
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=zesty/3956
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=zesty/3956/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial+overlay/3956
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial+overlay/3956/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=zesty/3956
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=zesty/3956/artifact/output/*zip*/output.zip
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/3956/console
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/3956/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/3956
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/3956/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial+overlay/3956
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial+overlay/3956/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://mir-jenkins.ubuntu.com/job/mir-ci/2961/rebuild

review: Needs Fixing (continuous-integration)
Alan Griffiths (alan-griffiths) wrote :
review: Approve
Mir CI Bot (mir-ci-bot) :
review: Approve (continuous-integration)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'include/client/mir_toolkit/mir_display_configuration.h'
2--- include/client/mir_toolkit/mir_display_configuration.h 2017-01-27 04:57:53 +0000
3+++ include/client/mir_toolkit/mir_display_configuration.h 2017-02-09 07:58:40 +0000
4@@ -59,7 +59,8 @@
5 * supportable at this time.
6 */
7 int mir_display_config_get_max_simultaneous_outputs(
8- MirDisplayConfig const* config);
9+ MirDisplayConfig const* config)
10+ __attribute__((deprecated("Not accurate in Mir 0.26 and later. May be removed in future.")));
11
12 /**
13 * Get the number of outputs available in this display configuration.
14
15=== modified file 'src/client/display_configuration_api.cpp'
16--- src/client/display_configuration_api.cpp 2017-01-27 04:57:53 +0000
17+++ src/client/display_configuration_api.cpp 2017-02-09 07:58:40 +0000
18@@ -113,7 +113,7 @@
19
20 int mir_display_config_get_max_simultaneous_outputs(MirDisplayConfig const* config)
21 {
22- return config->display_card(0).max_simultaneous_outputs();
23+ return mir_display_config_get_num_outputs(config);
24 }
25
26 int mir_output_get_id(MirOutput const* output)
27
28=== modified file 'src/utils/out.c'
29--- src/utils/out.c 2017-01-18 02:29:37 +0000
30+++ src/utils/out.c 2017-02-09 07:58:40 +0000
31@@ -410,9 +410,6 @@
32
33 int num_outputs = mir_display_config_get_num_outputs(conf);
34
35- printf("Max %d simultaneous outputs\n",
36- mir_display_config_get_max_simultaneous_outputs(conf));
37-
38 for (int i = 0; i < num_outputs; ++i)
39 {
40 MirOutput const* out = mir_display_config_get_output(conf, i);

Subscribers

People subscribed via source and target branches