MultiThreadedCompositor deadlocks
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Mir |
Fix Released
|
High
|
Alberto Aguirre | ||
0.4 |
Fix Released
|
High
|
Alberto Aguirre | ||
mir (Ubuntu) |
Fix Released
|
High
|
Unassigned |
Bug Description
The easiest way to reproduce is to use double buffering - src/server/
auto switching_bundle = std::make_
auto switching_bundle = std::make_
Then:
mir_demo_
mir_demo_
In the shell: ALT+Ctrl+<arrow keys> to change orientation which will restart the compositor.
It's a race between 3 threads:
Thread A owns SceneObserver:
Thread B owns CompositingFunc
Thread C executing display_
Related branches
- PS Jenkins bot (community): Approve (continuous-integration)
- Alan Griffiths: Approve
- Alexandros Frantzis (community): Approve
-
Diff: 20 lines (+1/-2)1 file modifiedsrc/server/compositor/multi_threaded_compositor.cpp (+1/-2)
Changed in mir: | |
status: | New → In Progress |
Changed in mir: | |
status: | In Progress → Fix Committed |
Changed in mir: | |
milestone: | 0.4.0 → 0.5.0 |
Changed in mir: | |
milestone: | 0.5.0 → none |
status: | Fix Committed → Fix Released |
Changed in mir: | |
milestone: | none → 0.5.0 |
status: | Fix Released → Fix Committed |
Changed in mir: | |
status: | Fix Committed → Fix Released |
Also see duplicate bug 1335735, for a manifestation of this bug in the tests.