Comment 9 for bug 1838358

Revision history for this message
Matthew Ruffell (mruffell) wrote :

Hi Lukasz,

We are in luck, after some very helpful debugging done by the customer, I have
been able to reliably reproduce this issue myself.

Firstly, this issue only affects users of Ubuntu inside a VMware Horizon VDI,
and only occurs after you install the VMware Horizon Agent for Linux.

The issue can be replicated reliably in the customer environment, and several
hundred users have been affected.

I downloaded and installed the Horizon Agent
VMware-horizonagent-linux-x86_64-7.9.0-13916467.tar.gz in my test 18.04 VM.

Download location [1] (Requires registration)
Installation Instructions [2]

I now see gnome-shell and firefox act strange, with a large delay in input to
the password field and having the box clearing randomly.

The customer also sees this behaviour. If the customer enables NVIDIA GRID
graphics acceleration, then gnome-shell freezes instead of having the large
input delay. Disabling graphics acceleration shows the behaviour I can
reproduce, of seeing large input delay and intermittent gnome-shell lockups.

I did some digging, and it seems the Horizon agent replaces some gnome-shell
libraries with its own.

# openssl sha256 ./usr/lib/gnome-shell/libgnome-shell.so
bd86f21646db0be70139fa75879c6e56dd28b849bfc4a8ed4fae390c8baddddc
# openssl sha256 ./home/ubuntu/VMware-horizonagent-linux-x86_64-7.9.0-13916467/sso/ubuntu/1804/libgnome-shell.so
bd86f21646db0be70139fa75879c6e56dd28b849bfc4a8ed4fae390c8baddddc

# openssl sha256 ./usr/lib/vmware/viewagent/sso/backup/libgnome-shell.orig.so
381698f0554e53512c3627afd170dcd1567fa833d9a0e19fb36c0054296ead00
# openssl sha256 ./home/ubuntu/VMware-horizonagent-linux-x86_64-7.9.0-13916467/sso/ubuntu/1804/libgnome-shell.orig.so
381698f0554e53512c3627afd170dcd1567fa833d9a0e19fb36c0054296ead00

VMware Horizon has a feature called "True SSO" [3] which seems to enable users
to authenticate once to the VMware Identity Manager, and then use a SSO token
afterwards to log into supported websites.

From what I can see, VMware have built their own custom gnome-shell libraries
and modified their library to implement the True SSO feature, which probably
uses interactions between gnome-shell and ibus to detect password input fields
and automate password entry.

When I revert the custom gnome-shell library to the one Canonical provides in
the Ubuntu 18.04 main archive, the issue is fixed, and I can enter text in
password fields normally.

From our side, Canonical cannot support these custom gnome-shell libraries,
since we do not have source code for them and we don't know whats in them or
how they are built.

What we can do is work around them, and the proposed change to ibus does
exactly that. With those environment variables in place, input is "discarded"
by ibus and passed directly into the application, and likely skips the
"True SSO" functionality which is breaking Firefox.

A case has now been opened with VMware so they can fix their custom gnome-shell
libraries, but for now, the ibus workaround is a agreeable solution for this
customer, mostly since they do not use the "True SSO" functionality.

I can now replicate the problem, and customer is also on board to test the
-proposed package in their environment.

I can now verify myself that the test package in my ppa works around the problem
successfully.

Lukasz, I hope that answers some of your questions.

Matthew

[1] https://my.vmware.com/group/vmware/evalcenter?p=horizon-7#tab_download
[2] https://docs.vmware.com/en/VMware-Horizon-7/7.1/com.vmware.horizon-view.linuxdesktops.doc/GUID-F06FF1A7-BDEF-4269-B2AB-C62819D4FCCD.html
[3] https://blogs.vmware.com/euc/2016/03/true-sso-single-sign-on-view-identity-manager-authenticate.html