Merge lp:~alan-griffiths/unity-system-compositor/rework-DeadlockLP1491566 into lp:unity-system-compositor
| Status: | Merged |
|---|---|
| Approved by: | Alan Griffiths on 2016-02-25 |
| Approved revision: | 285 |
| Merged at revision: | 282 |
| Proposed branch: | lp:~alan-griffiths/unity-system-compositor/rework-DeadlockLP1491566 |
| Merge into: | lp:unity-system-compositor |
| Diff against target: |
119 lines (+34/-33) 1 file modified
tests/integration-tests/test_deadlock_lp1491566.cpp (+34/-33) |
| To merge this branch: | bzr merge lp:~alan-griffiths/unity-system-compositor/rework-DeadlockLP1491566 |
| Related bugs: |
| Reviewer | Review Type | Date Requested | Status |
|---|---|---|---|
| PS Jenkins bot | continuous-integration | Approve on 2016-02-25 | |
| Alexandros Frantzis (community) | 2016-02-19 | Approve on 2016-02-25 | |
| Mir CI Bot | continuous-integration | Approve on 2016-02-25 | |
|
Review via email:
|
|||
Commit Message
Rework DeadlockLP1491566 tests to avoid spinlocks
Description of the Change
Rework DeadlockLP1491566 tests to avoid spinlocks
This test has failed intermittently on ARM64 during release. (But I've not been able to reproduce the failure,)
I hope that any sensitivity to machine load or scheduling will be reduced by changing the synchronization mechanism.
| PS Jenkins bot (ps-jenkins) wrote : | # |
PASSED: Continuous integration, rev:282
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
| Alexandros Frantzis (afrantzis) wrote : | # |
I don't know what the problem on arm64 is, so is hard to tell if the code changes will help. The old and the new code are equally correctly, so, unless there is arm64 libstdc++ bug the new code is working around, I think the change that has the most potential to help is the timeout increase.
+ std::unique_
+ waiting_
This wait doesn't gain us anything since it doesn't guarantee that set_power_mode will have started running and acquired any locks.
// Wait a bit for async operation to get processed
- std::this_
- std::chrono:
The wait is used to (drastically) increase the probability of reproducing the deadlock scenario. If we don't wait enough, and depending on thread scheduling, the dimmer/power_off callback may finish before the async invocation of set_power_mode gets a chance to run and acquire the locks.
| Mir CI Bot (mir-ci-bot) wrote : | # |
PASSED: Continuous integration, rev:283
https:/
Executed test runs:
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
- 283. By Alan Griffiths on 2016-02-24
-
Rework again following review feedback
| PS Jenkins bot (ps-jenkins) wrote : | # |
PASSED: Continuous integration, rev:283
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
- 284. By Alan Griffiths on 2016-02-24
-
Reinstate abort() failure mode
| Mir CI Bot (mir-ci-bot) wrote : | # |
PASSED: Continuous integration, rev:284
https:/
Executed test runs:
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
| PS Jenkins bot (ps-jenkins) wrote : | # |
PASSED: Continuous integration, rev:284
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
- 285. By Alan Griffiths on 2016-02-25
| Mir CI Bot (mir-ci-bot) wrote : | # |
PASSED: Continuous integration, rev:285
https:/
Executed test runs:
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
| PS Jenkins bot (ps-jenkins) wrote : | # |
PASSED: Continuous integration, rev:285
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://

PASSED: Continuous integration, rev:282 /mir-jenkins. ubuntu. com/job/ usc-ci/ 7/ /mir-jenkins. ubuntu. com/job/ build-usc/ 7 /mir-jenkins. ubuntu. com/job/ build-0- fetch/149 /mir-jenkins. ubuntu. com/job/ build-1- sourcepkg/ release= vivid+overlay/ 145 /mir-jenkins. ubuntu. com/job/ build-1- sourcepkg/ release= xenial/ 145 /mir-jenkins. ubuntu. com/job/ build-2- binpkg- usc/arch= amd64,release= xenial/ 11 /mir-jenkins. ubuntu. com/job/ build-2- binpkg- usc/arch= amd64,release= xenial/ 11/artifact/ output/ *zip*/output. zip /mir-jenkins. ubuntu. com/job/ build-2- binpkg- usc/arch= armhf,release= vivid+overlay/ 11 /mir-jenkins. ubuntu. com/job/ build-2- binpkg- usc/arch= armhf,release= vivid+overlay/ 11/artifact/ output/ *zip*/output. zip /mir-jenkins. ubuntu. com/job/ build-2- binpkg- usc/arch= i386,release= xenial/ 11 /mir-jenkins. ubuntu. com/job/ build-2- binpkg- usc/arch= i386,release= xenial/ 11/artifact/ output/ *zip*/output. zip
https:/
Executed test runs:
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild: /mir-jenkins. ubuntu. com/job/ usc-ci/ 7/rebuild
https:/