Virtual Desktop Help

Hi,

I’m pretty new to OOD and trying to spin up a virtual desktop. I have the OOD server running (2402-login-001.domain.edu) and I am able to start the virtual desktop on the node ins039 but the screen is just black.

Here is my output.log file:

Setting VNC password...
Starting VNC server...
Killing Xvnc process ID 1490669
Xvnc process ID 1490669 already killed
Xvnc did not appear to shut down cleanly. Removing /tmp/.X11-unix/X1
Xvnc did not appear to shut down cleanly. Removing /tmp/.X1-lock

Desktop 'TurboVNC: ins039:1 (user)' started on display ins039:1

Log file is vnc.log
Successfully started VNC server on ins039:5901...
Script starting...
Starting websocket server...
Launching desktop 'xfce'...
cp: cannot stat '/etc/xdg/xfce4/panel/default.xml': No such file or directory
[websockify]: pid: 1491193 (proxying 10644 ==> localhost:5901)
[websockify]: log file: ./websockify.log
[websockify]: waiting ...
grep: ./websockify.log: No such file or directory
_IceTransmkdir: Owner of /tmp/.ICE-unix should be set to root
/usr/bin/iceauth:  creating new authority file /tmp/Ll1EF/ICEauthority

(xfwm4:1491236): xfwm4-WARNING **: 13:46:51.827: Unsupported GL renderer (llvmpipe (LLVM 16.0.6, 256 bits)).

(xfce4-session:1491215): xfce4-session-WARNING **: 13:46:51.833: Unable to launch "xfsettingsd": Failed to execute child process “xfsettingsd” (No such file or directory)

(xfce4-session:1491215): xfce4-session-WARNING **: 13:46:51.834: Unable to launch "xfce4-panel": Failed to execute child process “xfce4-panel” (No such file or directory)

(xfce4-session:1491215): xfce4-session-WARNING **: 13:46:51.835: Unable to launch "Thunar": Failed to execute child process “Thunar” (No such file or directory)

(xfce4-session:1491215): xfce4-session-WARNING **: 13:46:51.836: Unable to launch "xfdesktop": Failed to execute child process “xfdesktop” (No such file or directory)

(tracker-miner-fs-3:1491255): Tracker-WARNING **: 13:46:51.858: Unable to get XDG user directory path for special directory &DOCUMENTS. Ignoring this location.

(tracker-miner-fs-3:1491255): Tracker-WARNING **: 13:46:51.858: Unable to get XDG user directory path for special directory &MUSIC. Ignoring this location.

(tracker-miner-fs-3:1491255): Tracker-WARNING **: 13:46:51.858: Unable to get XDG user directory path for special directory &PICTURES. Ignoring this location.

(tracker-miner-fs-3:1491255): Tracker-WARNING **: 13:46:51.858: Unable to get XDG user directory path for special directory &VIDEOS. Ignoring this location.

(tracker-miner-fs-3:1491255): Tracker-WARNING **: 13:46:51.858: Unable to get XDG user directory path for special directory &DOWNLOAD. Ignoring this location.

(tracker-miner-fs-3:1491255): Tracker-WARNING **: 13:46:51.858: Unable to get XDG user directory path for special directory &DOCUMENTS. Ignoring this location.

(tracker-miner-fs-3:1491255): Tracker-WARNING **: 13:46:51.858: Unable to get XDG user directory path for special directory &MUSIC. Ignoring this location.

(tracker-miner-fs-3:1491255): Tracker-WARNING **: 13:46:51.858: Unable to get XDG user directory path for special directory &PICTURES. Ignoring this location.

(tracker-miner-fs-3:1491255): Tracker-WARNING **: 13:46:51.858: Unable to get XDG user directory path for special directory &VIDEOS. Ignoring this location.
[websockify]: started successfully (proxying 10644 ==> localhost:5901)
Scanning VNC log file for user authentications...
Generating connection YAML file...

My vnc.log file:

TurboVNC Server (Xvnc) 64-bit v3.1.90 (build 20250208)
Copyright (C) 1999-2025 The VirtualGL Project and many others (see README.md)
Visit http://www.TurboVNC.org for more information on TurboVNC

19/03/2025 13:46:50 Using security configuration file /etc/turbovncserver-security.conf
19/03/2025 13:46:50 Enabled security type 'tlsvnc'
19/03/2025 13:46:50 Enabled security type 'tlsotp'
19/03/2025 13:46:50 Enabled security type 'tlsplain'
19/03/2025 13:46:50 Enabled security type 'x509vnc'
19/03/2025 13:46:50 Enabled security type 'x509otp'
19/03/2025 13:46:50 Enabled security type 'x509plain'
19/03/2025 13:46:50 Enabled security type 'vnc'
19/03/2025 13:46:50 Enabled security type 'otp'
19/03/2025 13:46:50 Enabled security type 'unixlogin'
19/03/2025 13:46:50 Enabled security type 'plain'
_XSERVTransmkdir: Owner of /tmp/.X11-unix should be set to root
19/03/2025 13:46:50 Desktop name 'TurboVNC: ins039:1 (user)' (ins039:1)
19/03/2025 13:46:50 Protocol versions supported: 3.3, 3.7, 3.8, 3.7t, 3.8t
19/03/2025 13:46:50 Listening for VNC connections on TCP port 5901
19/03/2025 13:46:50   Interface 0.0.0.0
19/03/2025 13:46:50 Framebuffer: BGRX 8/8/8/8
19/03/2025 13:46:50 New desktop size: 1240 x 900
19/03/2025 13:46:50 New screen layout:
19/03/2025 13:46:50   0x00000040 (output 0x00000040): 1240x900+0+0
19/03/2025 13:46:50 Maximum clipboard transfer size: 1048576 bytes
19/03/2025 13:46:50 VNC extension running!

19/03/2025 13:47:02 [1] Got connection from 127.0.0.1 on port 37214
19/03/2025 13:47:03 [1] Normal socket connection
19/03/2025 13:47:03 [1] Using protocol version 3.8
19/03/2025 13:47:03 [1] Enabling TightVNC protocol extensions
19/03/2025 13:47:03 [1] Advertising Tight auth cap 'VENCRYPT'
19/03/2025 13:47:03 [1] Advertising Tight auth cap 'VNCAUTH_'
19/03/2025 13:47:03 [1] Advertising Tight auth cap 'ULGNAUTH'
19/03/2025 13:47:03 [1] Full-control authentication enabled
19/03/2025 13:47:03 Number of connected clients: 1
19/03/2025 13:47:03 [1] Pixel format:
19/03/2025 13:47:03 [1]   32 bpp, depth 24, little endian
19/03/2025 13:47:03 [1]   true colour: max r 255 g 255 b 255, shift r 0 g 8 b 16
19/03/2025 13:47:03 [1] Enabling CopyRect encoding
19/03/2025 13:47:03 [1] Using tight encoding
19/03/2025 13:47:03 [1] rfbProcessClientNormalMessage: ignoring unknown encoding -260 (fffffefc)
19/03/2025 13:47:03 [1] Using JPEG subsampling 1, Q41
19/03/2025 13:47:03 [1] Interframe comparison enabled
19/03/2025 13:47:03 [1] Enabling Desktop Size protocol extension
19/03/2025 13:47:03 [1] Enabling LastRect protocol extension
19/03/2025 13:47:03 [1] Enabling QEMU Extended Key Event protocol extension
19/03/2025 13:47:03 [1] Enabling Extended Desktop Size protocol extension
19/03/2025 13:47:03 [1] rfbProcessClientNormalMessage: ignoring unknown encoding -309 (fffffecb)
19/03/2025 13:47:03 [1] Enabling Fence protocol extension
19/03/2025 13:47:03 [1] Enabling Continuous Updates protocol extension
19/03/2025 13:47:03 [1] rfbProcessClientNormalMessage: ignoring unknown encoding -307 (fffffecd)
19/03/2025 13:47:03 [1] Enabling Extended Clipboard protocol extension
19/03/2025 13:47:03 [1] rfbProcessClientNormalMessage: ignoring unknown encoding 1464686180 (574d5664)
19/03/2025 13:47:03 [1] Enabling full-color cursor updates
19/03/2025 13:47:03 [1] Using Tight compression level 1
19/03/2025 13:47:03 [1] WARNING: Disabling QEMU Extended Key Event extension because neither LED state
19/03/2025 13:47:03 [1]   extension is supported by the client.
19/03/2025 13:47:03 Using 4 threads for Tight encoding
19/03/2025 13:47:03 [1] Client clipboard capabilities:
19/03/2025 13:47:03 [1] - Plain text (limit = 0 bytes)
19/03/2025 13:47:03 [1] Continuous updates enabled
19/03/2025 13:47:03 New desktop size: 1920 x 841
19/03/2025 13:47:03 [1] Interframe comparison disabled
19/03/2025 13:47:03 [1] Interframe comparison enabled
19/03/2025 13:47:03 New screen layout:
19/03/2025 13:47:03   0x00000000 (output 0x00000040): 1920x841+0+0
19/03/2025 13:47:03 [1] Continuous updates enabled
19/03/2025 13:47:03 [1] Continuous updates enabled
19/03/2025 13:47:03 [1] Continuous updates enabled
19/03/2025 13:47:50 New desktop size: 1121 x 841
19/03/2025 13:47:50 [1] Interframe comparison disabled
19/03/2025 13:47:50 [1] Interframe comparison enabled
19/03/2025 13:47:50 New screen layout:
19/03/2025 13:47:50   0x00000000 (output 0x00000040): 1121x841+0+0
19/03/2025 13:47:50 [1] Continuous updates enabled
19/03/2025 13:47:50 [1] Continuous updates enabled
19/03/2025 13:49:00 [1] Client gone
19/03/2025 13:49:00 [1] Statistics:
19/03/2025 13:49:00 [1]   key events received 0, pointer events 526
19/03/2025 13:49:00 [1]   framebuffer updates 11, rectangles 38, bytes 2956
19/03/2025 13:49:00 [1]     LastRect markers 6, bytes 72
19/03/2025 13:49:00 [1]     cursor shape updates 1, bytes 2388
19/03/2025 13:49:00 [1]     Tight rectangles 31, bytes 496
19/03/2025 13:49:00 [1]   raw equivalent 24.924000 Mbytes, compression ratio 50250.000000
19/03/2025 13:49:00 [1] Interframe comparison disabled
19/03/2025 13:49:00 Number of connected clients: 0

19/03/2025 13:49:00 [2] Got connection from 127.0.0.1 on port 33050
19/03/2025 13:49:00 [2] Normal socket connection
19/03/2025 13:49:00 [2] Using protocol version 3.8
19/03/2025 13:49:00 [2] Enabling TightVNC protocol extensions
19/03/2025 13:49:00 [2] Advertising Tight auth cap 'VENCRYPT'
19/03/2025 13:49:00 [2] Advertising Tight auth cap 'VNCAUTH_'
19/03/2025 13:49:00 [2] Advertising Tight auth cap 'ULGNAUTH'
19/03/2025 13:49:00 [2] Full-control authentication enabled
19/03/2025 13:49:00 Number of connected clients: 1
19/03/2025 13:49:00 [2] Pixel format:
19/03/2025 13:49:00 [2]   32 bpp, depth 24, little endian
19/03/2025 13:49:00 [2]   true colour: max r 255 g 255 b 255, shift r 0 g 8 b 16
19/03/2025 13:49:00 [2] Enabling CopyRect encoding
19/03/2025 13:49:00 [2] Using tight encoding
19/03/2025 13:49:00 [2] rfbProcessClientNormalMessage: ignoring unknown encoding -260 (fffffefc)
19/03/2025 13:49:00 [2] Using JPEG subsampling 1, Q41
19/03/2025 13:49:00 [2] Interframe comparison enabled
19/03/2025 13:49:00 [2] Enabling Desktop Size protocol extension
19/03/2025 13:49:00 [2] Enabling LastRect protocol extension
19/03/2025 13:49:00 [2] Enabling QEMU Extended Key Event protocol extension
19/03/2025 13:49:00 [2] Enabling Extended Desktop Size protocol extension
19/03/2025 13:49:00 [2] rfbProcessClientNormalMessage: ignoring unknown encoding -309 (fffffecb)
19/03/2025 13:49:00 [2] Enabling Fence protocol extension
19/03/2025 13:49:00 [2] Enabling Continuous Updates protocol extension
19/03/2025 13:49:00 [2] rfbProcessClientNormalMessage: ignoring unknown encoding -307 (fffffecd)
19/03/2025 13:49:00 [2] Enabling Extended Clipboard protocol extension
19/03/2025 13:49:00 [2] rfbProcessClientNormalMessage: ignoring unknown encoding 1464686180 (574d5664)
19/03/2025 13:49:00 [2] Enabling full-color cursor updates
19/03/2025 13:49:00 [2] Using Tight compression level 1
19/03/2025 13:49:00 [2] WARNING: Disabling QEMU Extended Key Event extension because neither LED state
19/03/2025 13:49:00 [2]   extension is supported by the client.
19/03/2025 13:49:00 Using 4 threads for Tight encoding
19/03/2025 13:49:00 [2] Client clipboard capabilities:
19/03/2025 13:49:00 [2] - Plain text (limit = 0 bytes)
19/03/2025 13:49:00 [2] Continuous updates enabled
19/03/2025 13:49:00 New screen layout:
19/03/2025 13:49:00   0x00000000 (output 0x00000040): 1121x841+0+0
19/03/2025 13:49:00 [2] Continuous updates enabled
19/03/2025 13:49:00 [2] Continuous updates enabled
19/03/2025 13:49:00 [2] Continuous updates enabled

Here is my websockify.log file:

WebSocket server settings:
  - Listen on :10644
  - No SSL/TLS support (no cert file)
  - proxying from :10644 to localhost:5901
[19/Mar/2025 13:47:02] Plain non-SSL (ws://) WebSocket connection
[19/Mar/2025 13:47:02] Path: '/websockify'
[19/Mar/2025 13:47:02] connecting to: localhost:5901
[19/Mar/2025 13:49:00] Plain non-SSL (ws://) WebSocket connection
[19/Mar/2025 13:49:00] Path: '/websockify'
[19/Mar/2025 13:49:00] connecting to: localhost:5901

My submit.yml.erb file:

---
batch_connect:
  template: "vnc"
  before_script: |
    export XDG_RUNTIME_DIR=$(mktemp -d /tmp/XXXXX)
script:
  job_environment:
    SBATCH_EXPORT: "ALL"
  native:
    - "-n"
    - "<%= bc_num_slots.blank? ? 1 : bc_num_slots.to_i %>"
    - "--nodelist=<%= node_list %>"

My form.yml file:

---
title: "My Insomnia Desktop"
cluster: "insomnia"
submit: "submit.yml.erb"
attributes:
  desktop: "xfce"
  bc_vnc_idle: 0
  bc_vnc_resolution:
    required: true
  bc_account:
    label: "Required: Account Name"
  node_list:
    label: "Node name here"
    widget: "text_field"
    required: true
form:
  - bc_vnc_idle
  - desktop
  - bc_num_hours
  - bc_num_slots
  - bc_account
  - node_list
  - bc_queue

My cluster.d/cluster.yml file:

---
v2:
  metadata:
    title: "insomnia"
  login:
    host: "2402-login-001.domain.edu"
  job:
    adapter: "slurm"
    cluster: "insomnia"
    bin: "/usr/bin/"
    conf: "/etc/slurm/slurm.conf"
    # bin_overrides:
      # sbatch: "/usr/local/bin/sbatch"
      # squeue: ""
      # scontrol: ""
      # scancel: ""
  batch_connect:
    basic:
      script_wrapper: |
        module purge
        %s
    vnc:
      script_wrapper: |
        module purge
        export PATH="/opt/TurboVNC/bin:$PATH"
        export WEBSOCKIFY_CMD="/usr/local/bin/websockify"
        %s

My ood_portal.conf file:

listen_addr_port: 3443
servername: 2402-login-001.domain.edu
port: 3443
ssl:
 -keys here
usr_map_cmd: '/opt/ood/ood_auth_map/bin/ood_auth_map.mapfile'
auth:
  - 'AuthType Basic'
  - 'AuthName "Insomnia"'
  - 'AuthBasicProvider PAM'
  - 'AuthPAMService ood'
  - 'Require valid-user'
host_regex: 'ins\\d+'
node_uri: '/node'
rnode_uri: '/rnode'

It would be helpful if you could point me in the right direction to see my virtual desktop.

Many thanks,
Sam

Hi and welcome!

These are the messages that caught my eye. You have a black screen and you can see here the message about not having the binary xfdesktop.

This line is a bit scary - I’m pretty sure we grep through that file for an important reason, though it could be a red herring.

I’m at the GOOD conference right now (the Open OnDemand conference) so my replies may be delayed, but I would initially check into why you don’t have all those binaries that you likely should have.

Hi Jeff!

Thank you so much for the quick response!

I was able to install xfdesktop and it worked!

I am still getting your concern about this being in the output.log file ./websockify.log: No such file or directory:

Setting VNC password...
Starting VNC server...
Killing Xvnc process ID 1495893
Xvnc process ID 1495893 already killed
Xvnc did not appear to shut down cleanly. Removing /tmp/.X11-unix/X1
Xvnc did not appear to shut down cleanly. Removing /tmp/.X1-lock

Desktop 'TurboVNC: ins039:1 (sc5292)' started on display ins039:1

Log file is vnc.log
Successfully started VNC server on ins039:5901...
Script starting...
Starting websocket server...
Launching desktop 'xfce'...
[websockify]: pid: 1498027 (proxying 57451 ==> localhost:5901)
[websockify]: log file: ./websockify.log
[websockify]: waiting ...
grep: ./websockify.log: No such file or directory
_IceTransmkdir: Owner of /tmp/.ICE-unix should be set to root
/usr/bin/iceauth:  creating new authority file /tmp/I87wI/ICEauthority

(xfwm4:1498065): xfwm4-WARNING **: 15:45:33.816: Unsupported GL renderer (llvmpipe (LLVM 16.0.6, 256 bits)).

(xfce4-session:1498044): xfce4-session-WARNING **: 15:45:33.821: Unable to launch "xfsettingsd": Failed to execute child process “xfsettingsd” (No such file or directory)
[websockify]: started successfully (proxying 57451 ==> localhost:5901)
Scanning VNC log file for user authentications...
Generating connection YAML file...

Why would this be concerning?

Best,
Sam

:person_shrugging: I’d have to look into it more, I’m away at a conference at the moment so can’t check it directly.

But if it works, then it must not be that important?

Jeff, the grepping happens in lib/ood_core/batch_connect/templates/vnc.rb in an until statement. In Sam’s case, I think it is just taking a second for the file to get created and that’s why it prints the error once, and then proceeds normally.

Thank you both for the response.

I’m now editing the Dashboard with my institution’s logo, specifically the one in the footer. I copied a version from /var/www/ood/apps/sys/dashboard/app/views/layouts/_footer.html.erb to /etc/ood/config/apps/dashboard/views/layouts/_footer.html.erb. I was trying to update the image so I added my logo.png to /var/www/ood/apps/sys/dashboard/app/assets/images/png.logo but go this error:

Error during failsafe response: No such file or directory @ rb_sysopen - /var/www/ood/apps/sys/dashboard/app/assets/images/logo.png

I reverted it back to the original but got a 500 error on my dashboard. After a while, it will go back to normal. Is there a way to easily refresh it so I don’t have to wait?

Additionally, where should these asset images be located? Am I putting it in the right location?

Do not add assets to /var, that is going to cause even more problems.

Drop the file in /var/www/ood/public and reference it through the href /public/png.logo.