Jupyter notebook 'Connect to Jupyter' button not rendering


#1

We have successfully established interactive desktop applications and connected via xfce. We are now trying to use the Jupyter plugin to try launch a Jupyter notebook session.

I have set it up as a dev app in my home directory and it appears as an interactive app as expected. I can launch the application and if the before script template has the following c.NotebookApp.ip = ‘*’ line a permission denied error. If it is changed to c.NotebookApp.ip = ‘0.0.0.0’ the output of the job is as follows:

 Script starting...
 Waiting for Jupyter Notebook server to open port 35203...
TIMING - Starting wait at: Thu Feb 28 08:07:06 EST 2019
TIMING - Starting main script at: Thu Feb 28 08:07:06 EST 2019

Currently Loaded Modules:
  1) gcc/5.1.0   2) python/3.5.0

TIMING - Starting jupyter at: Thu Feb 28 08:07:06 EST 2019
+ jupyter notebook --config=/home/user/ondemand/data/sys/dashboard/batch_connect/dev/jupyter/output/7739ca56-2370-43a0-ac58-27bf6ed7ac41/config.py
[I 08:07:08.360 NotebookApp] Serving notebooks from local directory: /home/wattry
[I 08:07:08.360 NotebookApp] The Jupyter Notebook is running at:
[I 08:07:08.360 NotebookApp] http://127.0.0.1:35203/node/test-compute/35203/
[I 08:07:08.360 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
Timed out waiting for Jupyter Notebook server to open port 35203!
TIMING - Wait ended at: Thu Feb 28 08:08:07 EST 2019
[C 08:08:07.365 NotebookApp] received signal 15, stopping
Cleaning up...
[I 08:08:07.383 NotebookApp] Shutting down 0 kernels
/var/spool/slurmd/job00079/slurm_script: line 20: 22452 Terminated              "/home/user/ondemand/data/sys/dashboard/batch_connect/dev/jupyter/output/7739ca56-2370-43a0-ac58-27bf6ed7ac41/script.sh"

The button view is not rendered and we are unable to launch the application. However, if we run this command manually:

jupyter notebook --config=/home/user/ondemand/data/sys/dashboard/batch_connect/dev/jupyter/output/7739ca56-2370-43a0-ac58-27bf6ed7ac41/config.py

We are then able to navigate to the Jupyter Notebook login page using a browser we installed on the compute node. Is there somewhere we should be looking to see why the connect button is not being rendered? I have a feeling it could possibly be a networking issue. How does OOD Dash handle the http request for the Jupyter Notebook session?


#2

We don’t install netcat by default for security

https://listsprd.osu.edu/pipermail/ood-users/2018-October/000269.html

We added this function to our before script to validate the script:

port_used () {
local port="{1#*:}" sleep 2 netstat -nap 2>/dev/null | grep -q "0.0.0.0:{port} "
}