Mir

Merge lp:~raof/mir/dont-ack-release-buffer into lp:mir

Proposed by Chris Halse Rogers on 2017-07-17
Status: Merged
Approved by: Alan Griffiths on 2017-07-19
Approved revision: 4210
Merged at revision: 4207
Proposed branch: lp:~raof/mir/dont-ack-release-buffer
Merge into: lp:mir
Diff against target: 346 lines (+63/-55)
18 files modified
include/server/mir/frontend/buffer_sink.h (+0/-1)
src/client/buffer_vault.cpp (+10/-2)
src/client/connection_surface_map.cpp (+1/-1)
src/client/mir_connection.cpp (+6/-7)
src/client/rpc/mir_protobuf_rpc_channel.cpp (+11/-3)
src/include/common/mir/protobuf/protocol_version.h (+2/-2)
src/server/compositor/buffer_map.cpp (+1/-3)
src/server/frontend/event_sender.cpp (+0/-8)
src/server/frontend/event_sender.h (+0/-1)
src/server/scene/global_event_sender.cpp (+0/-4)
src/server/scene/global_event_sender.h (+0/-1)
tests/include/mir/test/doubles/mock_event_sink.h (+0/-1)
tests/include/mir/test/doubles/null_event_sink.h (+0/-1)
tests/mir_test_doubles/mock_event_sink_factory.cpp (+0/-6)
tests/unit-tests/client/test_client_buffer_stream.cpp (+6/-7)
tests/unit-tests/client/test_connection_resource_map.cpp (+2/-6)
tests/unit-tests/client/test_protobuf_rpc_channel.cpp (+24/-0)
tests/unit-tests/compositor/test_client_buffers.cpp (+0/-1)
To merge this branch: bzr merge lp:~raof/mir/dont-ack-release-buffer
Reviewer Review Type Date Requested Status
Mir CI Bot continuous-integration Approve on 2017-07-19
Alan Griffiths 2017-07-17 Approve on 2017-07-18
Review via email: mp+327496@code.launchpad.net

Commit message

RPC: Don't require the server ACK client's buffer-release requests.

There's no particularly good reason to require the client to wait for server
acknowledgement before freeing the buffer that it wants to release,
so don't.

Description of the change

This makes fixing the mir_demo_client_multistream lockup in the improved buffer-submission branch much easier, because the server will no longer need to coordinate buffer-update with buffer-release events.

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

FAILED: Continuous integration, rev:4206
https://mir-jenkins.ubuntu.com/job/mir-ci/3486/
Executed test runs:
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-mir/4761/console
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-0-fetch/4927
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=artful/4916
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial/4916
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=zesty/4916
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=artful/4798/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=zesty/4798/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=artful/4798/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial/4798/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=zesty/4798/console
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=mesa,release=artful/4798
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=mesa,release=artful/4798/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=mesa,release=zesty/4798
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=mesa,release=zesty/4798/artifact/output/*zip*/output.zip
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial/4798/console

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

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

FAILED: Continuous integration, rev:4207
https://mir-jenkins.ubuntu.com/job/mir-ci/3487/
Executed test runs:
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-mir/4762/console
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-0-fetch/4928
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=artful/4917
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial/4917
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=zesty/4917
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=artful/4799/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=zesty/4799/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=artful/4799/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial/4799/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=zesty/4799/console
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=mesa,release=artful/4799
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=mesa,release=artful/4799/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=mesa,release=zesty/4799
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=mesa,release=zesty/4799/artifact/output/*zip*/output.zip
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial/4799/console

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

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

PASSED: Continuous integration, rev:4208
https://mir-jenkins.ubuntu.com/job/mir-ci/3488/
Executed test runs:
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-mir/4763
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-0-fetch/4929
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=artful/4918
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial/4918
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=zesty/4918
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=artful/4800
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=artful/4800/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=zesty/4800
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=zesty/4800/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=artful/4800
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=artful/4800/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial/4800
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial/4800/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=zesty/4800
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=zesty/4800/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=mesa,release=artful/4800
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=mesa,release=artful/4800/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=mesa,release=zesty/4800
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=mesa,release=zesty/4800/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial/4800
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial/4800/artifact/output/*zip*/output.zip

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

review: Approve (continuous-integration)
Alan Griffiths (alan-griffiths) wrote :

Looks sensible, seems to work.

We probably need to bump the protocol version though - AIUI legacy clients will be expecting a "release buffer" from the server?

review: Needs Information
Mir CI Bot (mir-ci-bot) wrote :

PASSED: Continuous integration, rev:4209
https://mir-jenkins.ubuntu.com/job/mir-ci/3489/
Executed test runs:
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-mir/4764
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-0-fetch/4935
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=artful/4924
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial/4924
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=zesty/4924
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=artful/4801
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=artful/4801/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=zesty/4801
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=zesty/4801/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=artful/4801
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=artful/4801/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial/4801
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial/4801/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=zesty/4801
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=zesty/4801/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=mesa,release=artful/4801
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=mesa,release=artful/4801/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=mesa,release=zesty/4801
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=mesa,release=zesty/4801/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial/4801
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial/4801/artifact/output/*zip*/output.zip

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

review: Approve (continuous-integration)
Alan Griffiths (alan-griffiths) wrote :

Thanks

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

FAILED: Autolanding.
More details in the following jenkins job:
https://mir-jenkins.ubuntu.com/job/mir-autolanding/1350/
Executed test runs:
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-mir/4768/console
    None: https://mir-jenkins.ubuntu.com/job/generic-land-mp/1453/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-0-fetch/4940/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=artful/4929/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial/4929/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=zesty/4929/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=artful/4805/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=zesty/4805/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=artful/4805/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial/4805/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=zesty/4805/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=mesa,release=artful/4805/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=mesa,release=zesty/4805/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial/4805/console

review: Needs Fixing (continuous-integration)
Chris Halse Rogers (raof) wrote :

Temporary(?) CI explosion?

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

FAILED: Autolanding.
More details in the following jenkins job:
https://mir-jenkins.ubuntu.com/job/mir-autolanding/1351/
Executed test runs:
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-mir/4769/console
    None: https://mir-jenkins.ubuntu.com/job/generic-land-mp/1454/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-0-fetch/4941/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=artful/4930/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial/4930/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=zesty/4930/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=artful/4806/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=zesty/4806/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=artful/4806/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial/4806/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=zesty/4806/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=mesa,release=artful/4806/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=mesa,release=zesty/4806/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial/4806/console

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

FAILED: Autolanding.
More details in the following jenkins job:
https://mir-jenkins.ubuntu.com/job/mir-autolanding/1353/
Executed test runs:
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-mir/4774/console
    None: https://mir-jenkins.ubuntu.com/job/generic-land-mp/1456/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-0-fetch/4946/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=artful/4935/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial/4935/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=zesty/4935/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=artful/4811/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=zesty/4811/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=artful/4811/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial/4811/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=zesty/4811/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=mesa,release=artful/4811/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=mesa,release=zesty/4811/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial/4811/console

review: Needs Fixing (continuous-integration)
Chris Halse Rogers (raof) wrote :

Other things aren't exploding, so maybe this won't, too?

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

FAILED: Autolanding.
More details in the following jenkins job:
https://mir-jenkins.ubuntu.com/job/mir-autolanding/1354/
Executed test runs:
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-mir/4775/console
    None: https://mir-jenkins.ubuntu.com/job/generic-land-mp/1457/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-0-fetch/4947/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=artful/4936/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial/4936/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=zesty/4936/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=artful/4812/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=zesty/4812/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=artful/4812/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial/4812/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=zesty/4812/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=mesa,release=artful/4812/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=mesa,release=zesty/4812/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial/4812/console

review: Needs Fixing (continuous-integration)
lp:~raof/mir/dont-ack-release-buffer updated on 2017-07-19
4210. By Chris Halse Rogers on 2017-07-19

Merge trunk, resolving conflict

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

PASSED: Continuous integration, rev:4210
https://mir-jenkins.ubuntu.com/job/mir-ci/3495/
Executed test runs:
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-mir/4776
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-0-fetch/4948
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=artful/4937
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial/4937
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=zesty/4937
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=artful/4813
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=artful/4813/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=zesty/4813
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=zesty/4813/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=artful/4813
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=artful/4813/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial/4813
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial/4813/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=zesty/4813
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=zesty/4813/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=mesa,release=artful/4813
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=mesa,release=artful/4813/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=mesa,release=zesty/4813
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=mesa,release=zesty/4813/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial/4813
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial/4813/artifact/output/*zip*/output.zip

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

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/server/mir/frontend/buffer_sink.h'
2--- include/server/mir/frontend/buffer_sink.h 2017-05-08 03:04:26 +0000
3+++ include/server/mir/frontend/buffer_sink.h 2017-07-19 05:37:29 +0000
4@@ -37,7 +37,6 @@
5 virtual void send_buffer(frontend::BufferStreamId id, graphics::Buffer& buffer, graphics::BufferIpcMsgType) = 0;
6 virtual void add_buffer(graphics::Buffer&) = 0;
7 virtual void error_buffer(geometry::Size req_size, MirPixelFormat req_format, std::string const& error_msg) = 0;
8- virtual void remove_buffer(graphics::Buffer&) = 0;
9 virtual void update_buffer(graphics::Buffer&) = 0;
10
11 protected:
12
13=== modified file 'src/client/buffer_vault.cpp'
14--- src/client/buffer_vault.cpp 2017-05-17 04:48:46 +0000
15+++ src/client/buffer_vault.cpp 2017-07-19 05:37:29 +0000
16@@ -86,11 +86,15 @@
17 {
18 if (auto map = surface_map.lock())
19 {
20- auto buffer = map->buffer(it.first);
21- buffer->set_callback(ignore_buffer, nullptr);
22+ if (auto buffer = map->buffer(it.first))
23+ {
24+ buffer->set_callback(ignore_buffer, nullptr);
25+ }
26 }
27 if (!disconnected_)
28+ {
29 free_buffer(it.first);
30+ }
31 }
32 catch (...)
33 {
34@@ -110,6 +114,10 @@
35 void mcl::BufferVault::free_buffer(int free_id)
36 {
37 server_requests->free_buffer(free_id);
38+ if (auto map = surface_map.lock())
39+ {
40+ map->erase(free_id);
41+ }
42 }
43
44 void mcl::BufferVault::realloc_buffer(int free_id, geom::Size size, MirPixelFormat format, int usage)
45
46=== modified file 'src/client/connection_surface_map.cpp'
47--- src/client/connection_surface_map.cpp 2017-05-08 03:04:26 +0000
48+++ src/client/connection_surface_map.cpp 2017-07-19 05:37:29 +0000
49@@ -107,7 +107,7 @@
50 if (it != buffers.end())
51 return it->second;
52 else
53- BOOST_THROW_EXCEPTION(std::runtime_error("could not find buffer"));
54+ return nullptr;
55 }
56
57 void mcl::ConnectionSurfaceMap::erase(void* render_surface_key)
58
59=== modified file 'src/client/mir_connection.cpp'
60--- src/client/mir_connection.cpp 2017-07-18 09:02:12 +0000
61+++ src/client/mir_connection.cpp 2017-07-19 05:37:29 +0000
62@@ -1323,16 +1323,15 @@
63
64 void MirConnection::release_buffer(mcl::MirBuffer* buffer)
65 {
66- if (!buffer->valid())
67+ if (buffer->valid())
68 {
69- surface_map->erase(buffer->rpc_id());
70- return;
71+ mp::BufferRelease request;
72+ auto released_buffer = request.add_buffers();
73+ released_buffer->set_buffer_id(buffer->rpc_id());
74+ server.release_buffers(&request, ignored.get(), gp::NewCallback(ignore));
75 }
76
77- mp::BufferRelease request;
78- auto released_buffer = request.add_buffers();
79- released_buffer->set_buffer_id(buffer->rpc_id());
80- server.release_buffers(&request, ignored.get(), gp::NewCallback(ignore));
81+ surface_map->erase(buffer->rpc_id());
82 }
83
84 void MirConnection::release_render_surface_with_content(
85
86=== modified file 'src/client/rpc/mir_protobuf_rpc_channel.cpp'
87--- src/client/rpc/mir_protobuf_rpc_channel.cpp 2017-05-08 03:04:26 +0000
88+++ src/client/rpc/mir_protobuf_rpc_channel.cpp 2017-07-19 05:37:29 +0000
89@@ -359,11 +359,19 @@
90 buffer->received();
91 break;
92 case mp::BufferOperation::update:
93- map->buffer(buffer_id)->received(
94- *mcl::protobuf_to_native_buffer(seq.buffer_request().buffer()));
95+ buffer = map->buffer(buffer_id);
96+ if (buffer)
97+ {
98+ buffer->received(
99+ *mcl::protobuf_to_native_buffer(seq.buffer_request().buffer()));
100+ }
101 break;
102 case mp::BufferOperation::remove:
103- map->erase(buffer_id);
104+ /* The server never sends us an unsolicited ::remove request
105+ * (and clients have no way of dealing with one)
106+ *
107+ * Just ignore it, because we've already deleted our buffer.
108+ */
109 break;
110 default:
111 BOOST_THROW_EXCEPTION(std::runtime_error("unknown buffer operation"));
112
113=== modified file 'src/include/common/mir/protobuf/protocol_version.h'
114--- src/include/common/mir/protobuf/protocol_version.h 2017-06-29 16:07:49 +0000
115+++ src/include/common/mir/protobuf/protocol_version.h 2017-07-19 05:37:29 +0000
116@@ -27,12 +27,12 @@
117 {
118 inline constexpr int current_protocol_version()
119 {
120- return MIR_VERSION_NUMBER(0,5,0);
121+ return MIR_VERSION_NUMBER(0,6,0);
122 }
123
124 inline constexpr int oldest_compatible_protocol_version()
125 {
126- return MIR_VERSION_NUMBER(0,5,0);
127+ return MIR_VERSION_NUMBER(0,6,0);
128 }
129
130 inline constexpr int next_incompatible_protocol_version()
131
132=== modified file 'src/server/compositor/buffer_map.cpp'
133--- src/server/compositor/buffer_map.cpp 2017-05-08 03:04:26 +0000
134+++ src/server/compositor/buffer_map.cpp 2017-07-19 05:37:29 +0000
135@@ -64,9 +64,7 @@
136 {
137 std::unique_lock<decltype(mutex)> lk(mutex);
138 auto it = checked_buffers_find(id, lk);
139- if (auto s = sink.lock())
140- s->remove_buffer(*it->second.buffer);
141- buffers.erase(it);
142+ buffers.erase(it);
143 }
144
145 void mc::BufferMap::send_buffer(mg::BufferID id)
146
147=== modified file 'src/server/frontend/event_sender.cpp'
148--- src/server/frontend/event_sender.cpp 2017-05-08 03:04:26 +0000
149+++ src/server/frontend/event_sender.cpp 2017-07-19 05:37:29 +0000
150@@ -143,14 +143,6 @@
151 send_event_sequence(seq, {});
152 }
153
154-void mfd::EventSender::remove_buffer(graphics::Buffer& buffer)
155-{
156- mp::EventSequence seq;
157- auto request = seq.mutable_buffer_request();
158- request->set_operation(mir::protobuf::BufferOperation::remove);
159- send_buffer(seq, buffer, mg::BufferIpcMsgType::update_msg);
160-}
161-
162 void mfd::EventSender::update_buffer(graphics::Buffer& buffer)
163 {
164 mp::EventSequence seq;
165
166=== modified file 'src/server/frontend/event_sender.h'
167--- src/server/frontend/event_sender.h 2017-05-08 03:04:26 +0000
168+++ src/server/frontend/event_sender.h 2017-07-19 05:37:29 +0000
169@@ -52,7 +52,6 @@
170 void send_buffer(frontend::BufferStreamId id, graphics::Buffer& buffer, graphics::BufferIpcMsgType) override;
171 void add_buffer(graphics::Buffer&) override;
172 void error_buffer(geometry::Size, MirPixelFormat, std::string const&) override;
173- void remove_buffer(graphics::Buffer&) override;
174 void update_buffer(graphics::Buffer&) override;
175
176 private:
177
178=== modified file 'src/server/scene/global_event_sender.cpp'
179--- src/server/scene/global_event_sender.cpp 2017-05-08 03:04:26 +0000
180+++ src/server/scene/global_event_sender.cpp 2017-07-19 05:37:29 +0000
181@@ -67,10 +67,6 @@
182 {
183 }
184
185-void ms::GlobalEventSender::remove_buffer(graphics::Buffer&)
186-{
187-}
188-
189 void ms::GlobalEventSender::update_buffer(graphics::Buffer&)
190 {
191 }
192
193=== modified file 'src/server/scene/global_event_sender.h'
194--- src/server/scene/global_event_sender.h 2017-05-08 03:04:26 +0000
195+++ src/server/scene/global_event_sender.h 2017-07-19 05:37:29 +0000
196@@ -41,7 +41,6 @@
197 void send_ping(int32_t serial) override;
198 void send_buffer(frontend::BufferStreamId id, graphics::Buffer& buffer, graphics::BufferIpcMsgType) override;
199 void add_buffer(graphics::Buffer&) override;
200- void remove_buffer(graphics::Buffer&) override;
201 void update_buffer(graphics::Buffer&) override;
202 void error_buffer(geometry::Size, MirPixelFormat, std::string const&) override;
203 private:
204
205=== modified file 'tests/include/mir/test/doubles/mock_event_sink.h'
206--- tests/include/mir/test/doubles/mock_event_sink.h 2017-05-08 03:04:26 +0000
207+++ tests/include/mir/test/doubles/mock_event_sink.h 2017-07-19 05:37:29 +0000
208@@ -42,7 +42,6 @@
209 MOCK_METHOD1(send_ping, void(int32_t));
210 MOCK_METHOD3(send_buffer, void(frontend::BufferStreamId, graphics::Buffer&, graphics::BufferIpcMsgType));
211 MOCK_METHOD1(add_buffer, void(graphics::Buffer&));
212- MOCK_METHOD1(remove_buffer, void(graphics::Buffer&));
213 MOCK_METHOD1(update_buffer, void(graphics::Buffer&));
214 MOCK_METHOD3(error_buffer, void(geometry::Size, MirPixelFormat, std::string const&));
215 MOCK_METHOD1(handle_input_config_change, void(MirInputConfig const&));
216
217=== modified file 'tests/include/mir/test/doubles/null_event_sink.h'
218--- tests/include/mir/test/doubles/null_event_sink.h 2017-05-08 03:04:26 +0000
219+++ tests/include/mir/test/doubles/null_event_sink.h 2017-07-19 05:37:29 +0000
220@@ -44,7 +44,6 @@
221 void send_buffer(frontend::BufferStreamId, graphics::Buffer&, graphics::BufferIpcMsgType) override {}
222 void handle_input_config_change(MirInputConfig const&) override {}
223 void add_buffer(graphics::Buffer&) override {}
224- void remove_buffer(graphics::Buffer&) override {}
225 void update_buffer(graphics::Buffer&) override {}
226 void error_buffer(geometry::Size, MirPixelFormat, std::string const&) override {}
227 };
228
229=== modified file 'tests/mir_test_doubles/mock_event_sink_factory.cpp'
230--- tests/mir_test_doubles/mock_event_sink_factory.cpp 2017-05-08 03:04:26 +0000
231+++ tests/mir_test_doubles/mock_event_sink_factory.cpp 2017-07-19 05:37:29 +0000
232@@ -42,7 +42,6 @@
233 void send_buffer(mf::BufferStreamId id, mg::Buffer& buf, mg::BufferIpcMsgType type) override;
234 void handle_input_config_change(MirInputConfig const& devices) override;
235 void add_buffer(mir::graphics::Buffer&) override;
236- void remove_buffer(mir::graphics::Buffer&) override;
237 void update_buffer(mir::graphics::Buffer&) override;
238 void error_buffer(mir::geometry::Size, MirPixelFormat, std::string const&) override;
239
240@@ -106,11 +105,6 @@
241 underlying_sink->error_buffer(sz, pf, error);
242 }
243
244-void GloballyUniqueMockEventSink::remove_buffer(mir::graphics::Buffer& buffer)
245-{
246- underlying_sink->remove_buffer(buffer);
247-}
248-
249 void GloballyUniqueMockEventSink::update_buffer(mir::graphics::Buffer& buffer)
250 {
251 underlying_sink->update_buffer(buffer);
252
253=== modified file 'tests/unit-tests/client/test_client_buffer_stream.cpp'
254--- tests/unit-tests/client/test_client_buffer_stream.cpp 2017-05-17 04:48:46 +0000
255+++ tests/unit-tests/client/test_client_buffer_stream.cpp 2017-07-19 05:37:29 +0000
256@@ -204,16 +204,15 @@
257
258 void async_buffer_arrives(mp::Buffer& buffer)
259 {
260- try
261+ if (auto buf = map->buffer(buffer.buffer_id()))
262 {
263- map->buffer(buffer.buffer_id())->received(*mcl::protobuf_to_native_buffer(buffer));
264+ buf->received(*mcl::protobuf_to_native_buffer(buffer));
265 }
266- catch (std::runtime_error& e)
267+ else
268 {
269- auto bb = factory->generate_buffer(buffer);
270- auto braw = bb.get();
271- map->insert(buffer.buffer_id(), std::move(bb));
272- braw->received();
273+ map->insert(buffer.buffer_id(), factory->generate_buffer(buffer));
274+ buf = map->buffer(buffer.buffer_id());
275+ buf->received();
276 }
277 }
278
279
280=== modified file 'tests/unit-tests/client/test_connection_resource_map.cpp'
281--- tests/unit-tests/client/test_connection_resource_map.cpp 2017-05-08 03:04:26 +0000
282+++ tests/unit-tests/client/test_connection_resource_map.cpp 2017-07-19 05:37:29 +0000
283@@ -97,17 +97,13 @@
284 {
285 using namespace testing;
286 mcl::ConnectionSurfaceMap map;
287- EXPECT_THROW({
288- map.buffer(buffer_id);
289- }, std::runtime_error);
290+ EXPECT_THAT(map.buffer(buffer_id), IsNull());
291
292 map.insert(buffer_id, buffer);
293 EXPECT_THAT(map.buffer(buffer_id), Eq(buffer));
294 map.erase(buffer_id);
295
296- EXPECT_THROW({
297- map.buffer(buffer_id);
298- }, std::runtime_error);
299+ EXPECT_THAT(map.buffer(buffer_id), IsNull());
300 }
301
302 TEST_F(ConnectionResourceMap, can_access_buffers_from_surface)
303
304=== modified file 'tests/unit-tests/client/test_protobuf_rpc_channel.cpp'
305--- tests/unit-tests/client/test_protobuf_rpc_channel.cpp 2017-05-08 03:04:26 +0000
306+++ tests/unit-tests/client/test_protobuf_rpc_channel.cpp 2017-07-19 05:37:29 +0000
307@@ -840,3 +840,27 @@
308 std::make_shared<mtd::NullClientEventSink>()};
309 channel.on_data_available();
310 }
311+
312+TEST_F(MirProtobufRpcChannelTest, ignores_update_message_for_unknown_buffer)
313+{
314+ mir::protobuf::EventSequence seq;
315+ auto request = seq.mutable_buffer_request();
316+ request->mutable_buffer()->set_buffer_id(42);
317+ request->set_operation(mir::protobuf::BufferOperation::update);
318+
319+ set_async_buffer_message(seq, *transport);
320+
321+ channel->on_data_available();
322+}
323+
324+TEST_F(MirProtobufRpcChannelTest, ignores_delete_message_for_unknown_buffer)
325+{
326+ mir::protobuf::EventSequence seq;
327+ auto request = seq.mutable_buffer_request();
328+ request->mutable_buffer()->set_buffer_id(42);
329+ request->set_operation(mir::protobuf::BufferOperation::remove);
330+
331+ set_async_buffer_message(seq, *transport);
332+
333+ channel->on_data_available();
334+}
335
336=== modified file 'tests/unit-tests/compositor/test_client_buffers.cpp'
337--- tests/unit-tests/compositor/test_client_buffers.cpp 2017-05-08 03:04:26 +0000
338+++ tests/unit-tests/compositor/test_client_buffers.cpp 2017-07-19 05:37:29 +0000
339@@ -79,7 +79,6 @@
340 auto id = map.add_buffer(mt::fake_shared(stub_buffer));
341 auto buffer = map.get(id);
342
343- EXPECT_CALL(*mock_sink, remove_buffer(Ref(*buffer)));
344 map.remove_buffer(id);
345 map.send_buffer(id);
346 }

Subscribers

People subscribed via source and target branches