Double app icon

Hi There,

I’m experiencing an issue with a double definition of my interactive app, one for “manifest.yml” and “form.yml.” This problem initially occurred when I first installed Ondemand three weeks ago, but it mysteriously disappeared at some point. However, it has resurfaced after I reinstalled my node and the Ondemand suite.
image

$ ll
total 12
drwxr-xr-x  2 root root   26 Oct 18 15:18 activejobs
drwxr-xr-x  3 root root  136 Oct 18 15:18 bc_desktop
drwxr-xr-x 14 root root 4096 Oct 18 15:19 dashboard
drwxr-xr-x  2 root root   26 Oct 18 15:19 file-editor
drwxr-xr-x  2 root root   43 Oct 18 15:19 files
lrwxrwxrwx  1 root root   31 Oct 18 15:19 JupyterLab -> /etc/ood/config/apps/JupyterLab
lrwxrwxrwx  1 root root   27 Oct 18 15:19 MatLab -> /etc/ood/config/apps/MatLab
drwxr-xr-x 14 root root 4096 Oct 18 15:19 myjobs
drwxr-xr-x 10 root root 4096 Oct 18 15:19 shell
lrwxrwxrwx  1 root root   33 Oct 18 15:19 VSCodeServer -> /etc/ood/config/apps/VSCodeServer

I’ve been using symlinks to point to “/etc/ood/config/apps” because I prefer not to directly edit files in “/var/www/ood.” However, even after migrating into /var/www/ood/apps/sys the double definition issue persists.

Here the content of my files:

$ egrep -v "^.*#" manifest.yml form.yml 
manifest.yml:---
manifest.yml:name: JupyterLab
manifest.yml:category: Interactive Apps
manifest.yml:subcategory: Servers
manifest.yml:role: batch_connect
manifest.yml:description: |
manifest.yml:  This app will launch a JupyterLab on one node.
form.yml:---
form.yml:
form.yml:cluster: "baobab"
form.yml:
form.yml:attributes:
form.yml:  modules:
form.yml:    widget: select 
form.yml:    label: "choose the version you need"
form.yml:    help: "The version of Python depend on which version of GCCcore was used to compile JupyterLab"
form.yml:    options:
form.yml:      - ["GCCcore/11.3.0 JupyterLab/3.5.0", "GCCcore/11.3.0 JupyterLab/3.5.0"]
form.yml:
form.yml:  extra_jupyter_args: ""
form.yml:
form.yml:form:
form.yml:  - modules
form.yml:  - extra_jupyter_args
form.yml:  - bc_account
form.yml:  - bc_queue
form.yml:  - bc_num_hours
form.yml:  - bc_num_slots
form.yml:  - bc_email_on_started

Thank your for your help,

What version of OOD are you on and what OS?

There would have to be a duplicate on the file system somhow for this to happen. I haven’t been able to replicate anything without having some other directory with the same manifest and form. Now, it is entirely possible to name this directory something else and have it show up, such as bc_osc_jupyter_backup.

Is there anyway you have a backup somewhere or duplication?

OOD:   ondemand-3.0.3-1.el8.x86_64
OS :   Rocky8 4.18.0-477.10.1.el8_8.x86_64

That’s weird, for example if I delete the symlink of JupyterLab, then I do not have access to any JupyterLab App. That’s mean I haven’t duplicate “form/manifest” for jupyterLab¨. And I check everywhere I have only these 3 directory (JupyterLab, VSCode-server and MatLab).

But the thing I do not understand is “JupyterLab: form” and “JupyterLab: manifest” apps. Ondemand app seems to see the difference beetween theses those files.

Here the content of my directorie

$ find /etc/ood/config/apps -iname form.yml*
/etc/ood/config/apps/MatLab/form.yml
/etc/ood/config/apps/VSCodeServer/form.yml.erb
/etc/ood/config/apps/JupyterLab/form.yml

$ ll JupyterLab/
total 44
-rw-r--r-- 1 root root   950 Oct 18 17:38 CHANGELOG.md
-rw-r--r-- 1 root root  1971 Oct 18 17:38 form.yml
-rw-r--r-- 1 root root 12760 Oct 18 17:38 icon.png
-rw-r--r-- 1 root root  1087 Oct 18 17:38 LICENSE.txt
-rw-r--r-- 1 root root   181 Oct 18 17:38 manifest.yml
-rw-r--r-- 1 root root  2291 Oct 18 17:38 README.md
-rw-r--r-- 1 root root   954 Oct 18 17:38 submit.yml.erb
drwxr-xr-x 2 root root    64 Oct 18 17:38 template
-rw-r--r-- 1 root root   264 Oct 18 17:38 view.html.erb

Sorry, looking at this closer now. Initially I read this and was just focused on the duplication, but it is strange to see these form and manifest options, that shouldn’t be happening.

But, looking at the manifest has me curious. It looks like you never set the fields for the app. I wonder if OOD does a best effort there somehow to retrieve these if they aren’t defined and this is what we are seeing.

If you open your manifest.yml and do something like this:

---
name: Jupyter 
category: Interactive Apps
subcategory: Servers
role: batch_connect
description: |
  This app will launch a JupyterLab on one node

what happens on reload?

Hi @travert,

Thanks for your suggestion, I’ll give it a try.

But I think I’ve found the problem, the name of the symbolic link and the target directory are the same. If I change the name of the symbolic link, the duplicate disappears.

Sorry but I do not see the difference beetween my file and your suggestion. My eyes are blind x_x

Ha, no you are not blind. I had scrolled down in the raw text window, and the later when I glanced back in the browser my brain forgot and I thought the file was missing contents :face_palm

Great to hear, though I’ve got symlinked directories that share names and don’t see this duplication and I still don’t understand how you have those form and manifest entries for each app.

1 Like

The mistery will never end !