Xen orchestra VM Console broken?
Interestingly console for some old VM's with old OS are working, like centos 6, debian 8 but anything above those (centos7, debian 10, debian 11) aren't. I'm getting same errors in browser as listed by @bberndt earlier. This can be found from host
Apr 14 09:55:45 xs xapi: [debug|xs|33053260 INET :::80|Connection to VM console R:7839b84e856e|console] VM OpaqueRef:be204b50-6028-41f7-9744-e94ad7329046 console port: Some unix:/var/run/xen/vnc-290 Apr 14 09:55:45 xs xapi: [error|xs|33053260 INET :::80|Connection to VM console R:7839b84e856e|console] No implementation for web-sockets console proxy to a Unix domain socket Apr 14 09:55:46 xs xapi: [error|xs|33053260 INET :::80||backtrace] Connection to VM console R:7839b84e856e failed with exception (Failure "ws_proxy: not implemented") Apr 14 09:55:46 xs xapi: [error|xs|33053260 INET :::80||backtrace] Raised (Failure "ws_proxy: not implemented") Apr 14 09:55:46 xs xapi: [error|xs|33053260 INET :::80||backtrace] 1/1 xapi @ xs Raised at file (Thread 33053260 has no backtrace table. Was with_backtraces called?, line 0 Apr 14 09:55:46 xs xapi: [error|xs|33053260 INET :::80||backtrace]
So far i've tested with XO built with XenOrchestraInstallerUpdater (obviously ;)) and also built one manually, same symptoms. I've tried XO with and without reverse proxy, with http, with https, with one in same private network as XCP-ng host, with one connecting to it over VPN. No special firewalling or filtering in between and no HTTP proxy.
But as the error from host says, it sounds like it’s simply missing support for this type of console connection.
E: and just for the record. wsproxy package is installed:
# rpm -q wsproxy wsproxy-1.6.0-4.el7.centos.x86_64
@ronivay Do you mean it works for PV guests but not HVM ones?
edit: that might be the reason why we can't reproduce since we probably test on PV guest
Yeah good point, all those old ones are indeed PV guests and all the rest are HVM.
@ronivay that's a great information. I can reproduce the comportment with xenserver 7.1 CU 2
from this PR: https://github.com/vatesfr/xen-orchestra/pull/6191
Thanks. This seems to fix it for me at least. XO logs
FALLBACKfor those HVM VM's and console opens up fine.
I'm making a little code cleanup before merging in master (removing console , adding changelog)
We'll probably make another patch release with this fix.
I'm glad you saw it and give us such a precise feedback.
You need both HVM guest AND XS < 7.2
@olivierlambert Yes, that was the case of one of the tests as far as I can tell.
I don't know if this helps:
most of my VMs are Windows. There are a few Linux, Centos 7+, Rocky, and Ubuntu 18.
the production XO I use, is behind an Apache reverse proxy, using https. The temporary one, is just XO, using http on 8080. Looks like all of these are PVHVM, (so, HVM?) it claims. Both of these XO's are VMs on the same host, and the other hosts are on the same subnet, but some are on a different VLAN. There are also a number that are in a co-location facility, connected via a point to point fiber link, on a different VLAN, but all behind our edge router.
Console working: XCP 8.1, XS 7.1
Console not working: XCP 7.6 - I can't say for sure that these have any updates applied, though.
@stormi at least it failed on 7.1CU2 installed this morning.
I implemented a fallback not checking the version, but catching the specific error message and going back to the old method
@bberndt are you able to test the fix ?
@florent I see that the issue is still open, but looks like PR https://github.com/vatesfr/xen-orchestra/pull/6191 was merged so i assume it's not WIP anymore? Just wanted to let you know that some of the changes in that PR before merge made the initial fix non functional. Tested with installation from latest master branch commit.
Errors in browser have changed slightly:
Failed when connecting: Failed to connect to server ( (code: 1005)) util.js:44:54 Error util.js:44 _fail rfb.js:578 f rfb.js:233 onclose websock.js:305
Tried changing state of a disconnected RFB object util.js:44:54 Error util.js:44 _updateConnectionState rfb.js:473 disconnect rfb.js:284 _clean react-novnc.js:66 componentWillUnmount react-novnc.js:115 React 139
XO doesn't log anything related to fallback method, just a normal
console proxyINFO message. Host still gives the same
Failure "ws_proxy: not implemented"error and seems that the fallback to TCP doesn't happen and console doesn't open. Still works for PV guests as it did before.
@ronivay hi , something should not have worked as intended, I'm working on it. Your server is a 7.6 ?
yeah it’s 7.6 i see this with
@ronivay hi, can you test this branch
fix_console_bisbefore we merge it?
thank you for your report
@florent thanks, yeah this seems to fix it again.
Updated to Master build, a66ae, xo-server 5.92.0, xo-web 5.96.0.
Consoles seem to work fine again.