I recently update my compute nodes with the latest patches and fixes. I believe it updated TurboVNC since interactive desktops would no longer work in OOD. I tracked it down to the “-nohttpd” option that is passed to vncserver when the session starts. It appears that the latest TurboVNC on rhel8(rocky 8) dropped that option. I’m using the official TurboVNC repository from turbovnc.org to install it. It looks like I’m on version 2.2.90-20211222.
I was able to temporarily resolve the issue by removing the “-nohttpd” option from the /opt/ood/ondemand/root/usr/share/gems/2.7/ondemand/2.0.20/gems/ood_core-0.18.1/lib/ood_core/batch_connect/templates/vnc.rb file on the OOD server.
yep, just hit that on CentOS 7 as well after updating our compute nodes which pulled in turbovnc-2.2.90-20211222.x86_64 from the turbovnc repo. the /opt/TurboVNC/bin/vncserver in that release lacks the -no-httpd option. I did a
yum downgrade turbovnc-2.2.6.x86_64
on all my nodes to the previously working for us version turbovnc-2.2.6.x86_64.
The man page would not mention that a command-line option has been removed. It would simply cease to contain a description of that option, the implication being that you should not use any command-line options that are not therein described. The change log entry 3.0 beta1 implies that all command-line options and configuration directives associated with the built-in HTTP server were removed along with that feature. (It isn’t common practice for software to retain command-line options for a non-existent feature.) However, I will modify the change log to make that explicit.
They have also added a new argument, -novnc. The way I read it, -nohttpd is now the default behavior when starting vncserver, and -novnc is now used to start a NoVNC server along with the VNC server.
Doing a yum downgrade turbovnc solves the issue for us, for now at least.
I removed the -nohttpd arg from /opt/ood/ondemand/root/usr/share/gems/2.7/ondemand/2.0.20/gems/ood_core-0.18.1/lib/ood_core/batch_connect/templates/vnc.rb as recommended by @ssivy but that did not resolve the issue. It seems that somewhere else in the stack, -nohttpd is still being applied.
Also, @jeff.ohrstrom, based on the VNC launch command in vnc.rb it looks like any VNC options specified in /etc/ood/config/clusters.d/ are inserted downstream of the -nohttpd, meaning that setting extra_args: "" is not going to remove that option. Is that correct?
Does OSC have a recommended way to solve this problem other than patching core OOD Ruby?
Turbovnc 3.x is has been released - if you want to keep 2.x which supports the -nohttpd option, then modify @ssivy suggested exclude in /etc/yum.repos.d/TurboVNC.repo to read
and hope there’s no security fixes that mandate an upgrade to turbovnc 3.x