Merge lp:~unity-team/qtmir/surviveEmptyTexture into lp:qtmir
| Status: | Merged |
|---|---|
| Approved by: | Gerry Boland on 2015-10-15 |
| Approved revision: | 388 |
| Merged at revision: | 390 |
| Proposed branch: | lp:~unity-team/qtmir/surviveEmptyTexture |
| Merge into: | lp:qtmir |
| Prerequisite: | lp:~gerboland/qtmir/multimonitor |
| Diff against target: |
125 lines (+22/-17) 6 files modified
src/modules/Unity/Application/mirbuffersgtexture.cpp (+7/-2) src/modules/Unity/Application/mirsurface.cpp (+8/-6) src/modules/Unity/Application/mirsurface.h (+1/-1) src/modules/Unity/Application/mirsurfaceinterface.h (+1/-1) src/modules/Unity/Application/mirsurfaceitem.cpp (+4/-6) tests/modules/common/fake_mirsurface.h (+1/-1) |
| To merge this branch: | bzr merge lp:~unity-team/qtmir/surviveEmptyTexture |
| Related bugs: |
| Reviewer | Review Type | Date Requested | Status |
|---|---|---|---|
| Gerry Boland | 2015-10-15 | Approve on 2015-10-15 | |
| PS Jenkins bot | continuous-integration | 2015-10-15 | Needs Fixing on 2015-10-15 |
|
Review via email:
|
|||
This proposal supersedes a proposal from 2015-10-02.
Commit Message
MirSurfaceItem: Survive holding a surface with an empty texture
Survive having a surface whose texture holds no mir buffer at all.
Instead of crashing in such situation we simply don't render it.
Description of the Change
To solve a reasonably common I crash I get when launching a desktop unity8 session where unity8-dash, for some reason, is messed up.
Now with this patch, when this happens, I just get an empty unity8-dash window instead and closing it (which makes it respawn) solves the problem.
* Are there any related MPs required for this MP to build/function as expected? Please list.
Just the prerequisite.
* Did you perform an exploratory manual test run of your code change and any related functionality?
Yes
* If you changed the packaging (debian), did you subscribe the ubuntu-unity team to this MP?
N/A
| Gerry Boland (gerboland) wrote : | # |
Thing is, how do we ever end up in a position that a Mir surface has no texture available?? That is an error in my opinion.
| Daniel d'Andrada (dandrader) wrote : | # |
> Thing is, how do we ever end up in a position that a Mir surface has no
> texture available?? That is an error in my opinion.
It is. I just haven't spent time to find the root cause.
This patch makes MirSurface[Item] code more robust. So instead of crashing because of this issue it just won't try to render it. And adding robustness is never a bad thing even if this patch doesn't try to deal with the root cause (unity8-dash in a weird state, like it didn't start up correctly or is frozen during init, I don't know).
| Gerry Boland (gerboland) wrote : | # |
It will cause a visual glitch though. If the buffer is missing, something has gone wrong. This is just masking the core problem. I don't like this at all.
| Gerry Boland (gerboland) wrote : | # |
This will have to do until we figure out the root cause.
| PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:387
http://
Executed test runs:
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
Click here to trigger a rebuild:
http://
| PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:388
http://
Executed test runs:
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
Click here to trigger a rebuild:
http://
| Gerry Boland (gerboland) wrote : | # |
I still have't tracked down the proper cause, this will have to suffice as workaround until then

FAILED: Continuous integration, rev:386 jenkins. qa.ubuntu. com/job/ qtmir-ci/ 476/ jenkins. qa.ubuntu. com/job/ qtmir-vivid- amd64-ci/ 172/console jenkins. qa.ubuntu. com/job/ qtmir-vivid- armhf-ci/ 172/console jenkins. qa.ubuntu. com/job/ qtmir-vivid- i386-ci/ 54/console jenkins. qa.ubuntu. com/job/ qtmir-wily- amd64-ci/ 209/console jenkins. qa.ubuntu. com/job/ qtmir-wily- armhf-ci/ 209/console jenkins. qa.ubuntu. com/job/ qtmir-wily- i386-ci/ 54/console
http://
Executed test runs:
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
Click here to trigger a rebuild: s-jenkins. ubuntu- ci:8080/ job/qtmir- ci/476/ rebuild
http://