Xfce error when launching interactive desktop

I’m running into more errors. The following is the output in the output.log file:

Script starting...
Generating connection YAML file...
ERROR: Collection default cannot be found
Launching desktop 'xfce'...
Failed to init libxfconf: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11.
Failed to init libxfconf: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11.
xfce4-session: Cannot open display: .
Type 'xfce4-session --help' for usage.
Desktop 'xfce' ended...
Cleaning up...

I’ve tried adding unset DBUS_SESSION_BUS_ADDRESS to the cluster config file but that’s hasn’t done anything.

Can you scroll up in that log file? There should be something about vnc server starting up and setting the DISPLAY.

That is the entirety of the output.log file. Below is the contents of the job output directory.

Got it. You’re template is likely basic which is just http so the VNC server didn’t start.

Here’s how to specify that this is a VNC app in your submit.yml.erb.

---
batch_connect:
  template: vnc

Ah that was it. Thank you! Side question, how do I put ruby logic into a form? Do I just add the logic and change the extension to .yml.erb?

Yes with the ERB extension it will treat it as a ruby ERB template.

https://docs.ruby-lang.org/en/2.3.0/ERB.html

I’ve changed the form file extension to .yml.erb but the desktop option disappears from the interactive apps list. This is the only section that uses Ruby:

  queue:
    widget: "select"
    options:
    <% `sinfo -h --format=%r`.split("\n").each do |queue| %>
      - <%= queue %>
    <% end %>

Is there a formatting error?

I’d bet it is. Try it with dashes so it effectively erases the line (and doesn’t add new lines).

Also - if you know things up front you should just hard code them in the cluster.d file. This is not only easier, but much faster to render because you don’t have to execute a command.

https://osc.github.io/ood-documentation/latest/app-development/tutorials-interactive-apps/add-custom-queue/global-static-list.html

I tried modifying as you suggested. The desktop still isn’t showing up. The reason I’m doing it this way is so that only the queues users have access to show up in the list. Queue access varies from user to user.

OK 1 more try - on the left, not on the right. I had to look this up and verify this is how we do it.

No dice. Should I start a new topic?

I don’t mind either way. Can you upload the actual file (you may have to rename to txt file). I’m checking for strange characters and/or Windows characters that the Linux system doesn’t like.

That’s my best bet – there’s something here very simple and silly like that or using tabs instead of spaces and YAML doesn’t like that and so on.

form.txt (788 Bytes)

@jeff.ohrstrom Any updates?

<%- `sinfo -h --format=%R`.split("\n").each do |queue| -%>

I think it’s the wrong format. Try %R - that worked for me.

I’ve made the change. That did not work.

OK - let’s take step back, because both variations work (lowercase r just returned the one single no)

If you remove the ERB altogether, does the desktop show up then? The talon cluster has to exist for it to show up.

If you’re using root to edit the files directly in /etc/ood/config then be sure regular users can read the files.

Then I’d check what the command output is on the web server itself. These commands run on the same machine that you’ve installed OOD on, so when you’re checking for behavior parity, be sure to check on that machine.

If I remove the .erb extension and comment out the ruby lines then yes the desktop shows up and works. The config files I’m editing are in /var/www/ood/apps/sys/bc_desktop (I’m trying to get this working on the interactive desktop form first). All of the files are owned by apache. The permissions for other users are read-only.

Got it. That is not the file you want to edit. You want to edit a file in /etc or better still, an file in your $HOME directory first.

If you’re following this - you can see the file location is in /etc. Files in /var/www will be overwritten with new installs, where files in /etc won’t.
https://osc.github.io/ood-documentation/latest/enable-desktops/modify-form-attributes.html

After you move it to /etc and get it working in just the yml form - I’d suggest you commit it to git. Then edit it so we can really see the difference is. You can then share the git diff here with me so we can see what’s what because I got that to work directly so there’s something here we’re missing.

Also I just want to be sure you’re not making a new file with the erb extension. You’re renaming the existing file right? (there could be issues if there are 2 files there both named form.)

Should the /var/www/ood/apps/sys/bc_desktop directory even exist?