gravitational / teleport

The easiest, and most secure way to access and protect all of your infrastructure.
https://goteleport.com
GNU Affero General Public License v3.0
17.61k stars 1.76k forks source link

Graphical glitches when connecting to a Windows 2022 Server instance #37032

Closed bl-nero closed 9 months ago

bl-nero commented 9 months ago

Expected behavior: No glitches.

Current behavior: When signing in, I often see glitches in form of various regions of screen repeated in unexpected places. Moving windows around also frequently leaves parts of their images, and sometimes even areas of "random noise".

Screenshot 2024-01-22 at 18 36 27

Bug details: Teleport version: v15.0.0-alpha.2 Browser: Chrome 120 / arm64 (MacOS) Recreation steps:

  1. Set up a single-node v15 cluster.
  2. Get a Windows Server 2022 instance from Amazon Lightsail.
  3. Add a Windows service to your cluster's auth node, replacing hostname and host-ip.
    windows_desktop_service:
    listen_addr: 0.0.0.0:3028
    enabled: yes
    static_hosts:
    - name: hostname
    ad: false
    addr: host-ip
  4. Add Windows access to your Teleport role and connect to the Windows instance using our Web desktop client.
  5. If you don't see the problem, open any window and move it around.
zmb3 commented 9 months ago

@ibeckermayer @probakowski did you see any of this during your test plan? Maybe t3.small on lightsail is just very performant?

ibeckermayer commented 9 months ago

Given my perf testing experience it could be that t3.small is just too weak, but I wasn't experiencing anything major like this. The only time I have encountered such obvious glitches is in cases where the server is sending back full bitmaps. This will happen if the server is set up following instructions (or using the scripts) from <v15.

@bl-nero is this potentially either an older (pre-existing) windows server and/or did you follow the older instructions or use an older windows installer?

probakowski commented 9 months ago

I've something similar before, it went away after https://github.com/gravitational/teleport/pull/36330 so it makes sense to update to version that includes that (also build for v15.0.0-alpha.2 was borked, right? alpha.5 was first proper version of 15?)

bl-nero commented 9 months ago

@ibeckermayer These are all fresh installations, made using the official guidelines from our docs, on v15. Indeed, though, the walkthrough instructions that I used were the "default" ones, so they probably belonged to v15. The Windows VMs are also "fresh", but indeed, the setup executable might have been old. I'll look at what changed and try to use the latest one.

The only point where I diverged from the official instruction is that I was too lazy to set up a separate machine just for the Windows desktop service, and I put it on the same VM as the auth and proxy; however, as the graphs below prove, this shouldn't have affected anything.

In the meantime, I did a Taylor Swift stress test, and here's how it looks like: https://www.loom.com/share/5a2d2abc4d2643cfaf1909fee717bf76

The CPU utilization on Windows was below 60%: Screenshot 2024-01-23 at 12 25 52

On the Teleport node, it was below 20%: Screenshot 2024-01-23 at 12 26 31

Additional screenshot of the "random noise" glitch: Screenshot 2024-01-23 at 12 10 48

I'll look at the setup executable, then I'll try to use a beefier Windows machine, and will report back.

@probakowski Yes, alpha.5 is the first proper version, and that's the one I used.

bl-nero commented 9 months ago

@ibeckermayer Yup, confirmed: I was using a v14 setup executable. The v15 one gives correct results (almost). I still can see a "random noise" glitch (see top left corner of this short video: https://www.loom.com/share/1ad18aed61034fbf86f4d2da9a85d235). However, it's nothing as disruptive, so if nobody feels like it's important, we can close this one.

ibeckermayer commented 9 months ago

@bl-nero nice, yeah that makes sense then. The v14 setup exe wasn't setting up remotefx correctly, so you were getting back full bitmaps which we don't really support (there's vestigial support that I added for development, but it's not actually something we want people to be using). @probakowski is working on a fix that will just end the session and alert the user that they need to update the settings if any bitmaps are encountered.

That noise glitch isn't ideal, but I'd say it's a separate issue, since it's not something that will block the release. (I'm not sure what would be causing that. Maybe I encounter such a thing from time to time as well.) Thanks for double checking, I'll close this one out.