Mir

Merge lp:~raof/mir/maybe-fix-deadlocking-mesa-test into lp:mir

Proposed by Chris Halse Rogers on 2016-08-18
Status: Merged
Approved by: Chris Halse Rogers on 2016-08-18
Approved revision: 3654
Merged at revision: 3654
Proposed branch: lp:~raof/mir/maybe-fix-deadlocking-mesa-test
Merge into: lp:mir
Diff against target: 13 lines (+1/-1)
1 file modified
tests/unit-tests/platforms/mesa/kms/test_display_configuration.cpp (+1/-1)
To merge this branch: bzr merge lp:~raof/mir/maybe-fix-deadlocking-mesa-test
Reviewer Review Type Date Requested Status
Mir CI Bot continuous-integration Approve on 2016-08-18
Alberto Aguirre (community) Approve on 2016-08-18
Daniel van Vugt 2016-08-18 Approve on 2016-08-18
Review via email: mp+303209@code.launchpad.net

Commit message

Ensure a mt::Signal lives at least as long as any callback runnning on the relevant MainLoop.

This is (a) obviously more correct, and (b) *seems* to resolve a crazy deadlock where MesaDisplayConfigurationTest.reads_updated_subpixel_information blocks indefinitely waiting on a lock to be taken by std::condition_variable::notify_all().

(Probably) Fixes: https://bugs.launchpad.net/mir/+bug/1613352

To post a comment you must log in.
Daniel van Vugt (vanvugt) wrote :

Sure, land it now, assess success later.

review: Approve
Alberto Aguirre (albaguirre) wrote :

It could explain it...LGTM.

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

PASSED: Continuous integration, rev:3654
https://mir-jenkins.ubuntu.com/job/mir-ci/1478/
Executed test runs:
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-mir/1830
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-0-fetch/1884
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/1875
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial+overlay/1875
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=yakkety/1875
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=yakkety/1854
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=yakkety/1854/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/1854
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial+overlay/1854/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=yakkety/1854
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=yakkety/1854/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/1854
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/1854/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/1854
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/1854/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/1854
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial+overlay/1854/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://mir-jenkins.ubuntu.com/job/mir-ci/1478/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 'tests/unit-tests/platforms/mesa/kms/test_display_configuration.cpp'
2--- tests/unit-tests/platforms/mesa/kms/test_display_configuration.cpp 2016-08-10 00:44:49 +0000
3+++ tests/unit-tests/platforms/mesa/kms/test_display_configuration.cpp 2016-08-18 02:25:50 +0000
4@@ -429,8 +429,8 @@
5
6 resources.prepare();
7
8+ mt::Signal handler_signal;
9 MainLoop ml;
10- mt::Signal handler_signal;
11 display->register_configuration_change_handler(ml.ml, [&handler_signal]{handler_signal.raise();});
12 fake_devices.emit_device_changed(syspath);
13 ASSERT_TRUE(handler_signal.wait_for(10s));

Subscribers

People subscribed via source and target branches