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

Manually test the upgrade to z2jh 4 on a few hubs #5211

Open
23 of 27 tasks
GeorgianaElena opened this issue Nov 29, 2024 · 6 comments
Open
23 of 27 tasks

Manually test the upgrade to z2jh 4 on a few hubs #5211

GeorgianaElena opened this issue Nov 29, 2024 · 6 comments

Comments

@GeorgianaElena
Copy link
Member

GeorgianaElena commented Nov 29, 2024

Checkout the changes in the PR generated by #5210 and manually deploy them to:

  • 2i2c-staging hub, a hub that uses CILogon with Google
  • 2i2c dask-staging hub, a daskhub
  • 2i2c imagebuilding-demo, an image building hub with auth and a hub that uses GitHubOAuthenticator directly
  • opensci small-binder, an image building hub without auth
  • earthscope-staging, a hub that uses CILogon with GitHub already have jmte staging for this test case
  • jupyter-health staging not needed as we're not removing its experiment image
  • jmte staging - has shared-public and existing named servers
  • openscapes-staging, a hub that uses an user image with JupyterHub 4
  • leap-staging - has existing named servers
  • utoronto-staging - for nbgitpuller
  • opensci climaterisk - shared password hub
  • do one more check with a user image running jupyterhub3. The one I did was on a binderhub

Then manually test:

  • Authentication
  • Server spawn
  • Home directory names are preserved
  • The configurator still works
  • Executing a notebook works
  • Starting RStudio works
  • Dask works
  • Profile lists
  • Named servers, particularly ones with weird chars in their names (starting with capitals, etc)
  • Existing named servers of people to see if it starts (I suggest looking at the admins on LEAP)
  • Check shared, shared-readwrite and shared_public, making sure admins can write to shared-readwrite and others can only read from shared
  • Bringing your own docker image works
  • Shared password hub
  • deployer health checks, both for regular hubs and binderhub deploys (I think you've already tested these)
  • nbgitpuller links work (I recommend testing this on utoronto hubs)

Definition of Done

The hubs mentioned have been passing all manual tests while using z2jh v4 chart

@yuvipanda
Copy link
Member

  • Test named servers, particularly ones with weird chars in their names (starting with capitals, etc)
  • Test existing named servers of people to see if it starts (I suggest looking at the admins on LEAP)
  • Check shared, shared-readwrite and shared_public, making sure admins can write to shared-readwrite and others can only read from shared
  • Bringing your own docker image works
  • Shared password hub
  • deployer health checks, both for regular hubs and binderhub deploys (I think you've already tested these)
  • nbgitpuller links work (I recommend testing this on utoronto hubs)

@GeorgianaElena
Copy link
Member Author

Named servers, particularly ones with weird chars in their names (starting with capitals, etc)

I tried different kind of odd names and the only one that didn't work, were ., /, # (404 error), any name starting with %(400 error)

Image

Test existing named servers of people to see if it starts (I suggest looking at the admins on LEAP)

Found one test on the jtme stating from @yuvipanda and started that instead and it worked.

@GeorgianaElena
Copy link
Member Author

Tested on the imagebuilding hub the following:

  • starting an image running jupyterhub-singleuser version 4.1.5 ✅ ok
  • starting one having jupyterhub single-user server version 3.1.1 ❌ failed

@GeorgianaElena
Copy link
Member Author

We will need to get the changes in the boostrap5 branch into the custom branches of https://github.com/2i2c-org/default-hub-homepage that the hubs use (i.e. openscapes)

@GeorgianaElena
Copy link
Member Author

GeorgianaElena commented Dec 20, 2024

Getting the following errors when trying to execute a notebook on the openscapes staging hub

error1
[W 2024-12-20 18:41:51.143 ServerApp] notebook_shim | error linking extension: [Errno 13] Permission denied: '/home/jovyan/.local/share/jupyter'
    Traceback (most recent call last):
      File "/srv/conda/envs/notebook/lib/python3.10/site-packages/traitlets/traitlets.py", line 632, in get
        value = obj._trait_values[self.name]
    KeyError: 'data_dir'
    
    During handling of the above exception, another exception occurred:
    
    Traceback (most recent call last):
      File "/srv/conda/envs/notebook/lib/python3.10/site-packages/jupyter_server/extension/manager.py", line 345, in link_extension
        extension.link_all_points(self.serverapp)
      File "/srv/conda/envs/notebook/lib/python3.10/site-packages/jupyter_server/extension/manager.py", line 227, in link_all_points
        self.link_point(point_name, serverapp)
      File "/srv/conda/envs/notebook/lib/python3.10/site-packages/jupyter_server/extension/manager.py", line 217, in link_point
        point.link(serverapp)
      File "/srv/conda/envs/notebook/lib/python3.10/site-packages/jupyter_server/extension/manager.py", line 139, in link
        linker(serverapp)
      File "/srv/conda/envs/notebook/lib/python3.10/site-packages/notebook_shim/nbserver.py", line 109, in _link_jupyter_server_extension
        members = diff_members(serverapp, nbapp)
      File "/srv/conda/envs/notebook/lib/python3.10/site-packages/notebook_shim/nbserver.py", line 62, in diff_members
        m1 = public_members(obj1)
      File "/srv/conda/envs/notebook/lib/python3.10/site-packages/notebook_shim/nbserver.py", line 56, in public_members
        members = inspect.getmembers(obj)
      File "/srv/conda/envs/notebook/lib/python3.10/inspect.py", line 469, in getmembers
        value = getattr(object, key)
      File "/srv/conda/envs/notebook/lib/python3.10/site-packages/traitlets/traitlets.py", line 687, in __get__
        return t.cast(G, self.get(obj, cls))  # the G should encode the Optional
      File "/srv/conda/envs/notebook/lib/python3.10/site-packages/traitlets/traitlets.py", line 635, in get
        default = obj.trait_defaults(self.name)
      File "/srv/conda/envs/notebook/lib/python3.10/site-packages/traitlets/traitlets.py", line 1897, in trait_defaults
        return t.cast(Sentinel, self._get_trait_default_generator(names[0])(self))
      File "/srv/conda/envs/notebook/lib/python3.10/site-packages/jupyter_core/application.py", line 104, in _data_dir_default
        ensure_dir_exists(d, mode=0o700)
      File "/srv/conda/envs/notebook/lib/python3.10/site-packages/jupyter_core/utils/__init__.py", line 26, in ensure_dir_exists
        Path(path).mkdir(parents=True, mode=mode)
      File "/srv/conda/envs/notebook/lib/python3.10/pathlib.py", line 1175, in mkdir
        self._accessor.mkdir(self, mode)
    PermissionError: [Errno 13] Permission denied: '/home/jovyan/.local/share/jupyter'
[I 2024-12-20 18:41:51.145 ServerApp] panel.io.jupyter_server_extension | extension was successfully linked.
/srv/conda/envs/notebook/lib/python3.10/site-packages/jupyter_server/serverapp.py:2235: JupyterServerAuthWarning: Core endpoints without @allow_unauthenticated, @ws_authenticated, nor @web.authenticated:
- GET of JupyterHubLogoutHandler registered for /user/georgianaelena/logout
- GET of JupyterHubOAuthCallbackHandler registered for /user/georgianaelena/oauth_callback
  self.web_app = ServerWebApplication(
[I 2024-12-20 18:41:51.182 ServerApp] notebook_shim | extension was successfully loaded.

and

error2
[W 2024-12-20 18:41:51.143 ServerApp] notebook_shim | error linking extension: [Errno 13] Permission denied: '/home/jovyan/.local/share/jupyter'
    Traceback (most recent call last):
      File "/srv/conda/envs/notebook/lib/python3.10/site-packages/traitlets/traitlets.py", line 632, in get
        value = obj._trait_values[self.name]
    KeyError: 'data_dir'
    
    During handling of the above exception, another exception occurred:
    
    Traceback (most recent call last):
      File "/srv/conda/envs/notebook/lib/python3.10/site-packages/jupyter_server/extension/manager.py", line 345, in link_extension
        extension.link_all_points(self.serverapp)
      File "/srv/conda/envs/notebook/lib/python3.10/site-packages/jupyter_server/extension/manager.py", line 227, in link_all_points
        self.link_point(point_name, serverapp)
      File "/srv/conda/envs/notebook/lib/python3.10/site-packages/jupyter_server/extension/manager.py", line 217, in link_point
        point.link(serverapp)
      File "/srv/conda/envs/notebook/lib/python3.10/site-packages/jupyter_server/extension/manager.py", line 139, in link
        linker(serverapp)
      File "/srv/conda/envs/notebook/lib/python3.10/site-packages/notebook_shim/nbserver.py", line 109, in _link_jupyter_server_extension
        members = diff_members(serverapp, nbapp)
      File "/srv/conda/envs/notebook/lib/python3.10/site-packages/notebook_shim/nbserver.py", line 62, in diff_members
        m1 = public_members(obj1)
      File "/srv/conda/envs/notebook/lib/python3.10/site-packages/notebook_shim/nbserver.py", line 56, in public_members
        members = inspect.getmembers(obj)
      File "/srv/conda/envs/notebook/lib/python3.10/inspect.py", line 469, in getmembers
        value = getattr(object, key)
      File "/srv/conda/envs/notebook/lib/python3.10/site-packages/traitlets/traitlets.py", line 687, in __get__
        return t.cast(G, self.get(obj, cls))  # the G should encode the Optional
      File "/srv/conda/envs/notebook/lib/python3.10/site-packages/traitlets/traitlets.py", line 635, in get
        default = obj.trait_defaults(self.name)
      File "/srv/conda/envs/notebook/lib/python3.10/site-packages/traitlets/traitlets.py", line 1897, in trait_defaults
        return t.cast(Sentinel, self._get_trait_default_generator(names[0])(self))
      File "/srv/conda/envs/notebook/lib/python3.10/site-packages/jupyter_core/application.py", line 104, in _data_dir_default
        ensure_dir_exists(d, mode=0o700)
      File "/srv/conda/envs/notebook/lib/python3.10/site-packages/jupyter_core/utils/__init__.py", line 26, in ensure_dir_exists
        Path(path).mkdir(parents=True, mode=mode)
      File "/srv/conda/envs/notebook/lib/python3.10/pathlib.py", line 1175, in mkdir
        self._accessor.mkdir(self, mode)
    PermissionError: [Errno 13] Permission denied: '/home/jovyan/.local/share/jupyter'
[I 2024-12-20 18:41:51.145 ServerApp] panel.io.jupyter_server_extension | extension was successfully linked.
/srv/conda/envs/notebook/lib/python3.10/site-packages/jupyter_server/serverapp.py:2235: JupyterServerAuthWarning: Core endpoints without @allow_unauthenticated, @ws_authenticated, nor @web.authenticated:
- GET of JupyterHubLogoutHandler registered for /user/georgianaelena/logout
- GET of JupyterHubOAuthCallbackHandler registered for /user/georgianaelena/oauth_callback
  self.web_app = ServerWebApplication(
[I 2024-12-20 18:41:51.182 ServerApp] notebook_shim | extension was successfully loaded.

UPDATE:

I see the same behaviour on the original openscapes staging deployment too

@GeorgianaElena
Copy link
Member Author

I've updated the top comment with the remaining tests that we should do before considering upgrading.

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