Mir graphics platform determined based on host server outside of snap
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Mir |
New
|
High
|
Unassigned | ||
Unity8 Session Snap |
Triaged
|
High
|
Unassigned | ||
mir (Ubuntu) |
New
|
High
|
Unassigned |
Bug Description
People have reported the unity8 session snap to fail to start, with a log excerpt (http://
ERROR: /build/
Dynamic exception type: boost::
std::exception:
Mir 0.26 is trying to load the mesa graphics v12, which only came in Mir 0.26.1. It seems Mir is somehow expecting for the system-installed graphics v12 to be there in the snap.
affects: | unity8 (Ubuntu) → unity8-session-snap |
tags: | added: ne |
tags: |
added: nested removed: ne |
tags: | added: snaps |
tags: |
added: snap removed: snaps |
That's correct. We only noticed (a bit late) that Mir 0.26.0 had broken the graphics platform ABI but failed to bump the soname. This has happened before, and leaving it is worse than fixing it late (in Mir 0.26.1). So we have corrected the ABI level in Mir 0.26.1 to be 12 rather than 11.
However this does not fully explain the above error. It looks like your snap contains confused binaries. Your build path is "mir-0. 26.0+16. 04.20170126. 3" yet it is actually trying to load "graphics- mesa-kms. so.12" which only exists in Mir 0.26.1. So you seem to have mismatch of binaries in your snap, if not just an incorrect build identifier.
Although that still doesn't fully explain the above error. AFAIK, Mir will load all modules in the drivers directory (server-platform), so if it knows the name is 'graphics- mesa-kms. so.12' then that's probably not the missing file. Perhaps it found 'graphics- mesa-kms. so.12' but that depends on some other library that is missing.
I can't yet see anything Mir is doing wrong but it looks very likely your snap contains incorrect binaries. I can't tell how they are incorrect though.