Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unable to view jobs on Slurm Queue Manager #49

Open
zainul1114 opened this issue Feb 24, 2021 · 20 comments
Open

Unable to view jobs on Slurm Queue Manager #49

zainul1114 opened this issue Feb 24, 2021 · 20 comments

Comments

@zainul1114
Copy link

zainul1114 commented Feb 24, 2021

Hi,
I have tried to submit the jobs with Slurm Queue Manager on jupyterhub, jobs are running and getting output as expected. But, not able to view jobs while running or after completed, Means job rows on Slurm Queue Manager.
My Environment:
Python 3.6.9
jupyterlab-slurm 2.0.0
jupyterhub 1.1.0
jupyterlab 2.2.0

image

Anyhow, i am able to get the details from sacct on command line. Please find the attached screenshot and help me to resolve this issue.

Regards,
Zain

@krinsman
Copy link
Collaborator

Admittedly I'm not sure what error the screenshot is displaying. So basically you're saying that the backend appears to be working correctly (i.e. the plumbing that bosses Slurm around according to the user's instructions), but the frontend isn't reporting everything that is going on?

As others would be quick to point out for me, my knowledge of JupyterLab-Slurm is embarrassingly out-of-date at this point, but I can at the very least try to help you debug based on my (again out-of-date) experience developing it?

Versioning:
What are the outputs of:

  • jupyter labextension list
  • jupyter serverextension list
  • (if you're running from within a conda environment) conda list (although to be fair you did already give the Python, jupyterlab, and jupyterhub versions but still sometimes knowing the source distribution can be helpful in reproducing an error)
  • npm list (or maybe npm list -g? sorry I really haven't done any Javascript/Typescript development in a long time, I'm rusty)
    ?

Minimal Reproducibility:
And then once we're clear about the precise versions of everything being used, could you also maybe attach some dummy batch jobs (e.g. calculating 2+2 or something inane and simple like that) that could be used to reproduce the issue?

I imagine this part might not be strictly necessary, but that's what I always tried to have in hand when trying to debug issues with the frontend.

Web Browser Error Logs:
Also, if there's any way you could display the browser's JavaScript console output?

Because often the errors most useful for debugging frontend issues are found there (I think, although it might have been primarily useful for validating HTTP requests i.e. the functioning of the backend)

for Chrome: https://developers.google.com/web/tools/chrome-devtools#open (only relevant part seems to be the given keyboard shortcuts)
for Firefox: https://developer.mozilla.org/en-US/docs/Tools/Web_Console#opening_the_web_console (I think -- I've never really used it with Firefox before)

In any case, since this seems to be a frontend/UI issue based on your description, my guess (and again current/active developers will know this 100x+ better than I do either way) is that being able to share any logged Javascript errors would be one of the most important pieces of information.

I know none of this directly helps you at the moment, but at the very least it should help to make the error more precise, and then hopefully identify what is going on/how it could be fixed? Please let me know your thoughts

  • W

@zainul1114
Copy link
Author

zainul1114 commented Feb 27, 2021

Hi Krinsman,
Thanks for your response..

Please find the details of versioning information

[root@master ~]# jupyter labextension list
JupyterLab v2.2.0
Known labextensions:
   app dir: /usr/local/py36/3_6_9/share/jupyter/lab
        @jupyter-widgets/jupyterlab-manager v2.0.0  enabled  OK
        @jupyterlab/github v2.0.0  enabled  OK
        jupyterlab-control v1.1.1  enabled  OK
        jupyterlab-drawio v0.7.0  enabled  OK
        jupyterlab-lmod v0.8.1  enabled  OK
        jupyterlab-logout v0.5.0  enabled  OK
        jupyterlab-python-file v0.4.0  enabled  OK
        jupyterlab-slurm v2.0.0  enabled  OK
        jupyterlab-topbar-extension v0.5.0  enabled  OK
[root@master ~]# jupyter serverextension list
config dir: /usr/local/py36/3_6_9/etc/jupyter
    jupyterlab  enabled
    - Validating...
      jupyterlab 2.2.0 OK
    jupyterlab_github  enabled
    - Validating...
      jupyterlab_github 2.0.0 OK
    jupyterlab_slurm  enabled
    - Validating...
      jupyterlab_slurm 2.0.0 OK
    jupyterlmod  enabled
    - Validating...
      jupyterlmod  OK
    nbresuse  enabled
    - Validating...
      nbresuse  OK
[root@master ~]# npm list -g
/usr/lib
├─┬ configurable-http-proxy@4.2.3
│ ├── commander@6.2.1
│ ├─┬ http-proxy@1.18.1
│ │ ├── eventemitter3@4.0.7
│ │ ├── follow-redirects@1.13.2
│ │ └── requires-port@1.0.0
│ ├─┬ lynx@0.2.0
│ │ ├── mersenne@0.0.4
│ │ └── statsd-parser@0.0.4
│ ├── strftime@0.10.0
│ └─┬ winston@3.3.3
│   ├─┬ @dabh/diagnostics@2.0.2
│   │ ├─┬ colorspace@1.1.2
│   │ │ ├─┬ color@3.0.0
│   │ │ │ ├─┬ color-convert@1.9.3
│   │ │ │ │ └── color-name@1.1.3
│   │ │ │ └─┬ color-string@1.5.4
│   │ │ │   ├── color-name@1.1.3 deduped
│   │ │ │   └─┬ simple-swizzle@0.2.2
│   │ │ │     └── is-arrayish@0.3.2
│   │ │ └── text-hex@1.0.0
│   │ ├── enabled@2.0.0
│   │ └── kuler@2.0.0
│   ├── async@3.2.0
│   ├── is-stream@2.0.0
│   ├─┬ logform@2.2.0
│   │ ├── colors@1.4.0
│   │ ├── fast-safe-stringify@2.0.7
│   │ ├── fecha@4.2.0
│   │ ├── ms@2.1.3
│   │ └── triple-beam@1.3.0 deduped
│   ├─┬ one-time@1.0.0
│   │ └── fn.name@1.1.0
│   ├─┬ readable-stream@3.6.0
│   │ ├── inherits@2.0.4
│   │ ├─┬ string_decoder@1.3.0
│   │ │ └── safe-buffer@5.2.1
│   │ └── util-deprecate@1.0.2
│   ├── stack-trace@0.0.10
│   ├── triple-beam@1.3.0
│   └─┬ winston-transport@4.4.0
│     ├─┬ readable-stream@2.3.7
│     │ ├── core-util-is@1.0.2
│     │ ├── inherits@2.0.4 deduped
│     │ ├── isarray@1.0.0
│     │ ├── process-nextick-args@2.0.1
│     │ ├── safe-buffer@5.1.2
│     │ ├─┬ string_decoder@1.1.1
│     │ │ └── safe-buffer@5.1.2 deduped
│     │ └── util-deprecate@1.0.2 deduped
│     └── triple-beam@1.3.0 deduped
└─┬ npm@6.14.11
  ├── abbrev@1.1.1
  ├── ansicolors@0.3.2
  ├── ansistyles@0.1.3
  ├── aproba@2.0.0
  ├── archy@1.0.0
  ├─┬ bin-links@1.1.8
  │ ├── bluebird@3.5.5 deduped
  │ ├── cmd-shim@3.0.3 deduped
  │ ├── gentle-fs@2.3.1 deduped
  │ ├── graceful-fs@4.2.4 deduped
  │ ├── npm-normalize-package-bin@1.0.1
  │ └── write-file-atomic@2.4.3 deduped
  ├── bluebird@3.5.5
  ├── byte-size@5.0.1
  ├─┬ cacache@12.0.3
  │ ├── bluebird@3.5.5 deduped
  │ ├── chownr@1.1.4 deduped
  │ ├── figgy-pudding@3.5.1 deduped
  │ ├── glob@7.1.6 deduped
  │ ├── graceful-fs@4.2.4 deduped
  │ ├── infer-owner@1.0.4 deduped
  │ ├── lru-cache@5.1.1 deduped
  │ ├── mississippi@3.0.0 deduped
  │ ├── mkdirp@0.5.5 deduped
  │ ├── move-concurrently@1.0.1 deduped
  │ ├── promise-inflight@1.0.1 deduped
  │ ├── rimraf@2.7.1 deduped
  │ ├── ssri@6.0.1 deduped
  │ ├── unique-filename@1.1.1 deduped
  │ └── y18n@4.0.0
  ├── call-limit@1.1.1
  ├── chownr@1.1.4
  ├── ci-info@2.0.0
  ├─┬ cli-columns@3.1.2
  │ ├─┬ string-width@2.1.1
  │ │ ├── is-fullwidth-code-point@2.0.0
  │ │ └─┬ strip-ansi@4.0.0
  │ │   └── ansi-regex@3.0.0
  │ └─┬ strip-ansi@3.0.1
  │   └── ansi-regex@2.1.1
  ├─┬ cli-table3@0.5.1
  │ ├── colors@1.3.3
  │ ├── object-assign@4.1.1
  │ └── string-width@2.1.1 deduped
  ├─┬ cmd-shim@3.0.3
  │ ├── graceful-fs@4.2.4 deduped
  │ └── mkdirp@0.5.5 deduped
  ├─┬ columnify@1.5.4
  │ ├── strip-ansi@3.0.1 deduped
  │ └─┬ wcwidth@1.0.1
  │   └─┬ defaults@1.0.3
  │     └── clone@1.0.4
  ├─┬ config-chain@1.1.12
  │ ├── ini@1.3.8 deduped
  │ └── proto-list@1.2.4
  ├── debuglog@1.0.1
  ├── detect-indent@5.0.0
  ├── detect-newline@2.1.0
  ├─┬ dezalgo@1.0.3
  │ ├── asap@2.0.6
  │ └── wrappy@1.0.2
  ├── editor@1.0.0
  ├── figgy-pudding@3.5.1
  ├── find-npm-prefix@1.0.2
  ├─┬ fs-vacuum@1.2.10
  │ ├── graceful-fs@4.2.4 deduped
  │ ├── path-is-inside@1.0.2 deduped
  │ └── rimraf@2.7.1 deduped
  ├─┬ fs-write-stream-atomic@1.0.10
  │ ├── graceful-fs@4.2.4 deduped
  │ ├── iferr@0.1.5
  │ ├── imurmurhash@0.1.4 deduped
  │ └─┬ readable-stream@2.3.6
  │   ├── core-util-is@1.0.2
  │   ├── inherits@2.0.4 deduped
  │   ├── isarray@1.0.0
  │   ├── process-nextick-args@2.0.0
  │   ├── safe-buffer@5.1.2 deduped
  │   ├─┬ string_decoder@1.1.1
  │   │ └── safe-buffer@5.1.2 deduped
  │   └── util-deprecate@1.0.2 deduped
  ├─┬ gentle-fs@2.3.1
  │ ├── aproba@1.2.0
  │ ├── chownr@1.1.4 deduped
  │ ├── cmd-shim@3.0.3 deduped
  │ ├── fs-vacuum@1.2.10 deduped
  │ ├── graceful-fs@4.2.4 deduped
  │ ├── iferr@0.1.5
  │ ├── infer-owner@1.0.4 deduped
  │ ├── mkdirp@0.5.5 deduped
  │ ├── path-is-inside@1.0.2 deduped
  │ ├── read-cmd-shim@1.0.5 deduped
  │ └── slide@1.1.6 deduped
  ├─┬ glob@7.1.6
  │ ├── fs.realpath@1.0.0
  │ ├── inflight@1.0.6 deduped
  │ ├── inherits@2.0.4 deduped
  │ ├─┬ minimatch@3.0.4
  │ │ └─┬ brace-expansion@1.1.11
  │ │   ├── balanced-match@1.0.0
  │ │   └── concat-map@0.0.1
  │ ├── once@1.4.0 deduped
  │ └── path-is-absolute@1.0.1
  ├── graceful-fs@4.2.4
  ├── has-unicode@2.0.1
  ├── hosted-git-info@2.8.8
  ├── iferr@1.0.2
  ├── imurmurhash@0.1.4
  ├── infer-owner@1.0.4
  ├─┬ inflight@1.0.6
  │ ├── once@1.4.0 deduped
  │ └── wrappy@1.0.2 deduped
  ├── inherits@2.0.4
  ├── ini@1.3.8
  ├─┬ init-package-json@1.10.3
  │ ├── glob@7.1.6 deduped
  │ ├── npm-package-arg@6.1.1 deduped
  │ ├─┬ promzard@0.3.0
  │ │ └── read@1.0.7 deduped
  │ ├── read@1.0.7 deduped
  │ ├── read-package-json@2.1.1 deduped
  │ ├── semver@5.7.1 deduped
  │ ├── validate-npm-package-license@3.0.4 deduped
  │ └── validate-npm-package-name@3.0.0 deduped
  ├─┬ is-cidr@3.0.0
  │ └─┬ cidr-regex@2.0.10
  │   └── ip-regex@2.1.0
  ├── json-parse-better-errors@1.0.2
  ├─┬ JSONStream@1.3.5
  │ ├── jsonparse@1.3.1
  │ └── through@2.3.8
  ├── lazy-property@1.0.0
  ├─┬ libcipm@4.0.8
  │ ├── bin-links@1.1.8 deduped
  │ ├── bluebird@3.5.5 deduped
  │ ├── figgy-pudding@3.5.1 deduped
  │ ├── find-npm-prefix@1.0.2 deduped
  │ ├── graceful-fs@4.2.4 deduped
  │ ├── ini@1.3.8 deduped
  │ ├── lock-verify@2.1.0 deduped
  │ ├── mkdirp@0.5.5 deduped
  │ ├── npm-lifecycle@3.1.5 deduped
  │ ├── npm-logical-tree@1.2.1
  │ ├── npm-package-arg@6.1.1 deduped
  │ ├── pacote@9.5.12 deduped
  │ ├── read-package-json@2.1.1 deduped
  │ ├── rimraf@2.7.1 deduped
  │ └── worker-farm@1.7.0 deduped
  ├─┬ libnpm@3.0.1
  │ ├── bin-links@1.1.8 deduped
  │ ├── bluebird@3.5.5 deduped
  │ ├── find-npm-prefix@1.0.2 deduped
  │ ├── libnpmaccess@3.0.2 deduped
  │ ├─┬ libnpmconfig@1.2.1
  │ │ ├── figgy-pudding@3.5.1 deduped
  │ │ ├─┬ find-up@3.0.0
  │ │ │ └─┬ locate-path@3.0.0
  │ │ │   ├─┬ p-locate@3.0.0
  │ │ │   │ └─┬ p-limit@2.2.0
  │ │ │   │   └── p-try@2.2.0
  │ │ │   └── path-exists@3.0.0
  │ │ └── ini@1.3.8 deduped
  │ ├── libnpmhook@5.0.3 deduped
  │ ├── libnpmorg@1.0.1 deduped
  │ ├─┬ libnpmpublish@1.1.2
  │ │ ├── aproba@2.0.0 deduped
  │ │ ├── figgy-pudding@3.5.1 deduped
  │ │ ├── get-stream@4.1.0 deduped
  │ │ ├── lodash.clonedeep@4.5.0 deduped
  │ │ ├── normalize-package-data@2.5.0 deduped
  │ │ ├── npm-package-arg@6.1.1 deduped
  │ │ ├── npm-registry-fetch@4.0.7 deduped
  │ │ ├── semver@5.7.1 deduped
  │ │ └── ssri@6.0.1 deduped
  │ ├── libnpmsearch@2.0.2 deduped
  │ ├── libnpmteam@1.0.2 deduped
  │ ├── lock-verify@2.1.0 deduped
  │ ├── npm-lifecycle@3.1.5 deduped
  │ ├── npm-logical-tree@1.2.1 deduped
  │ ├── npm-package-arg@6.1.1 deduped
  │ ├── npm-profile@4.0.4 deduped
  │ ├── npm-registry-fetch@4.0.7 deduped
  │ ├── npmlog@4.1.2 deduped
  │ ├── pacote@9.5.12 deduped
  │ ├── read-package-json@2.1.1 deduped
  │ └── stringify-package@1.0.1 deduped
  ├─┬ libnpmaccess@3.0.2
  │ ├── aproba@2.0.0 deduped
  │ ├─┬ get-stream@4.1.0
  │ │ └── pump@3.0.0 deduped
  │ ├── npm-package-arg@6.1.1 deduped
  │ └── npm-registry-fetch@4.0.7 deduped
  ├─┬ libnpmhook@5.0.3
  │ ├── aproba@2.0.0 deduped
  │ ├── figgy-pudding@3.5.1 deduped
  │ ├── get-stream@4.1.0 deduped
  │ └── npm-registry-fetch@4.0.7 deduped
  ├─┬ libnpmorg@1.0.1
  │ ├── aproba@2.0.0 deduped
  │ ├── figgy-pudding@3.5.1 deduped
  │ ├── get-stream@4.1.0 deduped
  │ └── npm-registry-fetch@4.0.7 deduped
  ├─┬ libnpmsearch@2.0.2
  │ ├── figgy-pudding@3.5.1 deduped
  │ ├── get-stream@4.1.0 deduped
  │ └── npm-registry-fetch@4.0.7 deduped
  ├─┬ libnpmteam@1.0.2
  │ ├── aproba@2.0.0 deduped
  │ ├── figgy-pudding@3.5.1 deduped
  │ ├── get-stream@4.1.0 deduped
  │ └── npm-registry-fetch@4.0.7 deduped
  ├─┬ libnpx@10.2.4
  │ ├── dotenv@5.0.1
  │ ├── npm-package-arg@6.1.1 deduped
  │ ├── rimraf@2.7.1 deduped
  │ ├── safe-buffer@5.1.2 deduped
  │ ├── update-notifier@2.5.0 deduped
  │ ├── which@1.3.1 deduped
  │ ├── y18n@4.0.0 deduped
  │ └─┬ yargs@14.2.3
  │   ├─┬ cliui@5.0.0
  │   │ ├─┬ string-width@3.1.0
  │   │ │ ├── emoji-regex@7.0.3 deduped
  │   │ │ ├── is-fullwidth-code-point@2.0.0
  │   │ │ └── strip-ansi@5.2.0 deduped
  │   │ ├─┬ strip-ansi@5.2.0
  │   │ │ └── ansi-regex@4.1.0
  │   │ └─┬ wrap-ansi@5.1.0
  │   │   ├── ansi-styles@3.2.1 deduped
  │   │   ├─┬ string-width@3.1.0
  │   │   │ ├── emoji-regex@7.0.3 deduped
  │   │   │ ├── is-fullwidth-code-point@2.0.0
  │   │   │ └── strip-ansi@5.2.0 deduped
  │   │   └─┬ strip-ansi@5.2.0
  │   │     └── ansi-regex@4.1.0
  │   ├── decamelize@1.2.0
  │   ├─┬ find-up@3.0.0
  │   │ └─┬ locate-path@3.0.0
  │   │   ├─┬ p-locate@3.0.0
  │   │   │ └─┬ p-limit@2.3.0
  │   │   │   └── p-try@2.2.0
  │   │   └── path-exists@3.0.0 deduped
  │   ├── get-caller-file@2.0.5
  │   ├── require-directory@2.1.1
  │   ├── require-main-filename@2.0.0
  │   ├── set-blocking@2.0.0 deduped
  │   ├─┬ string-width@3.1.0
  │   │ ├── emoji-regex@7.0.3
  │   │ ├── is-fullwidth-code-point@2.0.0
  │   │ └─┬ strip-ansi@5.2.0
  │   │   └── ansi-regex@4.1.0
  │   ├── which-module@2.0.0
  │   ├── y18n@4.0.0 deduped
  │   └─┬ yargs-parser@15.0.1
  │     ├── camelcase@5.3.1
  │     └── decamelize@1.2.0 deduped
  ├─┬ lock-verify@2.1.0
  │ ├── npm-package-arg@6.1.1 deduped
  │ └── semver@5.7.1 deduped
  ├─┬ lockfile@1.0.4
  │ └── signal-exit@3.0.2
  ├── lodash._baseindexof@3.1.0
  ├─┬ lodash._baseuniq@4.6.0
  │ ├── lodash._createset@4.0.3
  │ └── lodash._root@3.0.1
  ├── lodash._bindcallback@3.0.1
  ├── lodash._cacheindexof@3.0.2
  ├─┬ lodash._createcache@3.1.2
  │ └── lodash._getnative@3.9.1 deduped
  ├── lodash._getnative@3.9.1
  ├── lodash.clonedeep@4.5.0
  ├── lodash.restparam@3.6.1
  ├── lodash.union@4.6.0
  ├── lodash.uniq@4.5.0
  ├── lodash.without@4.4.0
  ├─┬ lru-cache@5.1.1
  │ └── yallist@3.0.3
  ├── meant@1.0.2
  ├─┬ mississippi@3.0.0
  │ ├─┬ concat-stream@1.6.2
  │ │ ├── buffer-from@1.0.0
  │ │ ├── inherits@2.0.4 deduped
  │ │ ├─┬ readable-stream@2.3.6
  │ │ │ ├── core-util-is@1.0.2 deduped
  │ │ │ ├── inherits@2.0.4 deduped
  │ │ │ ├── isarray@1.0.0 deduped
  │ │ │ ├── process-nextick-args@2.0.0 deduped
  │ │ │ ├── safe-buffer@5.1.2 deduped
  │ │ │ ├─┬ string_decoder@1.1.1
  │ │ │ │ └── safe-buffer@5.1.2 deduped
  │ │ │ └── util-deprecate@1.0.2 deduped
  │ │ └── typedarray@0.0.6
  │ ├─┬ duplexify@3.6.0
  │ │ ├── end-of-stream@1.4.1 deduped
  │ │ ├── inherits@2.0.4 deduped
  │ │ ├─┬ readable-stream@2.3.6
  │ │ │ ├── core-util-is@1.0.2 deduped
  │ │ │ ├── inherits@2.0.4 deduped
  │ │ │ ├── isarray@1.0.0 deduped
  │ │ │ ├── process-nextick-args@2.0.0 deduped
  │ │ │ ├── safe-buffer@5.1.2 deduped
  │ │ │ ├─┬ string_decoder@1.1.1
  │ │ │ │ └── safe-buffer@5.1.2 deduped
  │ │ │ └── util-deprecate@1.0.2 deduped
  │ │ └── stream-shift@1.0.0
  │ ├─┬ end-of-stream@1.4.1
  │ │ └── once@1.4.0 deduped
  │ ├─┬ flush-write-stream@1.0.3
  │ │ ├── inherits@2.0.4 deduped
  │ │ └─┬ readable-stream@2.3.6
  │ │   ├── core-util-is@1.0.2 deduped
  │ │   ├── inherits@2.0.4 deduped
  │ │   ├── isarray@1.0.0 deduped
  │ │   ├── process-nextick-args@2.0.0 deduped
  │ │   ├── safe-buffer@5.1.2 deduped
  │ │   ├─┬ string_decoder@1.1.1
  │ │   │ └── safe-buffer@5.1.2 deduped
  │ │   └── util-deprecate@1.0.2 deduped
  │ ├─┬ from2@2.3.0
  │ │ ├── inherits@2.0.4 deduped
  │ │ └─┬ readable-stream@2.3.6
  │ │   ├── core-util-is@1.0.2 deduped
  │ │   ├── inherits@2.0.4 deduped
  │ │   ├── isarray@1.0.0 deduped
  │ │   ├── process-nextick-args@2.0.0 deduped
  │ │   ├── safe-buffer@5.1.2 deduped
  │ │   ├─┬ string_decoder@1.1.1
  │ │   │ └── safe-buffer@5.1.2 deduped
  │ │   └── util-deprecate@1.0.2 deduped
  │ ├─┬ parallel-transform@1.1.0
  │ │ ├── cyclist@0.2.2
  │ │ ├── inherits@2.0.4 deduped
  │ │ └─┬ readable-stream@2.3.6
  │ │   ├── core-util-is@1.0.2 deduped
  │ │   ├── inherits@2.0.4 deduped
  │ │   ├── isarray@1.0.0 deduped
  │ │   ├── process-nextick-args@2.0.0 deduped
  │ │   ├── safe-buffer@5.1.2 deduped
  │ │   ├─┬ string_decoder@1.1.1
  │ │   │ └── safe-buffer@5.1.2 deduped
  │ │   └── util-deprecate@1.0.2 deduped
  │ ├─┬ pump@3.0.0
  │ │ ├── end-of-stream@1.4.1 deduped
  │ │ └── once@1.4.0 deduped
  │ ├─┬ pumpify@1.5.1
  │ │ ├── duplexify@3.6.0 deduped
  │ │ ├── inherits@2.0.4 deduped
  │ │ └─┬ pump@2.0.1
  │ │   ├── end-of-stream@1.4.1 deduped
  │ │   └── once@1.4.0 deduped
  │ ├─┬ stream-each@1.2.2
  │ │ ├── end-of-stream@1.4.1 deduped
  │ │ └── stream-shift@1.0.0 deduped
  │ └─┬ through2@2.0.3
  │   ├─┬ readable-stream@2.3.6
  │   │ ├── core-util-is@1.0.2 deduped
  │   │ ├── inherits@2.0.4 deduped
  │   │ ├── isarray@1.0.0 deduped
  │   │ ├── process-nextick-args@2.0.0 deduped
  │   │ ├── safe-buffer@5.1.2 deduped
  │   │ ├─┬ string_decoder@1.1.1
  │   │ │ └── safe-buffer@5.1.2 deduped
  │   │ └── util-deprecate@1.0.2 deduped
  │   └── xtend@4.0.1
  ├─┬ mkdirp@0.5.5
  │ └── minimist@1.2.5
  ├─┬ move-concurrently@1.0.1
  │ ├── aproba@1.2.0
  │ ├─┬ copy-concurrently@1.0.5
  │ │ ├── aproba@1.2.0
  │ │ ├── fs-write-stream-atomic@1.0.10 deduped
  │ │ ├── iferr@0.1.5
  │ │ ├── mkdirp@0.5.5 deduped
  │ │ ├── rimraf@2.7.1 deduped
  │ │ └── run-queue@1.0.3 deduped
  │ ├── fs-write-stream-atomic@1.0.10 deduped
  │ ├── mkdirp@0.5.5 deduped
  │ ├── rimraf@2.7.1 deduped
  │ └─┬ run-queue@1.0.3
  │   └── aproba@1.2.0
  ├─┬ node-gyp@5.1.0
  │ ├── env-paths@2.2.0
  │ ├── glob@7.1.6 deduped
  │ ├── graceful-fs@4.2.4 deduped
  │ ├── mkdirp@0.5.5 deduped
  │ ├── nopt@4.0.3 deduped
  │ ├── npmlog@4.1.2 deduped
  │ ├── request@2.88.0 deduped
  │ ├── rimraf@2.7.1 deduped
  │ ├── semver@5.7.1 deduped
  │ ├── tar@4.4.13 deduped
  │ └── which@1.3.1 deduped
  ├─┬ nopt@4.0.3
  │ ├── abbrev@1.1.1 deduped
  │ └── osenv@0.1.5 deduped
  ├─┬ normalize-package-data@2.5.0
  │ ├── hosted-git-info@2.8.8 deduped
  │ ├─┬ resolve@1.10.0
  │ │ └── path-parse@1.0.6
  │ ├── semver@5.7.1 deduped
  │ └── validate-npm-package-license@3.0.4 deduped
  ├─┬ npm-audit-report@1.3.3
  │ ├── cli-table3@0.5.1 deduped
  │ └── console-control-strings@1.1.0
  ├── npm-cache-filename@1.0.2
  ├─┬ npm-install-checks@3.0.2
  │ └── semver@5.7.1 deduped
  ├─┬ npm-lifecycle@3.1.5
  │ ├── byline@5.0.0
  │ ├── graceful-fs@4.2.4 deduped
  │ ├── node-gyp@5.1.0 deduped
  │ ├── resolve-from@4.0.0
  │ ├── slide@1.1.6 deduped
  │ ├── uid-number@0.0.6 deduped
  │ ├── umask@1.1.0 deduped
  │ └── which@1.3.1 deduped
  ├─┬ npm-package-arg@6.1.1
  │ ├── hosted-git-info@2.8.8 deduped
  │ ├── osenv@0.1.5 deduped
  │ ├── semver@5.7.1 deduped
  │ └── validate-npm-package-name@3.0.0 deduped
  ├─┬ npm-packlist@1.4.8
  │ ├─┬ ignore-walk@3.0.3
  │ │ └── minimatch@3.0.4 deduped
  │ ├─┬ npm-bundled@1.1.1
  │ │ └── npm-normalize-package-bin@1.0.1 deduped
  │ └── npm-normalize-package-bin@1.0.1 deduped
  ├─┬ npm-pick-manifest@3.0.2
  │ ├── figgy-pudding@3.5.1 deduped
  │ ├── npm-package-arg@6.1.1 deduped
  │ └── semver@5.7.1 deduped
  ├─┬ npm-profile@4.0.4
  │ ├── aproba@2.0.0 deduped
  │ ├── figgy-pudding@3.5.1 deduped
  │ └── npm-registry-fetch@4.0.7 deduped
  ├─┬ npm-registry-fetch@4.0.7
  │ ├── bluebird@3.5.5 deduped
  │ ├── figgy-pudding@3.5.1 deduped
  │ ├── JSONStream@1.3.5 deduped
  │ ├── lru-cache@5.1.1 deduped
  │ ├─┬ make-fetch-happen@5.0.2
  │ │ ├─┬ agentkeepalive@3.5.2
  │ │ │ └─┬ humanize-ms@1.2.1
  │ │ │   └── ms@2.1.1
  │ │ ├── cacache@12.0.3 deduped
  │ │ ├── http-cache-semantics@3.8.1
  │ │ ├─┬ http-proxy-agent@2.1.0
  │ │ │ ├─┬ agent-base@4.3.0
  │ │ │ │ └─┬ es6-promisify@5.0.0
  │ │ │ │   └── es6-promise@4.2.8
  │ │ │ └─┬ debug@3.1.0
  │ │ │   └── ms@2.0.0
  │ │ ├─┬ https-proxy-agent@2.2.4
  │ │ │ ├── agent-base@4.3.0 deduped
  │ │ │ └── debug@3.1.0 deduped
  │ │ ├── lru-cache@5.1.1 deduped
  │ │ ├── mississippi@3.0.0 deduped
  │ │ ├─┬ node-fetch-npm@2.0.2
  │ │ │ ├─┬ encoding@0.1.12
  │ │ │ │ └─┬ iconv-lite@0.4.23
  │ │ │ │   └── safer-buffer@2.1.2 deduped
  │ │ │ ├── json-parse-better-errors@1.0.2 deduped
  │ │ │ └── safe-buffer@5.1.2 deduped
  │ │ ├── promise-retry@1.1.1 deduped
  │ │ ├─┬ socks-proxy-agent@4.0.2
  │ │ │ ├─┬ agent-base@4.2.1
  │ │ │ │ └── es6-promisify@5.0.0 deduped
  │ │ │ └─┬ socks@2.3.3
  │ │ │   ├── ip@1.1.5
  │ │ │   └── smart-buffer@4.1.0
  │ │ └── ssri@6.0.1 deduped
  │ ├── npm-package-arg@6.1.1 deduped
  │ └── safe-buffer@5.2.1
  ├── npm-user-validate@1.0.1
  ├─┬ npmlog@4.1.2
  │ ├─┬ are-we-there-yet@1.1.4
  │ │ ├── delegates@1.0.0
  │ │ └─┬ readable-stream@2.3.6
  │ │   ├── core-util-is@1.0.2 deduped
  │ │   ├── inherits@2.0.4 deduped
  │ │   ├── isarray@1.0.0 deduped
  │ │   ├── process-nextick-args@2.0.0 deduped
  │ │   ├── safe-buffer@5.1.2 deduped
  │ │   ├─┬ string_decoder@1.1.1
  │ │   │ └── safe-buffer@5.1.2 deduped
  │ │   └── util-deprecate@1.0.2 deduped
  │ ├── console-control-strings@1.1.0 deduped
  │ ├─┬ gauge@2.7.4
  │ │ ├── aproba@1.2.0
  │ │ ├── console-control-strings@1.1.0 deduped
  │ │ ├── has-unicode@2.0.1 deduped
  │ │ ├── object-assign@4.1.1 deduped
  │ │ ├── signal-exit@3.0.2 deduped
  │ │ ├─┬ string-width@1.0.2
  │ │ │ ├── code-point-at@1.1.0
  │ │ │ ├─┬ is-fullwidth-code-point@1.0.0
  │ │ │ │ └── number-is-nan@1.0.1
  │ │ │ └── strip-ansi@3.0.1 deduped
  │ │ ├── strip-ansi@3.0.1 deduped
  │ │ └─┬ wide-align@1.1.2
  │ │   └─┬ string-width@1.0.2
  │ │     ├── code-point-at@1.1.0 deduped
  │ │     ├── is-fullwidth-code-point@1.0.0 deduped
  │ │     └── strip-ansi@3.0.1 deduped
  │ └── set-blocking@2.0.0
  ├─┬ once@1.4.0
  │ └── wrappy@1.0.2 deduped
  ├── opener@1.5.2
  ├─┬ osenv@0.1.5
  │ ├── os-homedir@1.0.2
  │ └── os-tmpdir@1.0.2
  ├─┬ pacote@9.5.12
  │ ├── bluebird@3.5.5 deduped
  │ ├── cacache@12.0.3 deduped
  │ ├── chownr@1.1.4 deduped
  │ ├── figgy-pudding@3.5.1 deduped
  │ ├── get-stream@4.1.0 deduped
  │ ├── glob@7.1.6 deduped
  │ ├── infer-owner@1.0.4 deduped
  │ ├── lru-cache@5.1.1 deduped
  │ ├── make-fetch-happen@5.0.2 deduped
  │ ├── minimatch@3.0.4 deduped
  │ ├─┬ minipass@2.9.0
  │ │ ├── safe-buffer@5.1.2 deduped
  │ │ └── yallist@3.0.3 deduped
  │ ├── mississippi@3.0.0 deduped
  │ ├── mkdirp@0.5.5 deduped
  │ ├── normalize-package-data@2.5.0 deduped
  │ ├── npm-normalize-package-bin@1.0.1 deduped
  │ ├── npm-package-arg@6.1.1 deduped
  │ ├── npm-packlist@1.4.8 deduped
  │ ├── npm-pick-manifest@3.0.2 deduped
  │ ├── npm-registry-fetch@4.0.7 deduped
  │ ├── osenv@0.1.5 deduped
  │ ├── promise-inflight@1.0.1 deduped
  │ ├─┬ promise-retry@1.1.1
  │ │ ├── err-code@1.1.2
  │ │ └── retry@0.10.1
  │ ├─┬ protoduck@5.0.1
  │ │ └── genfun@5.0.0
  │ ├── rimraf@2.7.1 deduped
  │ ├── safe-buffer@5.1.2 deduped
  │ ├── semver@5.7.1 deduped
  │ ├── ssri@6.0.1 deduped
  │ ├── tar@4.4.13 deduped
  │ ├── unique-filename@1.1.1 deduped
  │ └── which@1.3.1 deduped
  ├── path-is-inside@1.0.2
  ├── promise-inflight@1.0.1
  ├── qrcode-terminal@0.12.0
  ├─┬ query-string@6.8.2
  │ ├── decode-uri-component@0.2.0
  │ ├── split-on-first@1.1.0
  │ └── strict-uri-encode@2.0.0
  ├── qw@1.0.1
  ├─┬ read@1.0.7
  │ └── mute-stream@0.0.7
  ├─┬ read-cmd-shim@1.0.5
  │ └── graceful-fs@4.2.4 deduped
  ├─┬ read-installed@4.0.3
  │ ├── debuglog@1.0.1 deduped
  │ ├── graceful-fs@4.2.4 deduped
  │ ├── read-package-json@2.1.1 deduped
  │ ├── readdir-scoped-modules@1.1.0 deduped
  │ ├── semver@5.7.1 deduped
  │ ├── slide@1.1.6 deduped
  │ └── util-extend@1.0.3
  ├─┬ read-package-json@2.1.1
  │ ├── glob@7.1.6 deduped
  │ ├── graceful-fs@4.2.4 deduped
  │ ├── json-parse-better-errors@1.0.2 deduped
  │ ├── normalize-package-data@2.5.0 deduped
  │ └── npm-normalize-package-bin@1.0.1 deduped
  ├─┬ read-package-tree@5.3.1
  │ ├── read-package-json@2.1.1 deduped
  │ ├── readdir-scoped-modules@1.1.0 deduped
  │ └─┬ util-promisify@2.1.0
  │   └─┬ object.getownpropertydescriptors@2.0.3
  │     ├─┬ define-properties@1.1.3
  │     │ └── object-keys@1.0.12
  │     └─┬ es-abstract@1.12.0
  │       ├─┬ es-to-primitive@1.2.0
  │       │ ├── is-callable@1.1.4 deduped
  │       │ ├── is-date-object@1.0.1
  │       │ └─┬ is-symbol@1.0.2
  │       │   └── has-symbols@1.0.0
  │       ├── function-bind@1.1.1
  │       ├─┬ has@1.0.3
  │       │ └── function-bind@1.1.1 deduped
  │       ├── is-callable@1.1.4
  │       └─┬ is-regex@1.0.4
  │         └── has@1.0.3 deduped
  ├─┬ readable-stream@3.6.0
  │ ├── inherits@2.0.4 deduped
  │ ├─┬ string_decoder@1.3.0
  │ │ └── safe-buffer@5.2.0
  │ └── util-deprecate@1.0.2
  ├─┬ readdir-scoped-modules@1.1.0
  │ ├── debuglog@1.0.1 deduped
  │ ├── dezalgo@1.0.3 deduped
  │ ├── graceful-fs@4.2.4 deduped
  │ └── once@1.4.0 deduped
  ├─┬ request@2.88.0
  │ ├── aws-sign2@0.7.0
  │ ├── aws4@1.8.0
  │ ├── caseless@0.12.0
  │ ├─┬ combined-stream@1.0.6
  │ │ └── delayed-stream@1.0.0
  │ ├── extend@3.0.2
  │ ├── forever-agent@0.6.1
  │ ├─┬ form-data@2.3.2
  │ │ ├── asynckit@0.4.0
  │ │ ├── combined-stream@1.0.6 deduped
  │ │ └── mime-types@2.1.19 deduped
  │ ├─┬ har-validator@5.1.5
  │ │ ├─┬ ajv@6.12.6
  │ │ │ ├── fast-deep-equal@3.1.3
  │ │ │ ├── fast-json-stable-stringify@2.0.0
  │ │ │ ├── json-schema-traverse@0.4.1
  │ │ │ └─┬ uri-js@4.4.0
  │ │ │   └── punycode@2.1.1
  │ │ └── har-schema@2.0.0
  │ ├─┬ http-signature@1.2.0
  │ │ ├── assert-plus@1.0.0
  │ │ ├─┬ jsprim@1.4.1
  │ │ │ ├── assert-plus@1.0.0 deduped
  │ │ │ ├── extsprintf@1.3.0
  │ │ │ ├── json-schema@0.2.3
  │ │ │ └─┬ verror@1.10.0
  │ │ │   ├── assert-plus@1.0.0 deduped
  │ │ │   ├── core-util-is@1.0.2 deduped
  │ │ │   └── extsprintf@1.3.0 deduped
  │ │ └─┬ sshpk@1.14.2
  │ │   ├─┬ asn1@0.2.4
  │ │   │ └── safer-buffer@2.1.2 deduped
  │ │   ├── assert-plus@1.0.0 deduped
  │ │   ├─┬ bcrypt-pbkdf@1.0.2
  │ │   │ └── tweetnacl@0.14.5 deduped
  │ │   ├─┬ dashdash@1.14.1
  │ │   │ └── assert-plus@1.0.0 deduped
  │ │   ├─┬ ecc-jsbn@0.1.2
  │ │   │ ├── jsbn@0.1.1 deduped
  │ │   │ └── safer-buffer@2.1.2 deduped
  │ │   ├─┬ getpass@0.1.7
  │ │   │ └── assert-plus@1.0.0 deduped
  │ │   ├── jsbn@0.1.1
  │ │   ├── safer-buffer@2.1.2
  │ │   └── tweetnacl@0.14.5
  │ ├── is-typedarray@1.0.0
  │ ├── isstream@0.1.2
  │ ├── json-stringify-safe@5.0.1
  │ ├─┬ mime-types@2.1.19
  │ │ └── mime-db@1.35.0
  │ ├── oauth-sign@0.9.0
  │ ├── performance-now@2.1.0
  │ ├── qs@6.5.2
  │ ├── safe-buffer@5.1.2 deduped
  │ ├─┬ tough-cookie@2.4.3
  │ │ ├── psl@1.1.29
  │ │ └── punycode@1.4.1
  │ ├─┬ tunnel-agent@0.6.0
  │ │ └── safe-buffer@5.1.2 deduped
  │ └── uuid@3.3.3 deduped
  ├── retry@0.12.0
  ├─┬ rimraf@2.7.1
  │ └── glob@7.1.6 deduped
  ├── safe-buffer@5.1.2
  ├── semver@5.7.1
  ├─┬ sha@3.0.0
  │ └── graceful-fs@4.2.4 deduped
  ├── slide@1.1.6
  ├── sorted-object@2.0.1
  ├─┬ sorted-union-stream@2.1.3
  │ ├─┬ from2@1.3.0
  │ │ ├── inherits@2.0.4 deduped
  │ │ └─┬ readable-stream@1.1.14
  │ │   ├── core-util-is@1.0.2 deduped
  │ │   ├── inherits@2.0.4 deduped
  │ │   ├── isarray@0.0.1
  │ │   └── string_decoder@0.10.31
  │ └─┬ stream-iterate@1.2.0
  │   ├─┬ readable-stream@2.3.6
  │   │ ├── core-util-is@1.0.2 deduped
  │   │ ├── inherits@2.0.4 deduped
  │   │ ├── isarray@1.0.0 deduped
  │   │ ├── process-nextick-args@2.0.0 deduped
  │   │ ├── safe-buffer@5.1.2 deduped
  │   │ ├─┬ string_decoder@1.1.1
  │   │ │ └── safe-buffer@5.1.2 deduped
  │   │ └── util-deprecate@1.0.2 deduped
  │   └── stream-shift@1.0.0 deduped
  ├─┬ ssri@6.0.1
  │ └── figgy-pudding@3.5.1 deduped
  ├── stringify-package@1.0.1
  ├─┬ tar@4.4.13
  │ ├── chownr@1.1.4 deduped
  │ ├─┬ fs-minipass@1.2.7
  │ │ └─┬ minipass@2.9.0
  │ │   ├── safe-buffer@5.1.2 deduped
  │ │   └── yallist@3.0.3 deduped
  │ ├─┬ minipass@2.9.0
  │ │ ├── safe-buffer@5.1.2 deduped
  │ │ └── yallist@3.0.3 deduped
  │ ├─┬ minizlib@1.3.3
  │ │ └─┬ minipass@2.9.0
  │ │   ├── safe-buffer@5.1.2 deduped
  │ │   └── yallist@3.0.3 deduped
  │ ├── mkdirp@0.5.5 deduped
  │ ├── safe-buffer@5.1.2 deduped
  │ └── yallist@3.0.3 deduped
  ├── text-table@0.2.0
  ├── tiny-relative-date@1.3.0
  ├── uid-number@0.0.6
  ├── umask@1.1.0
  ├─┬ unique-filename@1.1.1
  │ └─┬ unique-slug@2.0.0
  │   └── imurmurhash@0.1.4 deduped
  ├── unpipe@1.0.0
  ├─┬ update-notifier@2.5.0
  │ ├─┬ boxen@1.3.0
  │ │ ├─┬ ansi-align@2.0.0
  │ │ │ └── string-width@2.1.1 deduped
  │ │ ├── camelcase@4.1.0
  │ │ ├── chalk@2.4.1 deduped
  │ │ ├── cli-boxes@1.0.0
  │ │ ├── string-width@2.1.1 deduped
  │ │ ├─┬ term-size@1.2.0
  │ │ │ └─┬ execa@0.7.0
  │ │ │   ├─┬ cross-spawn@5.1.0
  │ │ │   │ ├─┬ lru-cache@4.1.5
  │ │ │   │ │ ├── pseudomap@1.0.2
  │ │ │   │ │ └── yallist@2.1.2
  │ │ │   │ ├─┬ shebang-command@1.2.0
  │ │ │   │ │ └── shebang-regex@1.0.0
  │ │ │   │ └── which@1.3.1 deduped
  │ │ │   ├── get-stream@3.0.0
  │ │ │   ├── is-stream@1.1.0
  │ │ │   ├─┬ npm-run-path@2.0.2
  │ │ │   │ └── path-key@2.0.1
  │ │ │   ├── p-finally@1.0.0
  │ │ │   ├── signal-exit@3.0.2 deduped
  │ │ │   └── strip-eof@1.0.0
  │ │ └─┬ widest-line@2.0.1
  │ │   └── string-width@2.1.1 deduped
  │ ├─┬ chalk@2.4.1
  │ │ ├─┬ ansi-styles@3.2.1
  │ │ │ └─┬ color-convert@1.9.1
  │ │ │   └── color-name@1.1.3
  │ │ ├── escape-string-regexp@1.0.5
  │ │ └─┬ supports-color@5.4.0
  │ │   └── has-flag@3.0.0
  │ ├─┬ configstore@3.1.5
  │ │ ├─┬ dot-prop@4.2.1
  │ │ │ └── is-obj@1.0.1
  │ │ ├── graceful-fs@4.2.4 deduped
  │ │ ├─┬ make-dir@1.3.0
  │ │ │ └── pify@3.0.0
  │ │ ├─┬ unique-string@1.0.0
  │ │ │ └── crypto-random-string@1.0.0
  │ │ ├── write-file-atomic@2.4.3 deduped
  │ │ └── xdg-basedir@3.0.0 deduped
  │ ├── import-lazy@2.1.0
  │ ├─┬ is-ci@1.2.1
  │ │ └── ci-info@1.6.0
  │ ├─┬ is-installed-globally@0.1.0
  │ │ ├─┬ global-dirs@0.1.1
  │ │ │ └── ini@1.3.8 deduped
  │ │ └─┬ is-path-inside@1.0.1
  │ │   └── path-is-inside@1.0.2 deduped
  │ ├── is-npm@1.0.0
  │ ├─┬ latest-version@3.1.0
  │ │ └─┬ package-json@4.0.1
  │ │   ├─┬ got@6.7.1
  │ │   │ ├─┬ create-error-class@3.0.2
  │ │   │ │ └── capture-stack-trace@1.0.0
  │ │   │ ├── duplexer3@0.1.4
  │ │   │ ├── get-stream@3.0.0
  │ │   │ ├── is-redirect@1.0.0
  │ │   │ ├── is-retry-allowed@1.2.0
  │ │   │ ├── is-stream@1.1.0 deduped
  │ │   │ ├── lowercase-keys@1.0.1
  │ │   │ ├── safe-buffer@5.1.2 deduped
  │ │   │ ├── timed-out@4.0.1
  │ │   │ ├── unzip-response@2.0.1
  │ │   │ └─┬ url-parse-lax@1.0.0
  │ │   │   └── prepend-http@1.0.4
  │ │   ├─┬ registry-auth-token@3.4.0
  │ │   │ ├─┬ rc@1.2.8
  │ │   │ │ ├── deep-extend@0.6.0
  │ │   │ │ ├── ini@1.3.8 deduped
  │ │   │ │ ├── minimist@1.2.5
  │ │   │ │ └── strip-json-comments@2.0.1
  │ │   │ └── safe-buffer@5.1.2 deduped
  │ │   ├─┬ registry-url@3.1.0
  │ │   │ └── rc@1.2.8 deduped
  │ │   └── semver@5.7.1 deduped
  │ ├─┬ semver-diff@2.1.0
  │ │ └── semver@5.7.1 deduped
  │ └── xdg-basedir@3.0.0
  ├── uuid@3.3.3
  ├─┬ validate-npm-package-license@3.0.4
  │ ├─┬ spdx-correct@3.0.0
  │ │ ├── spdx-expression-parse@3.0.0 deduped
  │ │ └── spdx-license-ids@3.0.5
  │ └─┬ spdx-expression-parse@3.0.0
  │   ├── spdx-exceptions@2.1.0
  │   └── spdx-license-ids@3.0.5 deduped
  ├─┬ validate-npm-package-name@3.0.0
  │ └── builtins@1.0.3
  ├─┬ which@1.3.1
  │ └── isexe@2.0.0
  ├─┬ worker-farm@1.7.0
  │ └─┬ errno@0.1.7
  │   └── prr@1.0.1
  └─┬ write-file-atomic@2.4.3
    ├── graceful-fs@4.2.4 deduped
    ├── imurmurhash@0.1.4 deduped
    └── signal-exit@3.0.2 deduped

[root@master ~]#

jupyter                           1.0.0
jupyter-client                    6.1.11
jupyter-console                   6.2.0
jupyter-contrib-core              0.3.3
jupyter-contrib-nbextensions      0.5.1
jupyter-core                      4.7.1
jupyter-highlight-selected-word   0.2.0
jupyter-latex-envs                1.4.6
jupyter-nbextensions-configurator 0.4.1
jupyter-server                    1.3.0
jupyter-telemetry                 0.1.0
jupyterhub                        1.1.0
jupyterlab                        2.2.0
jupyterlab-github                 2.0.0
jupyterlab-pygments               0.1.2
jupyterlab-server                 1.2.0
jupyterlab-slurm                  2.0.0
jupyterlab-widgets                1.0.0
jupyterlmod                       2.0.2
[root@master ~]#

And when we start  jupyterhub , it is loading jupyterlab_slurm server extension as below
[I 2021-02-28 01:06:20.756 SingleUserNotebookApp extension:163] JupyterLab application directory is /usr/local/py36/3_6_9/share/jupyter/lab
jupyterlab_slurm server extension loaded
Starting up....
squeue
scancel
scontrol
sbatch

Web Browser Error Logs:
i am not getting any console output once job is submitted. please find the screenshot
image

and Network tab status as below
image

Team, Please help us to resolve this issue.
Regards
Zain

@krinsman
Copy link
Collaborator

krinsman commented Mar 1, 2021

OK, this appears to be very helpful in terms of additional information.

Since I currently work at a new job now, and did not help implement the newest changes to the frontend, I don't really know/understand how the frontend works anymore. In particular I have never written a substantial piece of software using React myself and don't really understand it. So I should admit to you up front that I personally probably won't be able to help you with your issue, although hopefully someone else might be able to.

It is good to see that the jobs are actually being submitted, but you're right that it (more than) somewhat defeats the purpose of implementing a GUI if the GUI doesn't confirm for the user that this happened.

@zainul1114 I notice that in the screenshot the "Show my jobs only" checkbox is clicked.

1. Can you describe, as well as show with screenshots, what happens when it's unclicked?

When I worked on this, getting the "show my jobs only" box to work tended to be difficult/problematic. Also when I last worked on this, the structure was somewhat "brittle" with respect to the format in which squeue responded to commands https://slurm.schedmd.com/squeue.html so e.g. if in a newer version of Slurm the format in which squeue returns output has changed, maybe that could cause problems?

2. Did you already say what version of Slurm your group is using? Hopefully a version incompatibility with Slurm is not the issue, but based on my limited knowledge it maybe can't yet be ruled out?

Sorry again for not being able to provide you with any definitive answers.

@zainul1114
Copy link
Author

zainul1114 commented Mar 1, 2021 via email

@zainul1114
Copy link
Author

Hi,
I have tried to submit the jobs with Slurm Queue Manager on jupyterhub, jobs are running and getting output as expected. But, not able to view jobs while running or after completed, Means job rows on Slurm Queue Manager.
My Environment:
Python 3.6.9
jupyterlab-slurm 2.0.0
jupyterhub 1.1.0
jupyterlab 2.2.0

image

Anyhow, i am able to get the details from sacct on command line. Please find the attached screenshot and help me to resolve this issue.

Regards,
Zain

@zainul1114 zainul1114 reopened this Mar 5, 2021
@zainul1114
Copy link
Author

Hi Team,
By mistake it was done,

Please help us to resolve this.

@krinsman
Copy link
Collaborator

krinsman commented Mar 5, 2021

Hi @zainul1114 ! Thank you for your continued interest in this project! It is really gratifying to know that people actually use and appreciate your work.

I noticed you're running JupyterLab 2.2?

Some questions:

1. What happens when the "Show my jobs only" box is unclicked?
2. What version of Slurm are you running with this?
3. Is it possible to confirm that this error still happens with JupyterLab 2.0?
4. Is it possible to confirm that this error still happens with JupyterLab 3.0?
5. Have you used earlier versions of JupyterLab-Slurm and not had this error occur? If so, what versions of JupyterLab did you use them with?

I know the current maintainers have a lot of work maintaining numerous other projects as well, so the more help you can provide for them in advance in narrowing down the scope of the possible sources of the issue, the more likely it is to be resolved. Speaking personally as someone who is not currently actively maintaining this repository, and not for anyone else, I know that I would not want to look into this further without knowing the answers to at least some of the above questions.

EDIT: To refresh/check my understanding of these tools and Docker, I've been considering this weekend or the next possibly trying to create a Docker container that could reproduce this issue. Then I might be able to help you identify the source of the problem or even propose a solution (no promises though). But currently I'm afraid to even try without at least knowing the specific version of Slurm involved, and without being able to rule out earlier or later versions of JupyterLab as the fix.

@zainul1114
Copy link
Author

Thanks for your response..
Sure, find the following
1. What happens when the "Show my jobs only" box is unclicked?
image
i am not getting any rows related to jobs when the "Show my jobs only" box is clicked/unclicked.

2. What version of Slurm are you running with this?

[root@master ~]# slurmd --version
slurm 20.11.2
[root@master ~]# slurmctld -V
slurm 20.11.2
[root@master ~]# slurmdbd -V
slurm 20.11.2
[root@master ~]#

5. Have you used earlier versions of JupyterLab-Slurm and not had this error occur? If so, what versions of JupyterLab did you use them with?
I have used JupyterLab-Slurm 1.0.5 and i am getting below error message -Here jupyterhub 1.1.0 and jupyterlab 2.2.0
image

Sure, I will check below two combinations and get back to you with result.
3. Is it possible to confirm that this error still happens with JupyterLab 2.0?
4. Is it possible to confirm that this error still happens with JupyterLab 3.0?

Please let me know the Originally tested combination of Jupyterlab version, Slurm version along with jupyterlab-slurm versions. I will set up and test accordingly and update the result.

Regards,
Zain

@krinsman
Copy link
Collaborator

krinsman commented Mar 6, 2021

Thank you, this is already very helpful!

I was hoping it would maybe be a resurfacing of an old bug (cf. #23 ) due to the updated dependencies in the new versions, but it appears more complicated than that...

@krinsman
Copy link
Collaborator

krinsman commented Mar 7, 2021

@zainul1114 FYI don't bother trying to test this with JupyterLab 3.0, since that appears to not be supported yet:

Successfully installed jupyterlab-slurm-2.0.0
An error occured.
ValueError: The extension "jupyterlab-slurm" does not yet support the current version of JupyterLab.

Conflicting Dependencies:
JupyterLab              Extension        Package
>=3.0.6 <3.1.0          >=2.1.2 <3.0.0   @jupyterlab/application
>=3.0.5 <3.1.0          >=2.1.1 <3.0.0   @jupyterlab/apputils
>=5.0.3 <5.1.0          >=4.1.0 <5.0.0   @jupyterlab/coreutils
>=3.0.6 <3.1.0          >=2.1.1 <3.0.0   @jupyterlab/filebrowser
>=3.0.5 <3.1.0          >=2.1.1 <3.0.0   @jupyterlab/launcher
>=6.0.5 <6.1.0          >=5.1.0 <6.0.0   @jupyterlab/services
>=17.0.1 <18.0.0        >=16.9.0 <17.0.0 react
>=17.0.1 <18.0.0        >=16.9.0 <17.0.0 react-dom
See the log file for details:  /tmp/jupyterlab-debug-lm5u8nn0.log

1. Also you said you are using JupyterLab-slurm 1.05 with JupyterLab 2.2?

Can you confirm that this is still happening with the newest version JupyterLab-slurm 2.0.0 and JupyterLab 2.2?

Not all versions of JupyterLab-Slurm are compatible with JupyterLab 2+ unfortunately -- I don't remember whether 1.05 is one of them.

jupyter labextension install jupyterlab-slurm@2.0.0

2. Also have you tried running JupyterLab-Slurm without JupyterHub (you might need SSH port forwarding to do this)?

Admittedly that probably isn't the issue, since when it was the issue in the past the reason was because using JupyterHub required the HTTP request command syntax to be modified in a way that the old version of JupyterLab-Slrum didn't yet support. The HTTP server backend for the version (1.0.5) you are using appears to be working based on the information that you shared. So don't worry so much about double-checking whether the issue also occurs with JupyterLab in standalone mode, even if it would be a good sanity check.

3. I spent 3+ hours this weekend trying to create a Docker container to reproduce the issue but haven't finished yet. (The container build process is relatively slow, making it difficult to iterate quickly since simple mistakes often take 15-20 minutes to recover from.) You can see my progress so far here and here. I might try to finish this next weekend using the guide here. In all honesty I probably should have made a container doing this a long time ago while working on the project. I believe my rationalization at the time was that I was lazy and able to debug most of the problems using the system's Slurm installation and the like. Anyway hopefully a "Dockerized" minimal working example of the bug will make it easier to identify and fix.

@zainul1114
Copy link
Author

zainul1114 commented Mar 7, 2021

Hi,
Thanks for support Krinsman

I have tried this weekend
3. Is it possible to confirm that this error still happens with JupyterLab 2.0, however i am not able to set up JupyterLab 2.0 with Jupyterlab-Slurm-2.0.0,
When i tried with Jupyterlab 2.1.2 with Jupyterlab-Slurm-2.0.0 i am able to setup, in this combination i am expected same result as we getting earlier i.e jobs are running and getting output as expected. But, not able to view jobs while running or after completed, Means job rows on Slurm Queue Manager.

Then again i changed jupyterlab-slurm version 1.0.5 and i tried

[root@smaster ~]# python3 -m pip list |grep jupyter
jupyter                           1.0.0
jupyter-client                    6.1.11
jupyter-console                   6.2.0
jupyter-contrib-core              0.3.3
jupyter-contrib-nbextensions      0.5.1
jupyter-core                      4.7.1
jupyter-highlight-selected-word   0.2.0
jupyter-latex-envs                1.4.6
jupyter-nbextensions-configurator 0.4.1
jupyter-server                    1.3.0
jupyter-telemetry                 0.1.0
jupyterhub                        1.1.0
jupyterlab                        2.1.2
jupyterlab-drawio                 0.8.0
jupyterlab-github                 2.0.0
jupyterlab-python-file            0.5.2
jupyterlab-server                 1.2.0
jupyterlab-slurm                  1.0.5
jupyterlab-widgets                1.0.0
[root@smaster ~]# jupyter labextension list
JupyterLab v2.1.2
Known labextensions:
   app dir: /usr/local/py36/3_6_9/share/jupyter/lab
        @jupyterlab/github v2.0.0  enabled  OK
        jupyterlab-slurm v2.0.0  enabled  OK
        jupyterlab-topbar-extension v0.5.0  enabled  OK
[root@smaster ~]# jupyter serverextension list
config dir: /usr/local/py36/3_6_9/etc/jupyter
    jupyterlab  enabled
    - Validating...
      jupyterlab 2.1.2 OK
    jupyterlab_github  enabled
    - Validating...
      jupyterlab_github 2.0.0 OK
    jupyterlab_slurm  enabled
    - Validating...
      jupyterlab_slurm 1.0.5 OK
    nbresuse  enabled
    - Validating...
      nbresuse  OK

Here i tried to submit job and i am getting Unknown error encountered while submitting the script. Try again later.
and web-logs are as shown below
image

When i tried jupyter labextension withjupyterlab-slurm@1.0.5 and i am getting as below

[root@smaster ~]# jupyter labextension install jupyterlab-slurm@1.0.5
An error occured.
ValueError: "jupyterlab-slurm@1.0.5" is not a valid npm package
See the log file for details:  /tmp/jupyterlab-debug-0d7ku6ti.log

[root@smaster ~]# tail  /tmp/jupyterlab-debug-0d7ku6ti.log

  File "/usr/local/py36/3_6_9/lib/python3.6/site-packages/jupyterlab/commands.py", line 1499, in _install_extension
    info = self._extract_package(extension, tempdir, pin=pin)

  File "/usr/local/py36/3_6_9/lib/python3.6/site-packages/jupyterlab/commands.py", line 1578, in _extract_package
    raise ValueError(msg % source)

ValueError: "jupyterlab-slurm@1.0.5" is not a valid npm package

Exiting application: jupyter

  1. Is it possible to confirm that this error still happens with JupyterLab 3.0?
    same dependency issue i am also getting with Jupyterlab 3.0

  2. Also have you tried running JupyterLab-Slurm without JupyterHub
    No, i have not.

Please guide me below scenario's as i am not clear with this.
A. Is slurm version(slurm 20.11.2) is compatible with Jupyterlab-slurm2.0.0 else do we need to allow any configuration parameters into Slurm Job Scheduler (sacctmgr)?
B. Once we setup Jupyterlab-slurm, already submitted slurm jobs will be load automatically in Jupyterlab-slurm environment?
C. can we load jupyterlab-slurm as Launch Classical Notebook (like Python3 kernerl)

Regards,
Zain

@krinsman
Copy link
Collaborator

krinsman commented Mar 7, 2021

I haven't had time yet to look into the results of the version checks you did -- maybe later this week.

A. I don't know either way to be honest.

B. They should be -- there isn't really any saved/stored environment variable. Under the hood jupyterlab-slurm just calls squeue (possibly with some flags -- like the exact same squeue command you'd run in a terminal), parses STDOUT, and then returns the parsed version of squeue's STDOUT to the frontend. And then so it's up to the frontend whether it can display that or not. Based on what you've described so far, the backend that calls squeue/sbatch/srun/etc. "in the ternminal" seems to be working, but the information it sends to the frontend is not being understood by the frontend.

C. The server extension/backend hypothetically might work (the python package). (At least it should work with the same Python backend as JupyterLab does, and I think classical notebook and JupyterLab share the same Python backend and/or that situation is in flux.) The NPM part/the lab extension definitely wouldn't work, since JupyterLab and Notebook have completely different frontends.

@zainul1114
Copy link
Author

Thanks for the Update.

@krinsman
Copy link
Collaborator

@zainul1114 I'm a little confused, because it seems like multiple errors are reported

Hi,
Thanks for support Krinsman

I have tried this weekend
3. Is it possible to confirm that this error still happens with JupyterLab 2.0, however i am not able to set up JupyterLab 2.0 with Jupyterlab-Slurm-2.0.0,

So to confirm,

JupyterLab 2.0 and JupyterLab-Slurm 2.0.0 == **incompatible**

correct? And you installed both (i) the LabExtension (NPM/Node) part of JupyterLab-Slurm 2.0, and the (ii) ServerExtension (Python3) part of JupyterLab-Slurm 2.0, correct?

When i tried with Jupyterlab 2.1.2 with Jupyterlab-Slurm-2.0.0 i am able to setup,

So to confirm,

JupyterLab 2.1.2 and JupyterLab-Slurm 2.0.0. == **compatible**

correct? And you installed both (i) the LabExtension (NPM/Node) part of JupyterLab-Slurm 2.0, and the (ii) ServerExtension (Python3) part of JupyterLab-Slurm 2.0, correct?

in this combination i am expected same result as we getting earlier i.e jobs are running and getting output as expected.
But, not able to view jobs while running or after completed, Means job rows on Slurm Queue Manager.

This is where I'm most confused.

1. So you did not get the same result as before (although you had expected to). Is that correct?

2. To confirm, JupyterLab 2.1.2 and JupyterLab-Slurm 2.0 loaded, but this combination did not work?

3. Could you rephrase what the error was that happened when you used JupyterLab 2.1.2 and JupyterLab-Slurm 2.0?

Also my guess is that it probably is only possible to provide support for the most recent version of JupyterLab-Slurm. (In any case I'm looking into this on my own free time and am not being paid at all for it anymore.) My point being that it would probably work out best for you if we can get JupyterLab-Slurm running for you.

4. Is there anything preventing you from running JupyterLab 2.1.2 on your system?

If so we can still try to see if we can debug JupyterLab-Slurm 1.0.5, and maybe submit a patch if possible. But I just want to warn you in advance that it is less likely that the current developers will be able to support that version in the future, even if we do debug it now.

Then again i changed jupyterlab-slurm version 1.0.5 and i tried

[root@smaster ~]# python3 -m pip list |grep jupyter
jupyter                           1.0.0
jupyter-client                    6.1.11
jupyter-console                   6.2.0
jupyter-contrib-core              0.3.3
jupyter-contrib-nbextensions      0.5.1
jupyter-core                      4.7.1
jupyter-highlight-selected-word   0.2.0
jupyter-latex-envs                1.4.6
jupyter-nbextensions-configurator 0.4.1
jupyter-server                    1.3.0
jupyter-telemetry                 0.1.0
jupyterhub                        1.1.0
jupyterlab                        2.1.2
jupyterlab-drawio                 0.8.0
jupyterlab-github                 2.0.0
jupyterlab-python-file            0.5.2
jupyterlab-server                 1.2.0
jupyterlab-slurm                  1.0.5
jupyterlab-widgets                1.0.0
[root@smaster ~]# jupyter labextension list
JupyterLab v2.1.2
Known labextensions:
   app dir: /usr/local/py36/3_6_9/share/jupyter/lab
        @jupyterlab/github v2.0.0  enabled  OK
        jupyterlab-slurm v2.0.0  enabled  OK
        jupyterlab-topbar-extension v0.5.0  enabled  OK

Here is also where I'm confused -- it looks like you've installed the LabExtension part of JupyterLab-Slurm 2.0.0, while reverting the ServerExtension part back to JupyterLab-Slurm 1.0.5?

If that is the case, then it makes sense that they might no longer work with one another?

I know it's confusing, because both programs are developed in the same repository, and they are designed to work together, but technically it makes sense to think of JupyterLab-Slurm as 2 programs: (1) a "ServerExtension" (jupyter serverextension list) which is a Python3 package that you can install with pip and corresponds to the "backend", and (2) a "LabExtension" (jupyter labextension list) which is a NPM/NodeJS package and corresponds to the "frontend".

This isn't an ideal situation and I could complain more about it to you, but suffice it to say for now that at least for the near or even indefinite future it seems unavoidable.

[root@smaster ~]# jupyter serverextension list
config dir: /usr/local/py36/3_6_9/etc/jupyter
    jupyterlab  enabled
    - Validating...
      jupyterlab 2.1.2 OK
    jupyterlab_github  enabled
    - Validating...
      jupyterlab_github 2.0.0 OK
    jupyterlab_slurm  enabled
    - Validating...
      jupyterlab_slurm 1.0.5 OK
    nbresuse  enabled
    - Validating...
      nbresuse  OK

Here i tried to submit job and i am getting Unknown error encountered while submitting the script. Try again later.
and web-logs are as shown below
image

To confirm, this happened when you ran both (1) JupyterLab-Slurm ServerExtension/Python3-Pip package ("backend") version 1.0.5 and (2) JupyterLab-Slurm LabExtension/NPM-NodeJS package ("frontend") version 2.0.0 at the same time?

This would make sense, since probably the backend was changed along with the frontend and so version 1.0.5 of the backend may no longer be compatible with version 2.0.0 of the frontend.

When i tried jupyter labextension withjupyterlab-slurm@1.0.5 and i am getting as below

[root@smaster ~]# jupyter labextension install jupyterlab-slurm@1.0.5
An error occured.
ValueError: "jupyterlab-slurm@1.0.5" is not a valid npm package
See the log file for details:  /tmp/jupyterlab-debug-0d7ku6ti.log

[root@smaster ~]# tail  /tmp/jupyterlab-debug-0d7ku6ti.log

  File "/usr/local/py36/3_6_9/lib/python3.6/site-packages/jupyterlab/commands.py", line 1499, in _install_extension
    info = self._extract_package(extension, tempdir, pin=pin)

  File "/usr/local/py36/3_6_9/lib/python3.6/site-packages/jupyterlab/commands.py", line 1578, in _extract_package
    raise ValueError(msg % source)

ValueError: "jupyterlab-slurm@1.0.5" is not a valid npm package

Exiting application: jupyter

OK, so here you are trying to install version 1.0.5 of the frontend/NPM-NodeJS package/LabExtension to work along with the version 1.0.5 of the backend/Python3-Pip/ServerExtension?

I am not sure why this would fail. To confirm first, though, are you unable to run JupyterLab 2.1.2 on your system?

Again, if you are able to do that, probably the ideal situation would be to run that and figure out how we can get JupyterLab-Slurm 2.0.0 to work with that. (Assuming I understood you correctly in saying that JupyterLab-Slurm 2.0.0 does not work with JupyterLab 2.1.2, even when both version 2.0.0 of the frontend of JupyterLab-Slurm and version 2.0.0 of the backend of JupyterLab-Slurm were installed.)

All the more so since the most recent version of JupyterLab is 3.0 + , so probably JupyterLab-Slurm will need to be updated even further in the near future to support that (if it hasn't already, I don't remember), making JupyterLab-Slurm version 1.0.5 even more "obsolete" or at least more difficult to support.

@zainul1114
Copy link
Author

zainul1114 commented Mar 14, 2021 via email

@krinsman
Copy link
Collaborator

@zainul1114 Can you please confirm more explicitly which parts are correct? Or at the very least could you answer:

1. You are able, or are you not able, to run the latest versions of JupyterLab (2.1.2 or 3.0.0) on your system?

2. Can you rephrase what the error was when you ran JupyterLab-Slurm 2.0.0 and JupyterLab 2.1.2 on your system?

3. Did you ever run both the
(i) LabExtension version 2.0.0 of JupyterLab-Slurm
AND
(ii) the ServerExtension version 2.0.0 of JupyterLab-Slurm
(at the same time) with JupyterLab 2.1.2?

From what you've described, it sounds like so far you only tried running version 2.0.0 of the LabExtension with version 1.0.5 of the ServerExtension, which were never designed to work together.

Based on your descriptions I'm not sure whether there's any bug when the current versions of all components:

  • LabExtension JupyterLabSlurm v.2.0.0,
  • ServerExtension JupyterLabSlurm v.2.0.0,
    and
  • JupyterLab 2.1.2.

are all run together simultaneously.

@krinsman
Copy link
Collaborator

krinsman commented Mar 14, 2021

So I've spent about two hours this morning trying to run Slurm in a Docker container. What I was able to figure out is that the latest version of Ubuntu (Hirsute, even the 20 LTS only install Slurm 19.X) needs to be installed to run Slurm 20+, and that JupyterLab-Slurm 2.0.0 appears to be incompatible with JupyterLab 2.2.0+, but works (or at least JupyterLab builds) with JupyterLab 2.1.2. cf. here

I still have not actually been able to test JupyterLab-Slurm with the container, because although apt-get install slurm slurmd slurmctld works fine, without issues, and dpkg -L slurmctld lists a slurm-wlm-configurator.html file, doing ls in that directory does not contain that file. In other words the output of

export SLURM_CONFIG_DIR=''$(dirname ''$(dpkg -L slurmctld | grep slurm-wlm-configurator.html)'')'' && ls -a $SLURM_CONFIG_DIR

does not contain slurm-wlm-configurator.html. So apparently either slurm-wlm-configurator.html may have been installed at some point but was automatically deleted? Either that or dpkg -L slurmctld is not only listing files that don't exist, but which never existed? I have been trying to Google why that might happen but I have no idea. Trying to follow instructions here https://signac.io/development/2020/06/26/local-SLURM-environment.html

@zainul1114 If you have any insight from past experience why dpkg -L slurmctld might list a slurm-wlm-configurator.html file that doesn't exist, that would be helpful. Anyway I might try again to reproduce this error next weekend.

@zainul1114
Copy link
Author

zainul1114 commented Mar 22, 2021

Hi,
I have not used slurm-wlm-configurator.html file previously, anyhow i have tried setting up slurm scheduler with jupyterhub-slurm environment in docker container as below link

https://github.com/giovtorres/slurm-docker-cluster

git clone https://github.com/giovtorres/slurm-docker-cluster.git
cd slurm-docker-cluster/
vim docker-compose.yml   --- add additional port for jupyterhub like 8090 in slurmctld session
vim Dockerfile		 --- change python3.4 to python.36 and pip3.4 to pip3.6

Building the Docker Image locally: 	**docker build -t slurm-docker-cluster:19.05.1 .**
Starting the Cluster: 			**docker-compose up -d**
Register the Cluster with SlurmDBD: 	**./register_cluster.sh**

Then i have accessed container and tested simple jobs
docker exec -it slurmctld bash
cd /data 
sinfo
sbatch --wrap="uptime"

later, i have tried setup jupyterlab-slurm on slurmctld container as follows

yum install -y wget sudo curl vim openssh-server openssl openssl-devel mlocate net-tools iproute openssh-clients httpd
python3 -m pip install --use-deprecated=legacy-resolver numpy scipy pandas matplotlib pillow sklearn jupyter==1.0.0 jupyter-server==1.3.0 jupyter-client==6.1.11 jupyterlab==2.2.0 nbconvert==5.6.1 jupyter_contrib_nbextensions notebook==6.0.3 pycrypto nbresuse ipywidgets batchspawner jupyterhub==1.1.0 jupyterlmod jupyterlab-python-file jupyterlab_slurm jupyterlab-drawio git+https://github.com/jupyter/sudospawner opencv-python keras statsmodels protobuf scikit-image larq tensorflow tqdm glob2

##Install nodejs
curl -sL https://rpm.nodesource.com/setup_12.x | sudo -E bash -
yum install -y makecache fast gcc-c++ make yarn nodejs
npm --version
node --version
npm install -g configurable-http-proxy

jupyter labextension install jupyterlab-slurm

jupyterhub --generate-config

cat<<EOF >> /data/jupyterhub_config.py
##PAM
c.PAMAuthenticator.open_sessions = False
##ssl
c.JupyterHub.ssl_cert = '/data/jhubssl.crt'
c.JupyterHub.ssl_key = '/data/jhubssl.key'
#Allow root
c.Spawner.args = ['--allow-root']

#Create a whitelist of users
c.Authenticator.whitelist = {'zain'}
c.Authenticator.admin_users = {'zain'}
c.PAMAuthenticator.admin_groups = {'wheel'}
#Use LocalAuthenticator to create system users
c.LocalAuthenticator.create_system_users = True
c.Authenticator.delete_invalid_users = True

#Jlab on Jhub
c.Spawner.default_url = '/lab'

#IP and Port
c.JupyterHub.ip = '172.18.0.4'
c.JupyterHub.port = 8090

EOF
# jupyterhub
[root@master ~]# docker ps -a
CONTAINER ID   IMAGE                          COMMAND                  CREATED       STATUS       PORTS                 NAMES
130e4b317886   slurm-docker-cluster:19.05.1   "/usr/local/bin/dock…"   2 hours ago   Up 2 hours   6818/tcp              c2
33ef554f03ab   slurm-docker-cluster:19.05.1   "/usr/local/bin/dock…"   2 hours ago   Up 2 hours   6818/tcp              c1
93c3dfa12544   slurm-docker-cluster:19.05.1   "/usr/local/bin/dock…"   2 hours ago   Up 2 hours   6817/tcp, 8090/tcp    slurmctld
b598d6a52304   slurm-docker-cluster:19.05.1   "/usr/local/bin/dock…"   2 hours ago   Up 2 hours   6819/tcp              slurmdbd
aaad68e269c4   mysql:5.7                      "docker-entrypoint.s…"   2 hours ago   Up 2 hours   3306/tcp, 33060/tcp   mysql

here, jupyterhub is running but i have not able to access the jupyterhub container from my phycial machine ipaddress:port like https://192.168.1.195:8090. and i am not getting how to expose port for external access.

once we can resolve this issue, we can able to trace the our actual problem (unable to view jobs on Slurm Queue Manager).
If you have any idea on this try once, hardly it will take an hour to setup.

@zainul1114
Copy link
Author

zainul1114 commented Mar 24, 2021

Hi krinsman,

Today i have tried jupyterlab-slurm setup in new VM, i am able to view the rows related to jobs as below,

image

however, i am not able to view the rows (jobs) once i submit the job, only when i click the reload button on Slurm Queue Manager it is show the rows else its not. how can i make this rows visible without clicking reload button. Please suggest.

Below is the my configuration details with slurm job scheduler 20.11.2 and jupyterlab-slurm 2.0.0

[root@master ~]# jupyter labextension list
JupyterLab v2.2.0
Known labextensions:
   app dir: /usr/local/py36/3_6_9/share/jupyter/lab
        @jupyter-widgets/jupyterlab-manager v2.0.0  enabled  OK
        @jupyterlab/github v2.0.0  enabled  OK
        jupyterlab-control v1.1.1  enabled  OK
        jupyterlab-drawio v0.7.0  enabled  OK
        jupyterlab-lmod v0.8.1  enabled  OK
        jupyterlab-logout v0.5.0  enabled  OK
        jupyterlab-python-file v0.4.0  enabled  OK
        jupyterlab-slurm v2.0.0  enabled  OK
        jupyterlab-topbar-extension v0.5.0  enabled  OK
        luxwidget v0.1.4  enabled  OK
[root@master ~]# jupyter serverextension list
config dir: /usr/local/py36/3_6_9/etc/jupyter
    jupyterlab  enabled
    - Validating...
      jupyterlab 2.2.0 OK
    jupyterlab_github  enabled
    - Validating...
      jupyterlab_github 2.0.0 OK
    jupyterlab_slurm  enabled
    - Validating...
      jupyterlab_slurm 2.0.0 OK
    jupyterlmod  enabled
    - Validating...
      jupyterlmod  OK
    nbresuse  enabled
    - Validating...
      nbresuse  OK
[root@master ~]# python3 -m pip list |grep jupyter
jupyter                           1.0.0
jupyter-client                    6.1.11
jupyter-console                   6.3.0
jupyter-contrib-core              0.3.3
jupyter-contrib-nbextensions      0.5.1
jupyter-core                      4.7.1
jupyter-highlight-selected-word   0.2.0
jupyter-latex-envs                1.4.6
jupyter-nbextensions-configurator 0.4.1
jupyter-server                    1.3.0
jupyter-telemetry                 0.1.0
jupyterhub                        1.1.0
jupyterlab                        2.2.0
jupyterlab-github                 2.0.0
jupyterlab-server                 1.2.0
jupyterlab-slurm                  2.0.0
jupyterlab-widgets                1.0.0
jupyterlmod                       2.0.2
[root@master ~]# npm list -g
/usr/lib
├─┬ configurable-http-proxy@4.3.1
│ ├── commander@7.1.0
│ ├─┬ http-proxy@1.18.1
│ │ ├── eventemitter3@4.0.7
│ │ ├── follow-redirects@1.13.3
│ │ └── requires-port@1.0.0
│ ├─┬ lynx@0.2.0
│ │ ├── mersenne@0.0.4
│ │ └── statsd-parser@0.0.4
│ ├── strftime@0.10.0
│ └─┬ winston@3.3.3
│   ├─┬ @dabh/diagnostics@2.0.2
│   │ ├─┬ colorspace@1.1.2
│   │ │ ├─┬ color@3.0.0
│   │ │ │ ├─┬ color-convert@1.9.3
│   │ │ │ │ └── color-name@1.1.3
│   │ │ │ └─┬ color-string@1.5.5
│   │ │ │   ├── color-name@1.1.3 deduped
│   │ │ │   └─┬ simple-swizzle@0.2.2
│   │ │ │     └── is-arrayish@0.3.2
│   │ │ └── text-hex@1.0.0
│   │ ├── enabled@2.0.0
│   │ └── kuler@2.0.0
│   ├── async@3.2.0
│   ├── is-stream@2.0.0
│   ├─┬ logform@2.2.0
│   │ ├── colors@1.4.0
│   │ ├── fast-safe-stringify@2.0.7
│   │ ├── fecha@4.2.0
│   │ ├── ms@2.1.3
│   │ └── triple-beam@1.3.0 deduped
│   ├─┬ one-time@1.0.0
│   │ └── fn.name@1.1.0
│   ├─┬ readable-stream@3.6.0
│   │ ├── inherits@2.0.4
│   │ ├─┬ string_decoder@1.3.0
│   │ │ └── safe-buffer@5.2.1
│   │ └── util-deprecate@1.0.2
│   ├── stack-trace@0.0.10
│   ├── triple-beam@1.3.0
│   └─┬ winston-transport@4.4.0
│     ├─┬ readable-stream@2.3.7
│     │ ├── core-util-is@1.0.2
│     │ ├── inherits@2.0.4 deduped
│     │ ├── isarray@1.0.0
│     │ ├── process-nextick-args@2.0.1
│     │ ├── safe-buffer@5.1.2
│     │ ├─┬ string_decoder@1.1.1
│     │ │ └── safe-buffer@5.1.2 deduped
│     │ └── util-deprecate@1.0.2 deduped
│     └── triple-beam@1.3.0 deduped
└─┬ npm@6.14.11
  ├── abbrev@1.1.1
  ├── ansicolors@0.3.2
  ├── ansistyles@0.1.3
  ├── aproba@2.0.0
  ├── archy@1.0.0
  ├─┬ bin-links@1.1.8
  │ ├── bluebird@3.5.5 deduped
  │ ├── cmd-shim@3.0.3 deduped
  │ ├── gentle-fs@2.3.1 deduped
  │ ├── graceful-fs@4.2.4 deduped
  │ ├── npm-normalize-package-bin@1.0.1
  │ └── write-file-atomic@2.4.3 deduped
  ├── bluebird@3.5.5
  ├── byte-size@5.0.1
  ├─┬ cacache@12.0.3
  │ ├── bluebird@3.5.5 deduped
  │ ├── chownr@1.1.4 deduped
  │ ├── figgy-pudding@3.5.1 deduped
  │ ├── glob@7.1.6 deduped
  │ ├── graceful-fs@4.2.4 deduped
  │ ├── infer-owner@1.0.4 deduped
  │ ├── lru-cache@5.1.1 deduped
  │ ├── mississippi@3.0.0 deduped
  │ ├── mkdirp@0.5.5 deduped
  │ ├── move-concurrently@1.0.1 deduped
  │ ├── promise-inflight@1.0.1 deduped
  │ ├── rimraf@2.7.1 deduped
  │ ├── ssri@6.0.1 deduped
  │ ├── unique-filename@1.1.1 deduped
  │ └── y18n@4.0.0
  ├── call-limit@1.1.1
  ├── chownr@1.1.4
  ├── ci-info@2.0.0
  ├─┬ cli-columns@3.1.2
  │ ├─┬ string-width@2.1.1
  │ │ ├── is-fullwidth-code-point@2.0.0
  │ │ └─┬ strip-ansi@4.0.0
  │ │   └── ansi-regex@3.0.0
  │ └─┬ strip-ansi@3.0.1
  │   └── ansi-regex@2.1.1
  ├─┬ cli-table3@0.5.1
  │ ├── colors@1.3.3
  │ ├── object-assign@4.1.1
  │ └── string-width@2.1.1 deduped
  ├─┬ cmd-shim@3.0.3
  │ ├── graceful-fs@4.2.4 deduped
  │ └── mkdirp@0.5.5 deduped
  ├─┬ columnify@1.5.4
  │ ├── strip-ansi@3.0.1 deduped
  │ └─┬ wcwidth@1.0.1
  │   └─┬ defaults@1.0.3
  │     └── clone@1.0.4
  ├─┬ config-chain@1.1.12
  │ ├── ini@1.3.8 deduped
  │ └── proto-list@1.2.4
  ├── debuglog@1.0.1
  ├── detect-indent@5.0.0
  ├── detect-newline@2.1.0
  ├─┬ dezalgo@1.0.3
  │ ├── asap@2.0.6
  │ └── wrappy@1.0.2
  ├── editor@1.0.0
  ├── figgy-pudding@3.5.1
  ├── find-npm-prefix@1.0.2
  ├─┬ fs-vacuum@1.2.10
  │ ├── graceful-fs@4.2.4 deduped
  │ ├── path-is-inside@1.0.2 deduped
  │ └── rimraf@2.7.1 deduped
  ├─┬ fs-write-stream-atomic@1.0.10
  │ ├── graceful-fs@4.2.4 deduped
  │ ├── iferr@0.1.5
  │ ├── imurmurhash@0.1.4 deduped
  │ └─┬ readable-stream@2.3.6
  │   ├── core-util-is@1.0.2
  │   ├── inherits@2.0.4 deduped
  │   ├── isarray@1.0.0
  │   ├── process-nextick-args@2.0.0
  │   ├── safe-buffer@5.1.2 deduped
  │   ├─┬ string_decoder@1.1.1
  │   │ └── safe-buffer@5.1.2 deduped
  │   └── util-deprecate@1.0.2 deduped
  ├─┬ gentle-fs@2.3.1
  │ ├── aproba@1.2.0
  │ ├── chownr@1.1.4 deduped
  │ ├── cmd-shim@3.0.3 deduped
  │ ├── fs-vacuum@1.2.10 deduped
  │ ├── graceful-fs@4.2.4 deduped
  │ ├── iferr@0.1.5
  │ ├── infer-owner@1.0.4 deduped
  │ ├── mkdirp@0.5.5 deduped
  │ ├── path-is-inside@1.0.2 deduped
  │ ├── read-cmd-shim@1.0.5 deduped
  │ └── slide@1.1.6 deduped
  ├─┬ glob@7.1.6
  │ ├── fs.realpath@1.0.0
  │ ├── inflight@1.0.6 deduped
  │ ├── inherits@2.0.4 deduped
  │ ├─┬ minimatch@3.0.4
  │ │ └─┬ brace-expansion@1.1.11
  │ │   ├── balanced-match@1.0.0
  │ │   └── concat-map@0.0.1
  │ ├── once@1.4.0 deduped
  │ └── path-is-absolute@1.0.1
  ├── graceful-fs@4.2.4
  ├── has-unicode@2.0.1
  ├── hosted-git-info@2.8.8
  ├── iferr@1.0.2
  ├── imurmurhash@0.1.4
  ├── infer-owner@1.0.4
  ├─┬ inflight@1.0.6
  │ ├── once@1.4.0 deduped
  │ └── wrappy@1.0.2 deduped
  ├── inherits@2.0.4
  ├── ini@1.3.8
  ├─┬ init-package-json@1.10.3
  │ ├── glob@7.1.6 deduped
  │ ├── npm-package-arg@6.1.1 deduped
  │ ├─┬ promzard@0.3.0
  │ │ └── read@1.0.7 deduped
  │ ├── read@1.0.7 deduped
  │ ├── read-package-json@2.1.1 deduped
  │ ├── semver@5.7.1 deduped
  │ ├── validate-npm-package-license@3.0.4 deduped
  │ └── validate-npm-package-name@3.0.0 deduped
  ├─┬ is-cidr@3.0.0
  │ └─┬ cidr-regex@2.0.10
  │   └── ip-regex@2.1.0
  ├── json-parse-better-errors@1.0.2
  ├─┬ JSONStream@1.3.5
  │ ├── jsonparse@1.3.1
  │ └── through@2.3.8
  ├── lazy-property@1.0.0
  ├─┬ libcipm@4.0.8
  │ ├── bin-links@1.1.8 deduped
  │ ├── bluebird@3.5.5 deduped
  │ ├── figgy-pudding@3.5.1 deduped
  │ ├── find-npm-prefix@1.0.2 deduped
  │ ├── graceful-fs@4.2.4 deduped
  │ ├── ini@1.3.8 deduped
  │ ├── lock-verify@2.1.0 deduped
  │ ├── mkdirp@0.5.5 deduped
  │ ├── npm-lifecycle@3.1.5 deduped
  │ ├── npm-logical-tree@1.2.1
  │ ├── npm-package-arg@6.1.1 deduped
  │ ├── pacote@9.5.12 deduped
  │ ├── read-package-json@2.1.1 deduped
  │ ├── rimraf@2.7.1 deduped
  │ └── worker-farm@1.7.0 deduped
  ├─┬ libnpm@3.0.1
  │ ├── bin-links@1.1.8 deduped
  │ ├── bluebird@3.5.5 deduped
  │ ├── find-npm-prefix@1.0.2 deduped
  │ ├── libnpmaccess@3.0.2 deduped
  │ ├─┬ libnpmconfig@1.2.1
  │ │ ├── figgy-pudding@3.5.1 deduped
  │ │ ├─┬ find-up@3.0.0
  │ │ │ └─┬ locate-path@3.0.0
  │ │ │   ├─┬ p-locate@3.0.0
  │ │ │   │ └─┬ p-limit@2.2.0
  │ │ │   │   └── p-try@2.2.0
  │ │ │   └── path-exists@3.0.0
  │ │ └── ini@1.3.8 deduped
  │ ├── libnpmhook@5.0.3 deduped
  │ ├── libnpmorg@1.0.1 deduped
  │ ├─┬ libnpmpublish@1.1.2
  │ │ ├── aproba@2.0.0 deduped
  │ │ ├── figgy-pudding@3.5.1 deduped
  │ │ ├── get-stream@4.1.0 deduped
  │ │ ├── lodash.clonedeep@4.5.0 deduped
  │ │ ├── normalize-package-data@2.5.0 deduped
  │ │ ├── npm-package-arg@6.1.1 deduped
  │ │ ├── npm-registry-fetch@4.0.7 deduped
  │ │ ├── semver@5.7.1 deduped
  │ │ └── ssri@6.0.1 deduped
  │ ├── libnpmsearch@2.0.2 deduped
  │ ├── libnpmteam@1.0.2 deduped
  │ ├── lock-verify@2.1.0 deduped
  │ ├── npm-lifecycle@3.1.5 deduped
  │ ├── npm-logical-tree@1.2.1 deduped
  │ ├── npm-package-arg@6.1.1 deduped
  │ ├── npm-profile@4.0.4 deduped
  │ ├── npm-registry-fetch@4.0.7 deduped
  │ ├── npmlog@4.1.2 deduped
  │ ├── pacote@9.5.12 deduped
  │ ├── read-package-json@2.1.1 deduped
  │ └── stringify-package@1.0.1 deduped
  ├─┬ libnpmaccess@3.0.2
  │ ├── aproba@2.0.0 deduped
  │ ├─┬ get-stream@4.1.0
  │ │ └── pump@3.0.0 deduped
  │ ├── npm-package-arg@6.1.1 deduped
  │ └── npm-registry-fetch@4.0.7 deduped
  ├─┬ libnpmhook@5.0.3
  │ ├── aproba@2.0.0 deduped
  │ ├── figgy-pudding@3.5.1 deduped
  │ ├── get-stream@4.1.0 deduped
  │ └── npm-registry-fetch@4.0.7 deduped
  ├─┬ libnpmorg@1.0.1
  │ ├── aproba@2.0.0 deduped
  │ ├── figgy-pudding@3.5.1 deduped
  │ ├── get-stream@4.1.0 deduped
  │ └── npm-registry-fetch@4.0.7 deduped
  ├─┬ libnpmsearch@2.0.2
  │ ├── figgy-pudding@3.5.1 deduped
  │ ├── get-stream@4.1.0 deduped
  │ └── npm-registry-fetch@4.0.7 deduped
  ├─┬ libnpmteam@1.0.2
  │ ├── aproba@2.0.0 deduped
  │ ├── figgy-pudding@3.5.1 deduped
  │ ├── get-stream@4.1.0 deduped
  │ └── npm-registry-fetch@4.0.7 deduped
  ├─┬ libnpx@10.2.4
  │ ├── dotenv@5.0.1
  │ ├── npm-package-arg@6.1.1 deduped
  │ ├── rimraf@2.7.1 deduped
  │ ├── safe-buffer@5.1.2 deduped
  │ ├── update-notifier@2.5.0 deduped
  │ ├── which@1.3.1 deduped
  │ ├── y18n@4.0.0 deduped
  │ └─┬ yargs@14.2.3
  │   ├─┬ cliui@5.0.0
  │   │ ├─┬ string-width@3.1.0
  │   │ │ ├── emoji-regex@7.0.3 deduped
  │   │ │ ├── is-fullwidth-code-point@2.0.0
  │   │ │ └── strip-ansi@5.2.0 deduped
  │   │ ├─┬ strip-ansi@5.2.0
  │   │ │ └── ansi-regex@4.1.0
  │   │ └─┬ wrap-ansi@5.1.0
  │   │   ├── ansi-styles@3.2.1 deduped
  │   │   ├─┬ string-width@3.1.0
  │   │   │ ├── emoji-regex@7.0.3 deduped
  │   │   │ ├── is-fullwidth-code-point@2.0.0
  │   │   │ └── strip-ansi@5.2.0 deduped
  │   │   └─┬ strip-ansi@5.2.0
  │   │     └── ansi-regex@4.1.0
  │   ├── decamelize@1.2.0
  │   ├─┬ find-up@3.0.0
  │   │ └─┬ locate-path@3.0.0
  │   │   ├─┬ p-locate@3.0.0
  │   │   │ └─┬ p-limit@2.3.0
  │   │   │   └── p-try@2.2.0
  │   │   └── path-exists@3.0.0 deduped
  │   ├── get-caller-file@2.0.5
  │   ├── require-directory@2.1.1
  │   ├── require-main-filename@2.0.0
  │   ├── set-blocking@2.0.0 deduped
  │   ├─┬ string-width@3.1.0
  │   │ ├── emoji-regex@7.0.3
  │   │ ├── is-fullwidth-code-point@2.0.0
  │   │ └─┬ strip-ansi@5.2.0
  │   │   └── ansi-regex@4.1.0
  │   ├── which-module@2.0.0
  │   ├── y18n@4.0.0 deduped
  │   └─┬ yargs-parser@15.0.1
  │     ├── camelcase@5.3.1
  │     └── decamelize@1.2.0 deduped
  ├─┬ lock-verify@2.1.0
  │ ├── npm-package-arg@6.1.1 deduped
  │ └── semver@5.7.1 deduped
  ├─┬ lockfile@1.0.4
  │ └── signal-exit@3.0.2
  ├── lodash._baseindexof@3.1.0
  ├─┬ lodash._baseuniq@4.6.0
  │ ├── lodash._createset@4.0.3
  │ └── lodash._root@3.0.1
  ├── lodash._bindcallback@3.0.1
  ├── lodash._cacheindexof@3.0.2
  ├─┬ lodash._createcache@3.1.2
  │ └── lodash._getnative@3.9.1 deduped
  ├── lodash._getnative@3.9.1
  ├── lodash.clonedeep@4.5.0
  ├── lodash.restparam@3.6.1
  ├── lodash.union@4.6.0
  ├── lodash.uniq@4.5.0
  ├── lodash.without@4.4.0
  ├─┬ lru-cache@5.1.1
  │ └── yallist@3.0.3
  ├── meant@1.0.2
  ├─┬ mississippi@3.0.0
  │ ├─┬ concat-stream@1.6.2
  │ │ ├── buffer-from@1.0.0
  │ │ ├── inherits@2.0.4 deduped
  │ │ ├─┬ readable-stream@2.3.6
  │ │ │ ├── core-util-is@1.0.2 deduped
  │ │ │ ├── inherits@2.0.4 deduped
  │ │ │ ├── isarray@1.0.0 deduped
  │ │ │ ├── process-nextick-args@2.0.0 deduped
  │ │ │ ├── safe-buffer@5.1.2 deduped
  │ │ │ ├─┬ string_decoder@1.1.1
  │ │ │ │ └── safe-buffer@5.1.2 deduped
  │ │ │ └── util-deprecate@1.0.2 deduped
  │ │ └── typedarray@0.0.6
  │ ├─┬ duplexify@3.6.0
  │ │ ├── end-of-stream@1.4.1 deduped
  │ │ ├── inherits@2.0.4 deduped
  │ │ ├─┬ readable-stream@2.3.6
  │ │ │ ├── core-util-is@1.0.2 deduped
  │ │ │ ├── inherits@2.0.4 deduped
  │ │ │ ├── isarray@1.0.0 deduped
  │ │ │ ├── process-nextick-args@2.0.0 deduped
  │ │ │ ├── safe-buffer@5.1.2 deduped
  │ │ │ ├─┬ string_decoder@1.1.1
  │ │ │ │ └── safe-buffer@5.1.2 deduped
  │ │ │ └── util-deprecate@1.0.2 deduped
  │ │ └── stream-shift@1.0.0
  │ ├─┬ end-of-stream@1.4.1
  │ │ └── once@1.4.0 deduped
  │ ├─┬ flush-write-stream@1.0.3
  │ │ ├── inherits@2.0.4 deduped
  │ │ └─┬ readable-stream@2.3.6
  │ │   ├── core-util-is@1.0.2 deduped
  │ │   ├── inherits@2.0.4 deduped
  │ │   ├── isarray@1.0.0 deduped
  │ │   ├── process-nextick-args@2.0.0 deduped
  │ │   ├── safe-buffer@5.1.2 deduped
  │ │   ├─┬ string_decoder@1.1.1
  │ │   │ └── safe-buffer@5.1.2 deduped
  │ │   └── util-deprecate@1.0.2 deduped
  │ ├─┬ from2@2.3.0
  │ │ ├── inherits@2.0.4 deduped
  │ │ └─┬ readable-stream@2.3.6
  │ │   ├── core-util-is@1.0.2 deduped
  │ │   ├── inherits@2.0.4 deduped
  │ │   ├── isarray@1.0.0 deduped
  │ │   ├── process-nextick-args@2.0.0 deduped
  │ │   ├── safe-buffer@5.1.2 deduped
  │ │   ├─┬ string_decoder@1.1.1
  │ │   │ └── safe-buffer@5.1.2 deduped
  │ │   └── util-deprecate@1.0.2 deduped
  │ ├─┬ parallel-transform@1.1.0
  │ │ ├── cyclist@0.2.2
  │ │ ├── inherits@2.0.4 deduped
  │ │ └─┬ readable-stream@2.3.6
  │ │   ├── core-util-is@1.0.2 deduped
  │ │   ├── inherits@2.0.4 deduped
  │ │   ├── isarray@1.0.0 deduped
  │ │   ├── process-nextick-args@2.0.0 deduped
  │ │   ├── safe-buffer@5.1.2 deduped
  │ │   ├─┬ string_decoder@1.1.1
  │ │   │ └── safe-buffer@5.1.2 deduped
  │ │   └── util-deprecate@1.0.2 deduped
  │ ├─┬ pump@3.0.0
  │ │ ├── end-of-stream@1.4.1 deduped
  │ │ └── once@1.4.0 deduped
  │ ├─┬ pumpify@1.5.1
  │ │ ├── duplexify@3.6.0 deduped
  │ │ ├── inherits@2.0.4 deduped
  │ │ └─┬ pump@2.0.1
  │ │   ├── end-of-stream@1.4.1 deduped
  │ │   └── once@1.4.0 deduped
  │ ├─┬ stream-each@1.2.2
  │ │ ├── end-of-stream@1.4.1 deduped
  │ │ └── stream-shift@1.0.0 deduped
  │ └─┬ through2@2.0.3
  │   ├─┬ readable-stream@2.3.6
  │   │ ├── core-util-is@1.0.2 deduped
  │   │ ├── inherits@2.0.4 deduped
  │   │ ├── isarray@1.0.0 deduped
  │   │ ├── process-nextick-args@2.0.0 deduped
  │   │ ├── safe-buffer@5.1.2 deduped
  │   │ ├─┬ string_decoder@1.1.1
  │   │ │ └── safe-buffer@5.1.2 deduped
  │   │ └── util-deprecate@1.0.2 deduped
  │   └── xtend@4.0.1
  ├─┬ mkdirp@0.5.5
  │ └── minimist@1.2.5
  ├─┬ move-concurrently@1.0.1
  │ ├── aproba@1.2.0
  │ ├─┬ copy-concurrently@1.0.5
  │ │ ├── aproba@1.2.0
  │ │ ├── fs-write-stream-atomic@1.0.10 deduped
  │ │ ├── iferr@0.1.5
  │ │ ├── mkdirp@0.5.5 deduped
  │ │ ├── rimraf@2.7.1 deduped
  │ │ └── run-queue@1.0.3 deduped
  │ ├── fs-write-stream-atomic@1.0.10 deduped
  │ ├── mkdirp@0.5.5 deduped
  │ ├── rimraf@2.7.1 deduped
  │ └─┬ run-queue@1.0.3
  │   └── aproba@1.2.0
  ├─┬ node-gyp@5.1.0
  │ ├── env-paths@2.2.0
  │ ├── glob@7.1.6 deduped
  │ ├── graceful-fs@4.2.4 deduped
  │ ├── mkdirp@0.5.5 deduped
  │ ├── nopt@4.0.3 deduped
  │ ├── npmlog@4.1.2 deduped
  │ ├── request@2.88.0 deduped
  │ ├── rimraf@2.7.1 deduped
  │ ├── semver@5.7.1 deduped
  │ ├── tar@4.4.13 deduped
  │ └── which@1.3.1 deduped
  ├─┬ nopt@4.0.3
  │ ├── abbrev@1.1.1 deduped
  │ └── osenv@0.1.5 deduped
  ├─┬ normalize-package-data@2.5.0
  │ ├── hosted-git-info@2.8.8 deduped
  │ ├─┬ resolve@1.10.0
  │ │ └── path-parse@1.0.6
  │ ├── semver@5.7.1 deduped
  │ └── validate-npm-package-license@3.0.4 deduped
  ├─┬ npm-audit-report@1.3.3
  │ ├── cli-table3@0.5.1 deduped
  │ └── console-control-strings@1.1.0
  ├── npm-cache-filename@1.0.2
  ├─┬ npm-install-checks@3.0.2
  │ └── semver@5.7.1 deduped
  ├─┬ npm-lifecycle@3.1.5
  │ ├── byline@5.0.0
  │ ├── graceful-fs@4.2.4 deduped
  │ ├── node-gyp@5.1.0 deduped
  │ ├── resolve-from@4.0.0
  │ ├── slide@1.1.6 deduped
  │ ├── uid-number@0.0.6 deduped
  │ ├── umask@1.1.0 deduped
  │ └── which@1.3.1 deduped
  ├─┬ npm-package-arg@6.1.1
  │ ├── hosted-git-info@2.8.8 deduped
  │ ├── osenv@0.1.5 deduped
  │ ├── semver@5.7.1 deduped
  │ └── validate-npm-package-name@3.0.0 deduped
  ├─┬ npm-packlist@1.4.8
  │ ├─┬ ignore-walk@3.0.3
  │ │ └── minimatch@3.0.4 deduped
  │ ├─┬ npm-bundled@1.1.1
  │ │ └── npm-normalize-package-bin@1.0.1 deduped
  │ └── npm-normalize-package-bin@1.0.1 deduped
  ├─┬ npm-pick-manifest@3.0.2
  │ ├── figgy-pudding@3.5.1 deduped
  │ ├── npm-package-arg@6.1.1 deduped
  │ └── semver@5.7.1 deduped
  ├─┬ npm-profile@4.0.4
  │ ├── aproba@2.0.0 deduped
  │ ├── figgy-pudding@3.5.1 deduped
  │ └── npm-registry-fetch@4.0.7 deduped
  ├─┬ npm-registry-fetch@4.0.7
  │ ├── bluebird@3.5.5 deduped
  │ ├── figgy-pudding@3.5.1 deduped
  │ ├── JSONStream@1.3.5 deduped
  │ ├── lru-cache@5.1.1 deduped
  │ ├─┬ make-fetch-happen@5.0.2
  │ │ ├─┬ agentkeepalive@3.5.2
  │ │ │ └─┬ humanize-ms@1.2.1
  │ │ │   └── ms@2.1.1
  │ │ ├── cacache@12.0.3 deduped
  │ │ ├── http-cache-semantics@3.8.1
  │ │ ├─┬ http-proxy-agent@2.1.0
  │ │ │ ├─┬ agent-base@4.3.0
  │ │ │ │ └─┬ es6-promisify@5.0.0
  │ │ │ │   └── es6-promise@4.2.8
  │ │ │ └─┬ debug@3.1.0
  │ │ │   └── ms@2.0.0
  │ │ ├─┬ https-proxy-agent@2.2.4
  │ │ │ ├── agent-base@4.3.0 deduped
  │ │ │ └── debug@3.1.0 deduped
  │ │ ├── lru-cache@5.1.1 deduped
  │ │ ├── mississippi@3.0.0 deduped
  │ │ ├─┬ node-fetch-npm@2.0.2
  │ │ │ ├─┬ encoding@0.1.12
  │ │ │ │ └─┬ iconv-lite@0.4.23
  │ │ │ │   └── safer-buffer@2.1.2 deduped
  │ │ │ ├── json-parse-better-errors@1.0.2 deduped
  │ │ │ └── safe-buffer@5.1.2 deduped
  │ │ ├── promise-retry@1.1.1 deduped
  │ │ ├─┬ socks-proxy-agent@4.0.2
  │ │ │ ├─┬ agent-base@4.2.1
  │ │ │ │ └── es6-promisify@5.0.0 deduped
  │ │ │ └─┬ socks@2.3.3
  │ │ │   ├── ip@1.1.5
  │ │ │   └── smart-buffer@4.1.0
  │ │ └── ssri@6.0.1 deduped
  │ ├── npm-package-arg@6.1.1 deduped
  │ └── safe-buffer@5.2.1
  ├── npm-user-validate@1.0.1
  ├─┬ npmlog@4.1.2
  │ ├─┬ are-we-there-yet@1.1.4
  │ │ ├── delegates@1.0.0
  │ │ └─┬ readable-stream@2.3.6
  │ │   ├── core-util-is@1.0.2 deduped
  │ │   ├── inherits@2.0.4 deduped
  │ │   ├── isarray@1.0.0 deduped
  │ │   ├── process-nextick-args@2.0.0 deduped
  │ │   ├── safe-buffer@5.1.2 deduped
  │ │   ├─┬ string_decoder@1.1.1
  │ │   │ └── safe-buffer@5.1.2 deduped
  │ │   └── util-deprecate@1.0.2 deduped
  │ ├── console-control-strings@1.1.0 deduped
  │ ├─┬ gauge@2.7.4
  │ │ ├── aproba@1.2.0
  │ │ ├── console-control-strings@1.1.0 deduped
  │ │ ├── has-unicode@2.0.1 deduped
  │ │ ├── object-assign@4.1.1 deduped
  │ │ ├── signal-exit@3.0.2 deduped
  │ │ ├─┬ string-width@1.0.2
  │ │ │ ├── code-point-at@1.1.0
  │ │ │ ├─┬ is-fullwidth-code-point@1.0.0
  │ │ │ │ └── number-is-nan@1.0.1
  │ │ │ └── strip-ansi@3.0.1 deduped
  │ │ ├── strip-ansi@3.0.1 deduped
  │ │ └─┬ wide-align@1.1.2
  │ │   └─┬ string-width@1.0.2
  │ │     ├── code-point-at@1.1.0 deduped
  │ │     ├── is-fullwidth-code-point@1.0.0 deduped
  │ │     └── strip-ansi@3.0.1 deduped
  │ └── set-blocking@2.0.0
  ├─┬ once@1.4.0
  │ └── wrappy@1.0.2 deduped
  ├── opener@1.5.2
  ├─┬ osenv@0.1.5
  │ ├── os-homedir@1.0.2
  │ └── os-tmpdir@1.0.2
  ├─┬ pacote@9.5.12
  │ ├── bluebird@3.5.5 deduped
  │ ├── cacache@12.0.3 deduped
  │ ├── chownr@1.1.4 deduped
  │ ├── figgy-pudding@3.5.1 deduped
  │ ├── get-stream@4.1.0 deduped
  │ ├── glob@7.1.6 deduped
  │ ├── infer-owner@1.0.4 deduped
  │ ├── lru-cache@5.1.1 deduped
  │ ├── make-fetch-happen@5.0.2 deduped
  │ ├── minimatch@3.0.4 deduped
  │ ├─┬ minipass@2.9.0
  │ │ ├── safe-buffer@5.1.2 deduped
  │ │ └── yallist@3.0.3 deduped
  │ ├── mississippi@3.0.0 deduped
  │ ├── mkdirp@0.5.5 deduped
  │ ├── normalize-package-data@2.5.0 deduped
  │ ├── npm-normalize-package-bin@1.0.1 deduped
  │ ├── npm-package-arg@6.1.1 deduped
  │ ├── npm-packlist@1.4.8 deduped
  │ ├── npm-pick-manifest@3.0.2 deduped
  │ ├── npm-registry-fetch@4.0.7 deduped
  │ ├── osenv@0.1.5 deduped
  │ ├── promise-inflight@1.0.1 deduped
  │ ├─┬ promise-retry@1.1.1
  │ │ ├── err-code@1.1.2
  │ │ └── retry@0.10.1
  │ ├─┬ protoduck@5.0.1
  │ │ └── genfun@5.0.0
  │ ├── rimraf@2.7.1 deduped
  │ ├── safe-buffer@5.1.2 deduped
  │ ├── semver@5.7.1 deduped
  │ ├── ssri@6.0.1 deduped
  │ ├── tar@4.4.13 deduped
  │ ├── unique-filename@1.1.1 deduped
  │ └── which@1.3.1 deduped
  ├── path-is-inside@1.0.2
  ├── promise-inflight@1.0.1
  ├── qrcode-terminal@0.12.0
  ├─┬ query-string@6.8.2
  │ ├── decode-uri-component@0.2.0
  │ ├── split-on-first@1.1.0
  │ └── strict-uri-encode@2.0.0
  ├── qw@1.0.1
  ├─┬ read@1.0.7
  │ └── mute-stream@0.0.7
  ├─┬ read-cmd-shim@1.0.5
  │ └── graceful-fs@4.2.4 deduped
  ├─┬ read-installed@4.0.3
  │ ├── debuglog@1.0.1 deduped
  │ ├── graceful-fs@4.2.4 deduped
  │ ├── read-package-json@2.1.1 deduped
  │ ├── readdir-scoped-modules@1.1.0 deduped
  │ ├── semver@5.7.1 deduped
  │ ├── slide@1.1.6 deduped
  │ └── util-extend@1.0.3
  ├─┬ read-package-json@2.1.1
  │ ├── glob@7.1.6 deduped
  │ ├── graceful-fs@4.2.4 deduped
  │ ├── json-parse-better-errors@1.0.2 deduped
  │ ├── normalize-package-data@2.5.0 deduped
  │ └── npm-normalize-package-bin@1.0.1 deduped
  ├─┬ read-package-tree@5.3.1
  │ ├── read-package-json@2.1.1 deduped
  │ ├── readdir-scoped-modules@1.1.0 deduped
  │ └─┬ util-promisify@2.1.0
  │   └─┬ object.getownpropertydescriptors@2.0.3
  │     ├─┬ define-properties@1.1.3
  │     │ └── object-keys@1.0.12
  │     └─┬ es-abstract@1.12.0
  │       ├─┬ es-to-primitive@1.2.0
  │       │ ├── is-callable@1.1.4 deduped
  │       │ ├── is-date-object@1.0.1
  │       │ └─┬ is-symbol@1.0.2
  │       │   └── has-symbols@1.0.0
  │       ├── function-bind@1.1.1
  │       ├─┬ has@1.0.3
  │       │ └── function-bind@1.1.1 deduped
  │       ├── is-callable@1.1.4
  │       └─┬ is-regex@1.0.4
  │         └── has@1.0.3 deduped
  ├─┬ readable-stream@3.6.0
  │ ├── inherits@2.0.4 deduped
  │ ├─┬ string_decoder@1.3.0
  │ │ └── safe-buffer@5.2.0
  │ └── util-deprecate@1.0.2
  ├─┬ readdir-scoped-modules@1.1.0
  │ ├── debuglog@1.0.1 deduped
  │ ├── dezalgo@1.0.3 deduped
  │ ├── graceful-fs@4.2.4 deduped
  │ └── once@1.4.0 deduped
  ├─┬ request@2.88.0
  │ ├── aws-sign2@0.7.0
  │ ├── aws4@1.8.0
  │ ├── caseless@0.12.0
  │ ├─┬ combined-stream@1.0.6
  │ │ └── delayed-stream@1.0.0
  │ ├── extend@3.0.2
  │ ├── forever-agent@0.6.1
  │ ├─┬ form-data@2.3.2
  │ │ ├── asynckit@0.4.0
  │ │ ├── combined-stream@1.0.6 deduped
  │ │ └── mime-types@2.1.19 deduped
  │ ├─┬ har-validator@5.1.5
  │ │ ├─┬ ajv@6.12.6
  │ │ │ ├── fast-deep-equal@3.1.3
  │ │ │ ├── fast-json-stable-stringify@2.0.0
  │ │ │ ├── json-schema-traverse@0.4.1
  │ │ │ └─┬ uri-js@4.4.0
  │ │ │   └── punycode@2.1.1
  │ │ └── har-schema@2.0.0
  │ ├─┬ http-signature@1.2.0
  │ │ ├── assert-plus@1.0.0
  │ │ ├─┬ jsprim@1.4.1
  │ │ │ ├── assert-plus@1.0.0 deduped
  │ │ │ ├── extsprintf@1.3.0
  │ │ │ ├── json-schema@0.2.3
  │ │ │ └─┬ verror@1.10.0
  │ │ │   ├── assert-plus@1.0.0 deduped
  │ │ │   ├── core-util-is@1.0.2 deduped
  │ │ │   └── extsprintf@1.3.0 deduped
  │ │ └─┬ sshpk@1.14.2
  │ │   ├─┬ asn1@0.2.4
  │ │   │ └── safer-buffer@2.1.2 deduped
  │ │   ├── assert-plus@1.0.0 deduped
  │ │   ├─┬ bcrypt-pbkdf@1.0.2
  │ │   │ └── tweetnacl@0.14.5 deduped
  │ │   ├─┬ dashdash@1.14.1
  │ │   │ └── assert-plus@1.0.0 deduped
  │ │   ├─┬ ecc-jsbn@0.1.2
  │ │   │ ├── jsbn@0.1.1 deduped
  │ │   │ └── safer-buffer@2.1.2 deduped
  │ │   ├─┬ getpass@0.1.7
  │ │   │ └── assert-plus@1.0.0 deduped
  │ │   ├── jsbn@0.1.1
  │ │   ├── safer-buffer@2.1.2
  │ │   └── tweetnacl@0.14.5
  │ ├── is-typedarray@1.0.0
  │ ├── isstream@0.1.2
  │ ├── json-stringify-safe@5.0.1
  │ ├─┬ mime-types@2.1.19
  │ │ └── mime-db@1.35.0
  │ ├── oauth-sign@0.9.0
  │ ├── performance-now@2.1.0
  │ ├── qs@6.5.2
  │ ├── safe-buffer@5.1.2 deduped
  │ ├─┬ tough-cookie@2.4.3
  │ │ ├── psl@1.1.29
  │ │ └── punycode@1.4.1
  │ ├─┬ tunnel-agent@0.6.0
  │ │ └── safe-buffer@5.1.2 deduped
  │ └── uuid@3.3.3 deduped
  ├── retry@0.12.0
  ├─┬ rimraf@2.7.1
  │ └── glob@7.1.6 deduped
  ├── safe-buffer@5.1.2
  ├── semver@5.7.1
  ├─┬ sha@3.0.0
  │ └── graceful-fs@4.2.4 deduped
  ├── slide@1.1.6
  ├── sorted-object@2.0.1
  ├─┬ sorted-union-stream@2.1.3
  │ ├─┬ from2@1.3.0
  │ │ ├── inherits@2.0.4 deduped
  │ │ └─┬ readable-stream@1.1.14
  │ │   ├── core-util-is@1.0.2 deduped
  │ │   ├── inherits@2.0.4 deduped
  │ │   ├── isarray@0.0.1
  │ │   └── string_decoder@0.10.31
  │ └─┬ stream-iterate@1.2.0
  │   ├─┬ readable-stream@2.3.6
  │   │ ├── core-util-is@1.0.2 deduped
  │   │ ├── inherits@2.0.4 deduped
  │   │ ├── isarray@1.0.0 deduped
  │   │ ├── process-nextick-args@2.0.0 deduped
  │   │ ├── safe-buffer@5.1.2 deduped
  │   │ ├─┬ string_decoder@1.1.1
  │   │ │ └── safe-buffer@5.1.2 deduped
  │   │ └── util-deprecate@1.0.2 deduped
  │   └── stream-shift@1.0.0 deduped
  ├─┬ ssri@6.0.1
  │ └── figgy-pudding@3.5.1 deduped
  ├── stringify-package@1.0.1
  ├─┬ tar@4.4.13
  │ ├── chownr@1.1.4 deduped
  │ ├─┬ fs-minipass@1.2.7
  │ │ └─┬ minipass@2.9.0
  │ │   ├── safe-buffer@5.1.2 deduped
  │ │   └── yallist@3.0.3 deduped
  │ ├─┬ minipass@2.9.0
  │ │ ├── safe-buffer@5.1.2 deduped
  │ │ └── yallist@3.0.3 deduped
  │ ├─┬ minizlib@1.3.3
  │ │ └─┬ minipass@2.9.0
  │ │   ├── safe-buffer@5.1.2 deduped
  │ │   └── yallist@3.0.3 deduped
  │ ├── mkdirp@0.5.5 deduped
  │ ├── safe-buffer@5.1.2 deduped
  │ └── yallist@3.0.3 deduped
  ├── text-table@0.2.0
  ├── tiny-relative-date@1.3.0
  ├── uid-number@0.0.6
  ├── umask@1.1.0
  ├─┬ unique-filename@1.1.1
  │ └─┬ unique-slug@2.0.0
  │   └── imurmurhash@0.1.4 deduped
  ├── unpipe@1.0.0
  ├─┬ update-notifier@2.5.0
  │ ├─┬ boxen@1.3.0
  │ │ ├─┬ ansi-align@2.0.0
  │ │ │ └── string-width@2.1.1 deduped
  │ │ ├── camelcase@4.1.0
  │ │ ├── chalk@2.4.1 deduped
  │ │ ├── cli-boxes@1.0.0
  │ │ ├── string-width@2.1.1 deduped
  │ │ ├─┬ term-size@1.2.0
  │ │ │ └─┬ execa@0.7.0
  │ │ │   ├─┬ cross-spawn@5.1.0
  │ │ │   │ ├─┬ lru-cache@4.1.5
  │ │ │   │ │ ├── pseudomap@1.0.2
  │ │ │   │ │ └── yallist@2.1.2
  │ │ │   │ ├─┬ shebang-command@1.2.0
  │ │ │   │ │ └── shebang-regex@1.0.0
  │ │ │   │ └── which@1.3.1 deduped
  │ │ │   ├── get-stream@3.0.0
  │ │ │   ├── is-stream@1.1.0
  │ │ │   ├─┬ npm-run-path@2.0.2
  │ │ │   │ └── path-key@2.0.1
  │ │ │   ├── p-finally@1.0.0
  │ │ │   ├── signal-exit@3.0.2 deduped
  │ │ │   └── strip-eof@1.0.0
  │ │ └─┬ widest-line@2.0.1
  │ │   └── string-width@2.1.1 deduped
  │ ├─┬ chalk@2.4.1
  │ │ ├─┬ ansi-styles@3.2.1
  │ │ │ └─┬ color-convert@1.9.1
  │ │ │   └── color-name@1.1.3
  │ │ ├── escape-string-regexp@1.0.5
  │ │ └─┬ supports-color@5.4.0
  │ │   └── has-flag@3.0.0
  │ ├─┬ configstore@3.1.5
  │ │ ├─┬ dot-prop@4.2.1
  │ │ │ └── is-obj@1.0.1
  │ │ ├── graceful-fs@4.2.4 deduped
  │ │ ├─┬ make-dir@1.3.0
  │ │ │ └── pify@3.0.0
  │ │ ├─┬ unique-string@1.0.0
  │ │ │ └── crypto-random-string@1.0.0
  │ │ ├── write-file-atomic@2.4.3 deduped
  │ │ └── xdg-basedir@3.0.0 deduped
  │ ├── import-lazy@2.1.0
  │ ├─┬ is-ci@1.2.1
  │ │ └── ci-info@1.6.0
  │ ├─┬ is-installed-globally@0.1.0
  │ │ ├─┬ global-dirs@0.1.1
  │ │ │ └── ini@1.3.8 deduped
  │ │ └─┬ is-path-inside@1.0.1
  │ │   └── path-is-inside@1.0.2 deduped
  │ ├── is-npm@1.0.0
  │ ├─┬ latest-version@3.1.0
  │ │ └─┬ package-json@4.0.1
  │ │   ├─┬ got@6.7.1
  │ │   │ ├─┬ create-error-class@3.0.2
  │ │   │ │ └── capture-stack-trace@1.0.0
  │ │   │ ├── duplexer3@0.1.4
  │ │   │ ├── get-stream@3.0.0
  │ │   │ ├── is-redirect@1.0.0
  │ │   │ ├── is-retry-allowed@1.2.0
  │ │   │ ├── is-stream@1.1.0 deduped
  │ │   │ ├── lowercase-keys@1.0.1
  │ │   │ ├── safe-buffer@5.1.2 deduped
  │ │   │ ├── timed-out@4.0.1
  │ │   │ ├── unzip-response@2.0.1
  │ │   │ └─┬ url-parse-lax@1.0.0
  │ │   │   └── prepend-http@1.0.4
  │ │   ├─┬ registry-auth-token@3.4.0
  │ │   │ ├─┬ rc@1.2.8
  │ │   │ │ ├── deep-extend@0.6.0
  │ │   │ │ ├── ini@1.3.8 deduped
  │ │   │ │ ├── minimist@1.2.5
  │ │   │ │ └── strip-json-comments@2.0.1
  │ │   │ └── safe-buffer@5.1.2 deduped
  │ │   ├─┬ registry-url@3.1.0
  │ │   │ └── rc@1.2.8 deduped
  │ │   └── semver@5.7.1 deduped
  │ ├─┬ semver-diff@2.1.0
  │ │ └── semver@5.7.1 deduped
  │ └── xdg-basedir@3.0.0
  ├── uuid@3.3.3
  ├─┬ validate-npm-package-license@3.0.4
  │ ├─┬ spdx-correct@3.0.0
  │ │ ├── spdx-expression-parse@3.0.0 deduped
  │ │ └── spdx-license-ids@3.0.5
  │ └─┬ spdx-expression-parse@3.0.0
  │   ├── spdx-exceptions@2.1.0
  │   └── spdx-license-ids@3.0.5 deduped
  ├─┬ validate-npm-package-name@3.0.0
  │ └── builtins@1.0.3
  ├─┬ which@1.3.1
  │ └── isexe@2.0.0
  ├─┬ worker-farm@1.7.0
  │ └─┬ errno@0.1.7
  │   └── prr@1.0.1
  └─┬ write-file-atomic@2.4.3
    ├── graceful-fs@4.2.4 deduped
    ├── imurmurhash@0.1.4 deduped
    └── signal-exit@3.0.2 deduped

[root@master ~]#

Does it show all the jobs which ever in sacct or only squeue jobs ...Please help me on this.

and i have tested other scnarios like holding and release job buttons are not working as expected. Eventhough when i hold job it is still running.

image

only KILL jobs button is woking as expected

image

@krinsman
Copy link
Collaborator

@zainul1114 Sorry I haven't had the cycles to look into this over the past two weekends

Regarding your specific question, are you asking how to view newly submitted jobs without pressing the reload button?

I.e. you submit a job, and then it doesn't immediately appear in the table? And you would like to know what to do to have it appear in the table?

By default, the frontend waits 60 seconds/1 minute to send a request to the backend to update the table:

https://github.com/NERSC/jupyterlab-slurm/blob/d975711a3aa80cee095d2907ddc454573c6c1904/docs/contents/configuration.rst#configuration

Have you submitted a new job and timed it with a stopwatch to confirm the new job does not appear after 60 seconds or more?

If it does appear, but only slowly/after 60 seconds then you could try changing the configuration to update the table more frequently by default.

If I recall correctly, basically the idea was to avoid potentially "spamming" the Slurm system by calling squeue repeatedly too often. I think some systems might lock out a system/process that calls squeue too often?

I don't remember whether there was any development towards somehow automatically reloading/sending a new squeue request every time a new job is submitted. You're right that could be a good usability feature.

Anyway if the jobs do show up after 60 seconds (without pressing the reload button yourself) then maybe we should close this issue so you can make a feature request to automatically send an squeue request after submitting a job successfully?

I'm not sure how that might be done though.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants