Mir

Unity8 session is a black screen in VMWare (Fusion on OSX)

Bug #1611804 reported by Jouni Helminen
12
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Canonical System Image
Incomplete
Undecided
Unassigned
Mir
Expired
Undecided
Unassigned

Bug Description

I am unable to use Unity8 in 16.04 in VMWare.

Steps to reproduce:

1) Install latest VMWare Fusion
2) Download and install 16.04 in VMWare
3) Follow the steps to enable Unity8 session in 16.04 as described here: http://mhall119.com/2016/05/dogfooding-unity-8/
4) Restart, and log into a Unity8 session from the greeter

The result is a black screen, probably mir crashing.

Some logs here:

unity8.log
https://gist.github.com/jounih/96cae2256280f298dfb3f27f922d04c2

unity-system-compositor.log
https://gist.github.com/jounih/50bace984423602c7fe26a05a457e02d

Revision history for this message
Gerry Boland (gerboland) wrote :

I've tried VMWare 12 on my Xenial Ubuntu install - I installed a daily Yakkety ISO from here:
http://cdimage.ubuntu.com/daily-live/current/
and just installed the unity8-desktop-session.

Note I was getting an error from the VMWare player that 3d acceleration was disabled. I just added

mks.gl.allowBlacklistedDrivers = "TRUE"

to my ~/.vmware/preferences file, and restarted VMWare.

Then I was able to log into Unity8 session just fine.

I am finding it very buggy however, mouse position has weird invisible borders, font rendering bugs, screen can black out and then will never draw again. Nothing problematic in the log files I can find.

Revision history for this message
Daniel van Vugt (vanvugt) wrote : Re: Unity8 session is a black screen in VMWare

Jouni's logs unfortunately don't show any crashes or hints as to what's wrong. unity-system-compositor and unity8 both indicate they're running fine.

Most likely these are bugs specific to the VMware graphics drivers...

Also note, we plan on a generic fallback option in future that would skip over such bugs in VMware --> bug 1118903

summary: - Unity8 session is crashing in VMWare
+ Unity8 session is a black screen in VMWare
tags: added: black-screen
Changed in mir:
status: New → Incomplete
Changed in canonical-devices-system-image:
status: New → Incomplete
tags: added: unity8-desktop
tags: added: vm vmware
tags: removed: vmware
Revision history for this message
Jouni Helminen (jounihelminen) wrote :

I replicated Gerry's steps - 16.10 image and adding mks.gl.allowBlacklistedDrivers = "TRUE"

Still black screen when logging into Unity8 Session. I have tried with GPU acceleration on and off from VMWare preferences.

VMWare Workstation Pro isn't available for OSX so I'm using VMWare Fusion

Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Gerry:
When your screen blacks out, do you get any interesting errors in unity-system-compositor.log?

If Mir is reporting a crash, that's our fault. If no errors are being reported and it's just a buggy VMware driver, then that's not our fault but is still our responsibility to provide a reliable alternative (LP: #1118903).

summary: - Unity8 session is a black screen in VMWare
+ Unity8 session is a black screen in VMWare (Fusion on OSX)
Revision history for this message
Gerry Boland (gerboland) wrote :

Nope, no fail in the logs afaics:
USC: http://pastebin.ubuntu.com/23050204/

Revision history for this message
Gerry Boland (gerboland) wrote :

Oh weird, if I use VMWare's menu to send Ctrl+Alt+Del to the VM, unity8 starts drawing again.
Could it be screen blanking??

Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Yes, yakkety has bugs with over-eager blanking right now. We have the new repowerd and the old code both trying to blank the screen at different times. So it goes black much more often.

Revision history for this message
David Barth (dbarth) wrote :

I am experiencing the same issue on VMware Fusion, running Xenial.

I am able to start mir_demo_server_minimal and see the white cursor (from a VT).
But mir seems to fail to load libraries due to symbol errors.

[2016-08-26 12:26:53.245693] mircommon: Loading module: /usr/lib/x86_64-linux-gn
u/mir/server-platform/server-mesa-x11.so.9
[2016-08-26 12:26:53.246062] <WARNING> mircommon: Failed to load module: /usr/li
b/x86_64-linux-gnu/mir/server-platform/server-mesa-x11.so.9 (error was:/usr/lib/
x86_64-linux-gnu/mir/server-platform/server-mesa-x11.so.9: symbol _ZN3mir8dispat
ch10ReadableFdC1ENS_2FdERKSt8functionIFvvEE, version MIR_COMMON_5.1 not defined
in file libmircommon.so.6 with link time reference)
[2016-08-26 12:26:53.246081] mircommon: Loading module: /usr/lib/x86_64-linux-gn
u/mir/server-platform/input-evdev.so.5
ERROR: /build/mir-gU7Q5V/mir-0.24.0+16.04.20160815.3/src/server/graphics/default
_configuration.cpp(132): Throw in function mir::DefaultServerConfiguration::the_
graphics_platform()::<lambda()>
Dynamic exception type: boost::exception_detail::clone_impl<boost::exception_det
ail::error_info_injector<std::runtime_error> >
std::exception::what: Exception while creating graphics platform
ERROR: /build/mir-gU7Q5V/mir-0.24.0+16.04.20160815.3/src/platform/graphics/platf
orm_probe.cpp(63): Throw in function std::shared_ptr<mir::SharedLibrary> mir::gr
aphics::module_for_device(const std::vector<std::shared_ptr<mir::SharedLibrary>
>&, const mir::options::ProgramOption&)
Dynamic exception type: boost::exception_detail::clone_impl<boost::exception_det
ail::error_info_injector<std::runtime_error> >
std::exception::what: Failed to find platform for current system

I have the stable-phone-overlay PPA as well. I apt-get install'ed mir-graphics-driver-desktop hopefully pulling all of the platform-graphics-* packages needed (kms9, kms10, x9, x10)

unity-system-compositor.log shows the following error:

[2016-08-26 12:37:37.357849] <WARNING> mircommon: Failed to load module: /usr/lib/x86_64-linux-gnu/mir/server-platform/server-mesa-x11.so.9 (error was:/usr/lib/x86_64-linux-
gnu/mir/server-platform/server-mesa-x11.so.9: symbol _ZN3mir8dispatch10ReadableFdC1ENS_2FdERKSt8functionIFvvEE, version MIR_COMMON_5.1 not defined in file libmircommon.so.6
with link time reference)

Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Hi David,

Sorry about that. You have just discovered an accidental ABI break in the Mir 0.24 release that we failed to notice. The symbol _ZN3mir8dispatch10ReadableFdC1ENS_2FdERKSt8functionIFvvEE got moved from version stanza MIR_COMMON_5.1 into MIR_COMMON_0.24.

To work around the issue just uninstall mir-platform-graphics-mesa-x9. All you need is mir-platform-graphics-mesa-x10.

Revision history for this message
David Barth (dbarth) wrote :

I tested this further, after fixing the above problem.

Trying to start a guest session using the Unity8 session, the screen goes black, but the compositor runs with no apparent errors (see log attached). I then try to start mir_demo_client_basic -m /run/mir_socket, switch to VT-8, nothing, then back to VT-1, I then see:

Failed to create surface: Error processing request: An output ID must be specifi
ed
Internal error details: /build/mir-gU7Q5V/mir-0.24.0+16.04.20160815.3/src/server
/shell/system_compositor_window_manager.cpp(66): Throw in function virtual mir::
frontend::SurfaceId mir::shell::SystemCompositorWindowManager::add_surface(const
 std::shared_ptr<mir::scene::Session>&, const mir::scene::SurfaceCreationParamet
ers&, const std::function<mir::IntWrapper<mir::frontend::detail::SessionsSurface
IdTag>(const std::shared_ptr<mir::scene::Session>&, const mir::scene::SurfaceCre
ationParameters&)>&)
Dynamic exception type: boost::exception_detail::clone_impl<boost::exception_det
ail::error_info_injector<std::runtime_error> >
std::exception::what: An output ID must be specified
 and Server assigned surface no id

Revision history for this message
David Barth (dbarth) wrote :
Revision history for this message
Alan Griffiths (alan-griffiths) wrote :

David, re: "An output ID must be specified" USC requires that clients (assumed to be nested servers) allocate fullscreen surfaces on specified outputs. (Actually, I'm surprised it doesn't reject the connection before trying to create the surface as DM probably didn't tell it to expect that client.)

You can't specify an output when connecting mir_demo_client_basic. Try one of the egl clients and set the output ID from the commandline.

Revision history for this message
Launchpad Janitor (janitor) wrote :

[Expired for Mir because there has been no activity for 60 days.]

Changed in mir:
status: Incomplete → Expired
Revision history for this message
vmware-gos-Yuhua (yhzou) wrote :

This issue is alive for Ubuntu 17.04 in VMware ESXi

Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Yeah we know VMware's not working right now. Please see bug 1560498 which might be the issue.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.