Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unsupported tight encoding with noVNC 1.0.0 #1273

Closed
KeithMnemonic opened this issue Aug 6, 2019 · 11 comments
Closed

Unsupported tight encoding with noVNC 1.0.0 #1273

KeithMnemonic opened this issue Aug 6, 2019 · 11 comments
Labels
Milestone

Comments

@KeithMnemonic
Copy link

When using noVNC 1.0.0 to connect to the VNC server of an instance running on ESXi 6.7, the following error occurs.

Failed while connected: Unsupported encoding (encoding: -260)

Using RealVNC, I can directly connect to the VNC server provided by ESX to that vm so I know the ESX firewall and such is correct.

I can reproduce this by simply running this on a SLES 12 SP3 host

sudo ./websockify.py -v --web= HOSTIP:PORT ESXIP:VNCPORT

Using Chrome developer tools, I can see it connect and it will actually register mouse clicks. The instant you type any character in the vnc screeen though it fails with

Sending keysym (down): 100
keyboard.js:42 onkeyevent up, keysym: 100 , code: KeyD
rfb.js:376 Sending keysym (up): 100
rfb.js:685 Failed while connected: Unsupported encoding (encoding: -260)
_fail @ rfb.js:685
_framebufferUpdate @ rfb.js:1517
_normal_msg @ rfb.js:1422
_handle_message @ rfb.js:725
_recv_message @ websock.js:304
rfb.js:635 New state 'disconnecting', was 'connected'.
rfb.js:427 >> RFB.disconnect
keyboard.js:276 >> Keyboard.allKeysUp
keyboard.js:281 << Keyboard.allKeysUp
websock.js:239 Closing WebSocket connection

Expected behavior
The console should connect without any issues.

Screenshots
JS stack trace illustrates the issue.

Client (please complete the following information):

  • OS: Windows 10
  • Browser: Chrome
  • Browser version: Version 75.0.3770.142 (Official Build) (64-bit)

Server (please complete the following information):

  • noVNC version: 1.0.0
  • VNC server: Whatever ESX 6.7 uses, seems like some form of Tight
  • WebSocket proxy: websockify 0.8.0.
  • HOST OS: SLES 12 SP3

I resolved the issue by applying three changes to the encodings.js file

Add:

encodingTightPNG: -260,

Add:

encodingTightPNG: -260,

Remove:

https://github.com/novnc/noVNC/blob/v1.0.0/core/encodings.js#L22

Once I applied these changes, I could successfully access the VNC console

@samhed
Copy link
Member

samhed commented Aug 8, 2019

How come you are using noVNC 1.0.0? This was fixed in 1.1.0

@samhed samhed added the fixed label Aug 8, 2019
@KeithMnemonic
Copy link
Author

Currently the Rocky release of OpenStack requires 1.0.0. There is a patch in process to change this to 1.1.0. https://review.opendev.org/#/c/674916/ This is related to #1220

@samhed samhed changed the title Issue connecting to the VNC server provided by an instance on vSphere Unsupported tight encoding with noVNC 1.0.0 Aug 8, 2019
@samhed
Copy link
Member

samhed commented Aug 8, 2019

Well OK, it's fixed as far as we are concerned anyway.

@samhed samhed closed this as completed Aug 8, 2019
@samhed samhed added this to the v1.1.0 milestone Aug 8, 2019
@KeithMnemonic
Copy link
Author

How is it fixed? There are other version of OpenStack that are bound to 1.1.0 that can not be patched. Or are you referring to the fact I included a workaround?

@samhed
Copy link
Member

samhed commented Aug 8, 2019

I wasn't referring to your workaround. Why would a OpenStack version that uses noVNC 1.1.0 need to be patched?

Apologies if we are misunderstanding each other here, could you explain what you think we should do? Keep these things in mind:

  • This is fixed in a stable release of noVNC (1.1.0)
  • We can't control what version of noVNC other projects use

@KeithMnemonic
Copy link
Author

Only the two most recent version support 1.1.0. All previous only work with 1.0.0. We have a patch to allow Rocky (3rd most recent) to work with 1.1.0 but there are other versions that wont get a patch to allow them to use 1.1.0

@samhed
Copy link
Member

samhed commented Aug 8, 2019

Again - what would you wish that we did?

@KeithMnemonic
Copy link
Author

I was not sure if you accepted patches to previous versions? If not it can remain closed and if anyone else runs into the issue they can find the workaround. If you accept patches, can I do a PR on 1.0.0 to like 1.0.1 or something?

@CendioOssman
Copy link
Member

I'm afraid we don't have the resources to maintain bug fix branches, so we really need to have people updating to the latest version to get all fixes.

@samhed
Copy link
Member

samhed commented Aug 14, 2019

Ok, sorry for the misunderstanding @KeithMnemonic

@KeithMnemonic
Copy link
Author

no problem at least it is documented now. thanks again

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants