jupyterhub / tmpauthenticator

JupyterHub authenticator that hands out temporary accounts for everyone. For use in tmpnb.org
BSD 3-Clause "New" or "Revised" License
22 stars 18 forks source link

tmpauthenticator seems broken on debian 12 #63

Open damonbreeden opened 3 months ago

damonbreeden commented 3 months ago

Bug description

After installing on debian 12 tmpauthenticator seems broken I traded tmpauthenticator for dummyauthenticator and jupyterhub works ok with that

How to reproduce

install jupyterhub as described here https://jupyterhub.readthedocs.io/en/stable/tutorial/quickstart.html go to http://:8000 see errors (logs section, below)

Expected behaviour

no errors

Actual behaviour

errors

Your personal set up

Full environment ``` team@ds002:/srv/jupyterhub$ pip freeze alembic==1.13.1 annotated-types==0.7.0 anyio==4.4.0 argon2-cffi==23.1.0 argon2-cffi-bindings==21.2.0 arrow==1.3.0 asttokens==2.4.1 async-generator==1.10 async-lru==2.0.4 attrs==23.2.0 Babel==2.15.0 beautifulsoup4==4.12.3 bleach==6.1.0 certifi==2024.6.2 certipy==0.1.3 cffi==1.16.0 charset-normalizer==3.3.2 comm==0.2.2 cryptography==42.0.8 debugpy==1.8.1 decorator==5.1.1 defusedxml==0.7.1 exceptiongroup==1.2.1 executing==2.0.1 fastjsonschema==2.19.1 fqdn==1.5.1 greenlet==3.0.3 h11==0.14.0 httpcore==1.0.5 httpx==0.27.0 idna==3.7 importlib_metadata==7.1.0 ipykernel==6.29.4 ipython==8.18.1 ipywidgets==8.1.3 isoduration==20.11.0 jedi==0.19.1 Jinja2==3.1.4 json5==0.9.25 jsonpointer==3.0.0 jsonschema==4.22.0 jsonschema-specifications==2023.12.1 jupyter==1.0.0 jupyter-console==6.6.3 jupyter-events==0.10.0 jupyter-lsp==2.2.5 jupyter_client==8.6.2 jupyter_core==5.7.2 jupyter_server==2.14.1 jupyter_server_terminals==0.5.3 jupyterhub==5.0.0 jupyterhub-dummyauthenticator==0.3.1 jupyterhub-simplespawner==0.1 jupyterhub-tmpauthenticator==1.0.0 jupyterlab==4.2.2 jupyterlab_pygments==0.3.0 jupyterlab_server==2.27.2 jupyterlab_widgets==3.0.11 Mako==1.3.5 MarkupSafe==2.1.5 matplotlib-inline==0.1.7 mistune==3.0.2 nbclient==0.10.0 nbconvert==7.16.4 nbformat==5.10.4 nest-asyncio==1.6.0 notebook==7.2.1 notebook_shim==0.2.4 oauthlib==3.2.2 overrides==7.7.0 packaging==24.1 pamela==1.1.0 pandocfilters==1.5.1 parso==0.8.4 pexpect==4.9.0 platformdirs==4.2.2 prometheus_client==0.20.0 prompt_toolkit==3.0.47 psutil==5.9.8 ptyprocess==0.7.0 pure-eval==0.2.2 pycparser==2.22 pydantic==2.7.3 pydantic_core==2.18.4 Pygments==2.18.0 pyOpenSSL==24.1.0 python-dateutil==2.9.0.post0 python-json-logger==2.0.7 PyYAML==6.0.1 pyzmq==26.0.3 qtconsole==5.5.2 QtPy==2.4.1 referencing==0.35.1 requests==2.32.3 rfc3339-validator==0.1.4 rfc3986-validator==0.1.1 rpds-py==0.18.1 Send2Trash==1.8.3 six==1.16.0 sniffio==1.3.1 soupsieve==2.5 SQLAlchemy==2.0.30 stack-data==0.6.3 terminado==0.18.1 tinycss2==1.3.0 tomli==2.0.1 toree==0.5.0 tornado==6.4.1 traitlets==5.14.3 types-python-dateutil==2.9.0.20240316 typing_extensions==4.12.2 uri-template==1.3.0 urllib3==2.2.1 wcwidth==0.2.13 webcolors==24.6.0 webencodings==0.5.1 websocket-client==1.8.0 widgetsnbextension==4.0.11 zipp==3.19.2 team@ds002:/srv/jupyterhub$ ```
Configuration ```python # jupyterhub_config.py team@ds002:/srv/jupyterhub$ grep -v '\(^#\|^[[:space:]]*$\)' /etc/jupyterhub_config.py c.JupyterHub.authenticator_class = 'tmpauthenticator.TmpAuthenticator' c.JupyterHub.spawner_class = 'simplespawner.SimpleLocalProcessSpawner' c.SimpleLocalProcessSpawner.home_path_template = '/home/team' c.JupyterHub.cookie_secret_file = '/srv/jupyterhub/jupyterhub_cookie_secret' c.JupyterHub.db_url = '/srv/jupyterhub/jupyterhub.sqlite' c.JupyterHub.pid_file = '/run/jupyterhub/jupyterhub.pid' c.JupyterHub.bind_url = 'http://:8000' c.Spawner.args = ['--NotebookApp.allow_origin=":8000"'] c.ConfigurableHTTPProxy.api_url = 'http://127.0.0.1:8010' c.ConfigurableHTTPProxy.pid_file = '/run/jupyterhub/jupyterhub-proxy.pid' c.Spawner.cmd=["jupyter-labhub"] team@ds002:/srv/jupyterhub$ ```
Logs ``` team@ds002:/srv/jupyterhub$ /usr/local/bin/jupyterhub -f /etc/jupyterhub_config.py [I 2024-06-14 21:32:56.689 JupyterHub app:3286] Running JupyterHub version 5.0.0 [I 2024-06-14 21:32:56.689 JupyterHub app:3316] Using Authenticator: tmpauthenticator.TmpAuthenticator [I 2024-06-14 21:32:56.689 JupyterHub app:3316] Using Spawner: simplespawner.simplespawner.SimpleLocalProcessSpawner [I 2024-06-14 21:32:56.689 JupyterHub app:3316] Using Proxy: jupyterhub.proxy.ConfigurableHTTPProxy-5.0.0 [I 2024-06-14 21:32:56.692 JupyterHub app:1817] Loading cookie_secret from /srv/jupyterhub/jupyterhub_cookie_secret [I 2024-06-14 21:32:56.766 JupyterHub proxy:556] Generating new CONFIGPROXY_AUTH_TOKEN [W 2024-06-14 21:32:56.771 JupyterHub auth:166] No allow config found, it's possible that nobody can login to your Hub! You can set `c.Authenticator.allow_all = True` to allow any user who can login to access the Hub, or e.g. `allowed_users` to a set of users who should have access. You may suppress this warning by setting c.Authenticator.any_allow_config = True. [I 2024-06-14 21:32:56.806 JupyterHub app:3355] Initialized 0 spawners in 0.008 seconds [I 2024-06-14 21:32:56.810 JupyterHub metrics:371] Found 0 active users in the last ActiveUserPeriods.twenty_four_hours [I 2024-06-14 21:32:56.811 JupyterHub metrics:371] Found 0 active users in the last ActiveUserPeriods.seven_days [I 2024-06-14 21:32:56.811 JupyterHub metrics:371] Found 0 active users in the last ActiveUserPeriods.thirty_days [W 2024-06-14 21:32:56.812 JupyterHub proxy:748] Running JupyterHub without SSL. I hope there is SSL termination happening somewhere else... [I 2024-06-14 21:32:56.812 JupyterHub proxy:752] Starting proxy @ http://:8000 21:32:56.911 [ConfigProxy] info: Proxying http://:8000 to (no default) 21:32:56.913 [ConfigProxy] info: Proxy API at http://127.0.0.1:8010/api/routes 21:32:57.030 [ConfigProxy] info: 200 GET /api/routes [I 2024-06-14 21:32:57.031 JupyterHub app:3669] Hub API listening on http://127.0.0.1:8081/hub/ 21:32:57.032 [ConfigProxy] info: 200 GET /api/routes [I 2024-06-14 21:32:57.032 JupyterHub proxy:477] Adding route for Hub: / => http://127.0.0.1:8081 21:32:57.034 [ConfigProxy] info: Adding route / -> http://127.0.0.1:8081 21:32:57.034 [ConfigProxy] info: Route added / -> http://127.0.0.1:8081 21:32:57.034 [ConfigProxy] info: 201 POST /api/routes/ [I 2024-06-14 21:32:57.034 JupyterHub app:3710] JupyterHub is now running at http://:8000 [I 2024-06-14 21:33:03.073 JupyterHub log:192] 302 GET /hub/ -> /hub/login?next=%2Fhub%2F (@my_ip_address) 9.85ms [I 2024-06-14 21:33:03.418 JupyterHub log:192] 302 GET /hub/login?next=%2Fhub%2F -> /hub/tmplogin?next=%2Fhub%2F (@my_ip_address) 1.55ms [W 2024-06-14 21:33:03.761 JupyterHub auth:705] User '939f3218-8b6e-456c-9417-a78e3eb4280d' not allowed. [W 2024-06-14 21:33:03.761 JupyterHub base:979] Failed login for unknown user [E 2024-06-14 21:33:03.761 JupyterHub web:1875] Uncaught exception GET /hub/tmplogin?next=%2Fhub%2F (my_ip_address) HTTPServerRequest(protocol='http', host=':8000', method='GET', uri='/hub/tmplogin?next=%2Fhub%2F', version='HTTP/1.1', remote_ip='my_ip_address') Traceback (most recent call last): File "/usr/local/lib/python3.9/site-packages/tornado/web.py", line 1790, in _execute result = await result File "/usr/local/lib/python3.9/site-packages/tmpauthenticator/__init__.py", line 52, in get self.set_hub_cookie(user) File "/usr/local/lib/python3.9/site-packages/jupyterhub/handlers/base.py", line 733, in set_hub_cookie self._set_user_cookie(user, self.hub) File "/usr/local/lib/python3.9/site-packages/jupyterhub/handlers/base.py", line 685, in _set_user_cookie self.log.debug("Setting cookie for %s: %s", user.name, server.cookie_name) AttributeError: 'NoneType' object has no attribute 'name' [I 2024-06-14 21:33:03.764 JupyterHub _xsrf_utils:125] Setting new xsrf cookie for b'None:Q-Ci6OTmVNnPw9njIqK7GlrV5yuf5npwN7IBw8Px7mk=' {'path': '/hub/', 'max_age': 3600} [E 2024-06-14 21:33:03.799 JupyterHub log:184] { "X-Forwarded-Host": ":8000", "X-Forwarded-Proto": "http", "X-Forwarded-Port": "8000", "X-Forwarded-For": "my_ip_address", "Cookie": "_xsrf=[secret]; username--9000=[secret]", "Accept-Language": "en-US,en;q=0.9", "Accept-Encoding": "gzip, deflate", "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36", "Upgrade-Insecure-Requests": "1", "Cache-Control": "max-age=0", "Connection": "keep-alive", "Host": ":8000" } [E 2024-06-14 21:33:03.799 JupyterHub log:192] 500 GET /hub/tmplogin?next=%2Fhub%2F (@my_ip_address) 39.12ms ^C[C 2024-06-14 21:33:50.188 JupyterHub app:3801] Received signal SIGINT, initiating shutdown... [I 2024-06-14 21:33:50.188 JupyterHub app:3410] Cleaning up single-user servers... [I 2024-06-14 21:33:50.189 JupyterHub proxy:865] Cleaning up proxy[1643721]... 21:33:50.189 [ConfigProxy] warn: Terminated [I 2024-06-14 21:33:50.190 JupyterHub app:3439] Cleaning up PID file /run/jupyterhub/jupyterhub.pid [I 2024-06-14 21:33:50.190 JupyterHub app:3442] ...done ```
damonbreeden commented 3 months ago

ds002_jupyterhub_logs.txt

idk why, logs section is blank, here are the logs