Skip to content

Outstanding issues

Hans Permana edited this page Aug 24, 2017 · 8 revisions

There are still some issues to be resolved before the platform can be fully operational:

NFS mounting - SOLVED

Background: each spawned user notebook container requires a mount to a space that is shared across different host machines so that when the next time this is spawned (possibly in a different machine), the old data can be restored.

Problem: the private space has been made available to each VM through NFS server without the no_root_squash attribute. As a result, mounting a directory owned by root to this space is not possible.

What have been tried:

  • Mount /var/lib/docker/volumes to the shared space. Failed with error message Error starting daemon: chown /var/lib/docker/volumes: operation not permitted. Changing the ownership of the private space is also not possible with operation not permittederror. mount --bind has also been tried with resulting error message Error starting daemon: chown /var/lib/docker/volumes: operation not permitted.
  • Proxy the NFS mounting by creating an NFS Server with Docker. This is done based on this project. It was thought that the permission can somehow be reconfigured by launching a new NFS server, which means full access to the exports configuration /etc/exports. Unfortunately, the same problem remains, permission denied.
  • Mount shared space to the notebook container and create a user with the same uid and gid as the owner of this shared space. It works if the parent directory is mounted, but it doesn't with a message Permission denied, access denied by server while mounting <nfs directory>. Also, it does not solve the centralisation of user directory issue.

Solved: changing the permission of parent directory from 750 to 755 allows the mounting of child directories.

Change the user inside the NB

Background: each user that has successfully logged in will be 'given' a workspace for storing any resulting or meta-processing information.

Problem: the user that is created by default in the notebook workspace is called jovyan, which is non-representative to the project. This needs to be changed to esdc.

What have been tried:

  • jupyterhub/singleuser, which is the base image of cablab/singleuser-python, has a new base image called jupyter/base-notebook that allows an injection of NB user, NB UID, and NB GID through environment variable set in jupyterhub_config.py. An attempt has been made to rebuild cablab/singleuser-python so that it uses this new base image, but it failed because gridtools library clashes with python 3.6.
  • created a new version of gridtools which uses python 3.6. The new image uses jupyter/base-notebook as a base image. Unfortunately the custom user has not worked yet, encountered usermod: Failed to change ownership of the home directory when a new UID is specified. An issue has been logged here

Timeout configuration is ignored

Background: there is a c.SwarmSpawner.start_timeout (and possibly c.SwarmSpawner.http_timeout) property in jupyterhub_config.py that is supposed to control how long the server should wait during the spawning of notebook containers, as stated here

Problem: no matter what values are used, the server always times-out after 10 seconds.

What have been tried:

  • checked this file but could not find any indications that the values set in the config file is used.
  • an issue has been reported

Deployment documentation - SOLVED

The following tasks need to be added on the Wiki:

  • Architecture
  • Deployment instruction

Repository tidy-up

  • move the spawner and authenticator into the repository and make them submodules