Mir

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

Proposed by Chris Halse Rogers
Status: Merged
Approved by: Alan Griffiths
Approved revision: no longer in the source branch.
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
Alan Griffiths Approve
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.
Revision history for this message
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)
Revision history for this message
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)
Revision history for this message
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)
Revision history for this message
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
Revision history for this message
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)
Revision history for this message
Alan Griffiths (alan-griffiths) wrote :

Thanks

review: Approve
Revision history for this message
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)
Revision history for this message
Chris Halse Rogers (raof) wrote :

Temporary(?) CI explosion?

Revision history for this message
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)
Revision history for this message
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)
Revision history for this message
Chris Halse Rogers (raof) wrote :

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

Revision history for this message
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)
Revision history for this message
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
=== modified file 'include/server/mir/frontend/buffer_sink.h'
--- include/server/mir/frontend/buffer_sink.h 2017-05-08 03:04:26 +0000
+++ include/server/mir/frontend/buffer_sink.h 2017-07-19 05:37:29 +0000
@@ -37,7 +37,6 @@
37 virtual void send_buffer(frontend::BufferStreamId id, graphics::Buffer& buffer, graphics::BufferIpcMsgType) = 0;37 virtual void send_buffer(frontend::BufferStreamId id, graphics::Buffer& buffer, graphics::BufferIpcMsgType) = 0;
38 virtual void add_buffer(graphics::Buffer&) = 0;38 virtual void add_buffer(graphics::Buffer&) = 0;
39 virtual void error_buffer(geometry::Size req_size, MirPixelFormat req_format, std::string const& error_msg) = 0;39 virtual void error_buffer(geometry::Size req_size, MirPixelFormat req_format, std::string const& error_msg) = 0;
40 virtual void remove_buffer(graphics::Buffer&) = 0;
41 virtual void update_buffer(graphics::Buffer&) = 0;40 virtual void update_buffer(graphics::Buffer&) = 0;
4241
43protected:42protected:
4443
=== modified file 'src/client/buffer_vault.cpp'
--- src/client/buffer_vault.cpp 2017-05-17 04:48:46 +0000
+++ src/client/buffer_vault.cpp 2017-07-19 05:37:29 +0000
@@ -86,11 +86,15 @@
86 {86 {
87 if (auto map = surface_map.lock())87 if (auto map = surface_map.lock())
88 {88 {
89 auto buffer = map->buffer(it.first);89 if (auto buffer = map->buffer(it.first))
90 buffer->set_callback(ignore_buffer, nullptr);90 {
91 buffer->set_callback(ignore_buffer, nullptr);
92 }
91 } 93 }
92 if (!disconnected_)94 if (!disconnected_)
95 {
93 free_buffer(it.first);96 free_buffer(it.first);
97 }
94 }98 }
95 catch (...)99 catch (...)
96 {100 {
@@ -110,6 +114,10 @@
110void mcl::BufferVault::free_buffer(int free_id)114void mcl::BufferVault::free_buffer(int free_id)
111{115{
112 server_requests->free_buffer(free_id);116 server_requests->free_buffer(free_id);
117 if (auto map = surface_map.lock())
118 {
119 map->erase(free_id);
120 }
113}121}
114122
115void mcl::BufferVault::realloc_buffer(int free_id, geom::Size size, MirPixelFormat format, int usage)123void mcl::BufferVault::realloc_buffer(int free_id, geom::Size size, MirPixelFormat format, int usage)
116124
=== modified file 'src/client/connection_surface_map.cpp'
--- src/client/connection_surface_map.cpp 2017-05-08 03:04:26 +0000
+++ src/client/connection_surface_map.cpp 2017-07-19 05:37:29 +0000
@@ -107,7 +107,7 @@
107 if (it != buffers.end())107 if (it != buffers.end())
108 return it->second;108 return it->second;
109 else109 else
110 BOOST_THROW_EXCEPTION(std::runtime_error("could not find buffer"));110 return nullptr;
111}111}
112112
113void mcl::ConnectionSurfaceMap::erase(void* render_surface_key)113void mcl::ConnectionSurfaceMap::erase(void* render_surface_key)
114114
=== modified file 'src/client/mir_connection.cpp'
--- src/client/mir_connection.cpp 2017-07-18 09:02:12 +0000
+++ src/client/mir_connection.cpp 2017-07-19 05:37:29 +0000
@@ -1323,16 +1323,15 @@
13231323
1324void MirConnection::release_buffer(mcl::MirBuffer* buffer)1324void MirConnection::release_buffer(mcl::MirBuffer* buffer)
1325{1325{
1326 if (!buffer->valid())1326 if (buffer->valid())
1327 {1327 {
1328 surface_map->erase(buffer->rpc_id());1328 mp::BufferRelease request;
1329 return;1329 auto released_buffer = request.add_buffers();
1330 released_buffer->set_buffer_id(buffer->rpc_id());
1331 server.release_buffers(&request, ignored.get(), gp::NewCallback(ignore));
1330 }1332 }
13311333
1332 mp::BufferRelease request;1334 surface_map->erase(buffer->rpc_id());
1333 auto released_buffer = request.add_buffers();
1334 released_buffer->set_buffer_id(buffer->rpc_id());
1335 server.release_buffers(&request, ignored.get(), gp::NewCallback(ignore));
1336}1335}
13371336
1338void MirConnection::release_render_surface_with_content(1337void MirConnection::release_render_surface_with_content(
13391338
=== modified file 'src/client/rpc/mir_protobuf_rpc_channel.cpp'
--- src/client/rpc/mir_protobuf_rpc_channel.cpp 2017-05-08 03:04:26 +0000
+++ src/client/rpc/mir_protobuf_rpc_channel.cpp 2017-07-19 05:37:29 +0000
@@ -359,11 +359,19 @@
359 buffer->received();359 buffer->received();
360 break;360 break;
361 case mp::BufferOperation::update:361 case mp::BufferOperation::update:
362 map->buffer(buffer_id)->received(362 buffer = map->buffer(buffer_id);
363 *mcl::protobuf_to_native_buffer(seq.buffer_request().buffer()));363 if (buffer)
364 {
365 buffer->received(
366 *mcl::protobuf_to_native_buffer(seq.buffer_request().buffer()));
367 }
364 break;368 break;
365 case mp::BufferOperation::remove:369 case mp::BufferOperation::remove:
366 map->erase(buffer_id);370 /* The server never sends us an unsolicited ::remove request
371 * (and clients have no way of dealing with one)
372 *
373 * Just ignore it, because we've already deleted our buffer.
374 */
367 break;375 break;
368 default:376 default:
369 BOOST_THROW_EXCEPTION(std::runtime_error("unknown buffer operation"));377 BOOST_THROW_EXCEPTION(std::runtime_error("unknown buffer operation"));
370378
=== modified file 'src/include/common/mir/protobuf/protocol_version.h'
--- src/include/common/mir/protobuf/protocol_version.h 2017-06-29 16:07:49 +0000
+++ src/include/common/mir/protobuf/protocol_version.h 2017-07-19 05:37:29 +0000
@@ -27,12 +27,12 @@
27{27{
28inline constexpr int current_protocol_version()28inline constexpr int current_protocol_version()
29{ 29{
30 return MIR_VERSION_NUMBER(0,5,0);30 return MIR_VERSION_NUMBER(0,6,0);
31}31}
3232
33inline constexpr int oldest_compatible_protocol_version()33inline constexpr int oldest_compatible_protocol_version()
34{34{
35 return MIR_VERSION_NUMBER(0,5,0);35 return MIR_VERSION_NUMBER(0,6,0);
36}36}
3737
38inline constexpr int next_incompatible_protocol_version()38inline constexpr int next_incompatible_protocol_version()
3939
=== modified file 'src/server/compositor/buffer_map.cpp'
--- src/server/compositor/buffer_map.cpp 2017-05-08 03:04:26 +0000
+++ src/server/compositor/buffer_map.cpp 2017-07-19 05:37:29 +0000
@@ -64,9 +64,7 @@
64{64{
65 std::unique_lock<decltype(mutex)> lk(mutex);65 std::unique_lock<decltype(mutex)> lk(mutex);
66 auto it = checked_buffers_find(id, lk);66 auto it = checked_buffers_find(id, lk);
67 if (auto s = sink.lock())67 buffers.erase(it);
68 s->remove_buffer(*it->second.buffer);
69 buffers.erase(it);
70}68}
7169
72void mc::BufferMap::send_buffer(mg::BufferID id)70void mc::BufferMap::send_buffer(mg::BufferID id)
7371
=== modified file 'src/server/frontend/event_sender.cpp'
--- src/server/frontend/event_sender.cpp 2017-05-08 03:04:26 +0000
+++ src/server/frontend/event_sender.cpp 2017-07-19 05:37:29 +0000
@@ -143,14 +143,6 @@
143 send_event_sequence(seq, {});143 send_event_sequence(seq, {});
144}144}
145145
146void mfd::EventSender::remove_buffer(graphics::Buffer& buffer)
147{
148 mp::EventSequence seq;
149 auto request = seq.mutable_buffer_request();
150 request->set_operation(mir::protobuf::BufferOperation::remove);
151 send_buffer(seq, buffer, mg::BufferIpcMsgType::update_msg);
152}
153
154void mfd::EventSender::update_buffer(graphics::Buffer& buffer)146void mfd::EventSender::update_buffer(graphics::Buffer& buffer)
155{147{
156 mp::EventSequence seq;148 mp::EventSequence seq;
157149
=== modified file 'src/server/frontend/event_sender.h'
--- src/server/frontend/event_sender.h 2017-05-08 03:04:26 +0000
+++ src/server/frontend/event_sender.h 2017-07-19 05:37:29 +0000
@@ -52,7 +52,6 @@
52 void send_buffer(frontend::BufferStreamId id, graphics::Buffer& buffer, graphics::BufferIpcMsgType) override;52 void send_buffer(frontend::BufferStreamId id, graphics::Buffer& buffer, graphics::BufferIpcMsgType) override;
53 void add_buffer(graphics::Buffer&) override;53 void add_buffer(graphics::Buffer&) override;
54 void error_buffer(geometry::Size, MirPixelFormat, std::string const&) override;54 void error_buffer(geometry::Size, MirPixelFormat, std::string const&) override;
55 void remove_buffer(graphics::Buffer&) override;
56 void update_buffer(graphics::Buffer&) override;55 void update_buffer(graphics::Buffer&) override;
5756
58private:57private:
5958
=== modified file 'src/server/scene/global_event_sender.cpp'
--- src/server/scene/global_event_sender.cpp 2017-05-08 03:04:26 +0000
+++ src/server/scene/global_event_sender.cpp 2017-07-19 05:37:29 +0000
@@ -67,10 +67,6 @@
67{67{
68}68}
6969
70void ms::GlobalEventSender::remove_buffer(graphics::Buffer&)
71{
72}
73
74void ms::GlobalEventSender::update_buffer(graphics::Buffer&)70void ms::GlobalEventSender::update_buffer(graphics::Buffer&)
75{71{
76}72}
7773
=== modified file 'src/server/scene/global_event_sender.h'
--- src/server/scene/global_event_sender.h 2017-05-08 03:04:26 +0000
+++ src/server/scene/global_event_sender.h 2017-07-19 05:37:29 +0000
@@ -41,7 +41,6 @@
41 void send_ping(int32_t serial) override;41 void send_ping(int32_t serial) override;
42 void send_buffer(frontend::BufferStreamId id, graphics::Buffer& buffer, graphics::BufferIpcMsgType) override;42 void send_buffer(frontend::BufferStreamId id, graphics::Buffer& buffer, graphics::BufferIpcMsgType) override;
43 void add_buffer(graphics::Buffer&) override;43 void add_buffer(graphics::Buffer&) override;
44 void remove_buffer(graphics::Buffer&) override;
45 void update_buffer(graphics::Buffer&) override;44 void update_buffer(graphics::Buffer&) override;
46 void error_buffer(geometry::Size, MirPixelFormat, std::string const&) override;45 void error_buffer(geometry::Size, MirPixelFormat, std::string const&) override;
47private:46private:
4847
=== modified file 'tests/include/mir/test/doubles/mock_event_sink.h'
--- tests/include/mir/test/doubles/mock_event_sink.h 2017-05-08 03:04:26 +0000
+++ tests/include/mir/test/doubles/mock_event_sink.h 2017-07-19 05:37:29 +0000
@@ -42,7 +42,6 @@
42 MOCK_METHOD1(send_ping, void(int32_t));42 MOCK_METHOD1(send_ping, void(int32_t));
43 MOCK_METHOD3(send_buffer, void(frontend::BufferStreamId, graphics::Buffer&, graphics::BufferIpcMsgType));43 MOCK_METHOD3(send_buffer, void(frontend::BufferStreamId, graphics::Buffer&, graphics::BufferIpcMsgType));
44 MOCK_METHOD1(add_buffer, void(graphics::Buffer&));44 MOCK_METHOD1(add_buffer, void(graphics::Buffer&));
45 MOCK_METHOD1(remove_buffer, void(graphics::Buffer&));
46 MOCK_METHOD1(update_buffer, void(graphics::Buffer&));45 MOCK_METHOD1(update_buffer, void(graphics::Buffer&));
47 MOCK_METHOD3(error_buffer, void(geometry::Size, MirPixelFormat, std::string const&));46 MOCK_METHOD3(error_buffer, void(geometry::Size, MirPixelFormat, std::string const&));
48 MOCK_METHOD1(handle_input_config_change, void(MirInputConfig const&));47 MOCK_METHOD1(handle_input_config_change, void(MirInputConfig const&));
4948
=== modified file 'tests/include/mir/test/doubles/null_event_sink.h'
--- tests/include/mir/test/doubles/null_event_sink.h 2017-05-08 03:04:26 +0000
+++ tests/include/mir/test/doubles/null_event_sink.h 2017-07-19 05:37:29 +0000
@@ -44,7 +44,6 @@
44 void send_buffer(frontend::BufferStreamId, graphics::Buffer&, graphics::BufferIpcMsgType) override {}44 void send_buffer(frontend::BufferStreamId, graphics::Buffer&, graphics::BufferIpcMsgType) override {}
45 void handle_input_config_change(MirInputConfig const&) override {}45 void handle_input_config_change(MirInputConfig const&) override {}
46 void add_buffer(graphics::Buffer&) override {}46 void add_buffer(graphics::Buffer&) override {}
47 void remove_buffer(graphics::Buffer&) override {}
48 void update_buffer(graphics::Buffer&) override {}47 void update_buffer(graphics::Buffer&) override {}
49 void error_buffer(geometry::Size, MirPixelFormat, std::string const&) override {}48 void error_buffer(geometry::Size, MirPixelFormat, std::string const&) override {}
50};49};
5150
=== modified file 'tests/mir_test_doubles/mock_event_sink_factory.cpp'
--- tests/mir_test_doubles/mock_event_sink_factory.cpp 2017-05-08 03:04:26 +0000
+++ tests/mir_test_doubles/mock_event_sink_factory.cpp 2017-07-19 05:37:29 +0000
@@ -42,7 +42,6 @@
42 void send_buffer(mf::BufferStreamId id, mg::Buffer& buf, mg::BufferIpcMsgType type) override;42 void send_buffer(mf::BufferStreamId id, mg::Buffer& buf, mg::BufferIpcMsgType type) override;
43 void handle_input_config_change(MirInputConfig const& devices) override;43 void handle_input_config_change(MirInputConfig const& devices) override;
44 void add_buffer(mir::graphics::Buffer&) override;44 void add_buffer(mir::graphics::Buffer&) override;
45 void remove_buffer(mir::graphics::Buffer&) override;
46 void update_buffer(mir::graphics::Buffer&) override;45 void update_buffer(mir::graphics::Buffer&) override;
47 void error_buffer(mir::geometry::Size, MirPixelFormat, std::string const&) override;46 void error_buffer(mir::geometry::Size, MirPixelFormat, std::string const&) override;
4847
@@ -106,11 +105,6 @@
106 underlying_sink->error_buffer(sz, pf, error);105 underlying_sink->error_buffer(sz, pf, error);
107}106}
108107
109void GloballyUniqueMockEventSink::remove_buffer(mir::graphics::Buffer& buffer)
110{
111 underlying_sink->remove_buffer(buffer);
112}
113
114void GloballyUniqueMockEventSink::update_buffer(mir::graphics::Buffer& buffer)108void GloballyUniqueMockEventSink::update_buffer(mir::graphics::Buffer& buffer)
115{109{
116 underlying_sink->update_buffer(buffer);110 underlying_sink->update_buffer(buffer);
117111
=== modified file 'tests/unit-tests/client/test_client_buffer_stream.cpp'
--- tests/unit-tests/client/test_client_buffer_stream.cpp 2017-05-17 04:48:46 +0000
+++ tests/unit-tests/client/test_client_buffer_stream.cpp 2017-07-19 05:37:29 +0000
@@ -204,16 +204,15 @@
204204
205 void async_buffer_arrives(mp::Buffer& buffer)205 void async_buffer_arrives(mp::Buffer& buffer)
206 {206 {
207 try207 if (auto buf = map->buffer(buffer.buffer_id()))
208 {208 {
209 map->buffer(buffer.buffer_id())->received(*mcl::protobuf_to_native_buffer(buffer));209 buf->received(*mcl::protobuf_to_native_buffer(buffer));
210 }210 }
211 catch (std::runtime_error& e)211 else
212 {212 {
213 auto bb = factory->generate_buffer(buffer);213 map->insert(buffer.buffer_id(), factory->generate_buffer(buffer));
214 auto braw = bb.get();214 buf = map->buffer(buffer.buffer_id());
215 map->insert(buffer.buffer_id(), std::move(bb)); 215 buf->received();
216 braw->received();
217 }216 }
218 }217 }
219218
220219
=== modified file 'tests/unit-tests/client/test_connection_resource_map.cpp'
--- tests/unit-tests/client/test_connection_resource_map.cpp 2017-05-08 03:04:26 +0000
+++ tests/unit-tests/client/test_connection_resource_map.cpp 2017-07-19 05:37:29 +0000
@@ -97,17 +97,13 @@
97{97{
98 using namespace testing;98 using namespace testing;
99 mcl::ConnectionSurfaceMap map;99 mcl::ConnectionSurfaceMap map;
100 EXPECT_THROW({100 EXPECT_THAT(map.buffer(buffer_id), IsNull());
101 map.buffer(buffer_id);
102 }, std::runtime_error);
103101
104 map.insert(buffer_id, buffer);102 map.insert(buffer_id, buffer);
105 EXPECT_THAT(map.buffer(buffer_id), Eq(buffer));103 EXPECT_THAT(map.buffer(buffer_id), Eq(buffer));
106 map.erase(buffer_id);104 map.erase(buffer_id);
107105
108 EXPECT_THROW({106 EXPECT_THAT(map.buffer(buffer_id), IsNull());
109 map.buffer(buffer_id);
110 }, std::runtime_error);
111}107}
112108
113TEST_F(ConnectionResourceMap, can_access_buffers_from_surface)109TEST_F(ConnectionResourceMap, can_access_buffers_from_surface)
114110
=== modified file 'tests/unit-tests/client/test_protobuf_rpc_channel.cpp'
--- tests/unit-tests/client/test_protobuf_rpc_channel.cpp 2017-05-08 03:04:26 +0000
+++ tests/unit-tests/client/test_protobuf_rpc_channel.cpp 2017-07-19 05:37:29 +0000
@@ -840,3 +840,27 @@
840 std::make_shared<mtd::NullClientEventSink>()};840 std::make_shared<mtd::NullClientEventSink>()};
841 channel.on_data_available();841 channel.on_data_available();
842}842}
843
844TEST_F(MirProtobufRpcChannelTest, ignores_update_message_for_unknown_buffer)
845{
846 mir::protobuf::EventSequence seq;
847 auto request = seq.mutable_buffer_request();
848 request->mutable_buffer()->set_buffer_id(42);
849 request->set_operation(mir::protobuf::BufferOperation::update);
850
851 set_async_buffer_message(seq, *transport);
852
853 channel->on_data_available();
854}
855
856TEST_F(MirProtobufRpcChannelTest, ignores_delete_message_for_unknown_buffer)
857{
858 mir::protobuf::EventSequence seq;
859 auto request = seq.mutable_buffer_request();
860 request->mutable_buffer()->set_buffer_id(42);
861 request->set_operation(mir::protobuf::BufferOperation::remove);
862
863 set_async_buffer_message(seq, *transport);
864
865 channel->on_data_available();
866}
843867
=== modified file 'tests/unit-tests/compositor/test_client_buffers.cpp'
--- tests/unit-tests/compositor/test_client_buffers.cpp 2017-05-08 03:04:26 +0000
+++ tests/unit-tests/compositor/test_client_buffers.cpp 2017-07-19 05:37:29 +0000
@@ -79,7 +79,6 @@
79 auto id = map.add_buffer(mt::fake_shared(stub_buffer));79 auto id = map.add_buffer(mt::fake_shared(stub_buffer));
80 auto buffer = map.get(id);80 auto buffer = map.get(id);
8181
82 EXPECT_CALL(*mock_sink, remove_buffer(Ref(*buffer)));
83 map.remove_buffer(id);82 map.remove_buffer(id);
84 map.send_buffer(id);83 map.send_buffer(id);
85}84}

Subscribers

People subscribed via source and target branches