jupyterhub / jupyterhub/tmpauthenticator

tmpauthenticator seems broken on debian 12

Open
#63 1 comment 0 reactions 0 assignees View on GitHub
bug
Dominant language
Python
Stars
24
Forks
18
Avg merge
1h 56m
Merged PRs (30d)
1

Description

### 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

- OS:

debian 12 bookworm
- Version(s):

team@ds002:/srv/jupyterhub$ jupyterhub --version
5.0.0
team@ds002:/srv/jupyterhub$ python3 --version
Python 3.9.13
team@ds002:/srv/jupyterhub$ node --version
v20.14.0

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

```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.