Can't access TLJH via a browser

Hello,

I installed TLJH on Ubuntu Server 22.04 (This should work: [removed bc I can only include 2 links] github[dot]com/jupyterhub/the-littlest-jupyterhub/issues/813) on a local machine - following these instructions:

except I didn’t use Ubuntu 18.04.
This version said to use 18.04 or 20.04: [removed bc I can only include 2 links] The Littlest JupyterHub — The Littlest JupyterHub documentation

And afaik the installation finished.

(Firewall config should be fine, as it is turned off for now. Also on my first try I also installed nextcloud and got to the loginscreen of nextcloud.)

I found this older entry on github: github[dot]com/jupyterhub/the-littlest-jupyterhub/issues/438

$ sudo journalctl -u traefik

Feb 03 14:11:17 jhub systemd[1]: traefik.service: Deactivated successfully.
Feb 03 14:11:17 jhub systemd[1]: Stopped traefik.service.
Feb 03 14:11:17 jhub systemd[1]: Started traefik.service.
Feb 03 14:11:17 jhub traefik[1157]: time=“2023-02-03T14:11:17Z” level=info msg=“Using TOML configuration file /opt/tljh/state/traefik.toml”
Feb 03 14:11:17 jhub traefik[1157]: time=“2023-02-03T14:11:17Z” level=info msg=“Traefik version v1.7.33 built on 2021-10-07_02:55:02PM”
Feb 03 14:11:17 jhub traefik[1157]: time=“2023-02-03T14:11:17Z” level=info msg="\nStats collection is disabled.\nHelp us improve Traefik by turning this feature>
Feb 03 14:11:17 jhub traefik[1157]: time=“2023-02-03T14:11:17Z” level=info msg="Preparing server auth_api &{Address:127.0.0.1:8099 TLS: Redirect: Auth>
Feb 03 14:11:17 jhub traefik[1157]: time=“2023-02-03T14:11:17Z” level=info msg="Preparing server http &{Address::100 TLS: Redirect: Auth: Whiteli>
Feb 03 14:11:17 jhub traefik[1157]: time=“2023-02-03T14:11:17Z” level=info msg=“Starting provider configuration.ProviderAggregator {}”
Feb 03 14:11:17 jhub traefik[1157]: time=“2023-02-03T14:11:17Z” level=info msg="Starting provider *file.Provider {"Watch":true,"Filename":"","Constraints>
Feb 03 14:11:17 jhub traefik[1157]: time=“2023-02-03T14:11:17Z” level=info msg=“Starting server on :100”
Feb 03 14:11:17 jhub traefik[1157]: time=“2023-02-03T14:11:17Z” level=info msg=“Starting server on 127.0.0.1:8099”
Feb 03 14:11:17 jhub traefik[1157]: time=“2023-02-03T14:11:17Z” level=info msg=“Server configuration reloaded on :100”
Feb 03 14:11:17 jhub traefik[1157]: time=“2023-02-03T14:11:17Z” level=info msg=“Server configuration reloaded on 127.0.0.1:8099”

sudo journalctl -u jupyterhub
Feb 03 13:51:17 jhub systemd[1]: jupyterhub.service: Main process exited, code=exited, status=1/FAILURE
Feb 03 13:51:17 jhub systemd[1]: jupyterhub.service: Failed with result ‘exit-code’.
Feb 03 13:51:17 jhub systemd[1]: jupyterhub.service: Scheduled restart job, restart counter is at 4.
Feb 03 13:51:17 jhub systemd[1]: Stopped jupyterhub.service.
Feb 03 13:51:17 jhub systemd[1]: Started jupyterhub.service.
Feb 03 13:51:18 jhub python3[999]: /opt/tljh/hub/lib/python3.10/site-packages/jupyterhub/app.py:2999: DeprecationWarning: There is no current event loop
Feb 03 13:51:18 jhub python3[999]: task = asyncio.ensure_future(self.launch_instance_async(argv))
Feb 03 13:51:18 jhub python3[999]: [I 2023-02-03 13:51:18.261 JupyterHub app:2480] Running JupyterHub version 1.5.1
Feb 03 13:51:18 jhub python3[999]: [I 2023-02-03 13:51:18.261 JupyterHub app:2510] Using Authenticator: firstuseauthenticator.firstuseauthenticator.FirstUseAuth>
Feb 03 13:51:18 jhub python3[999]: [I 2023-02-03 13:51:18.261 JupyterHub app:2510] Using Spawner: traitlets.traitlets.UserCreatingSpawner-5.9.0
Feb 03 13:51:18 jhub python3[999]: [I 2023-02-03 13:51:18.261 JupyterHub app:2510] Using Proxy: jupyterhub_traefik_proxy.toml.TraefikTomlProxy-0+unknown
Feb 03 13:51:18 jhub python3[999]: [I 2023-02-03 13:51:18.264 JupyterHub app:1554] Loading cookie_secret from /opt/tljh/state/jupyterhub_cookie_secret
Feb 03 13:51:18 jhub python3[999]: [I 2023-02-03 13:51:18.294 alembic.runtime.migration migration:205] Context impl SQLiteImpl.
Feb 03 13:51:18 jhub python3[999]: [I 2023-02-03 13:51:18.294 alembic.runtime.migration migration:208] Will assume non-transactional DDL.
Feb 03 13:51:18 jhub python3[999]: [E 2023-02-03 13:51:18.297 JupyterHub app:2991]
Feb 03 13:51:18 jhub python3[999]: Traceback (most recent call last):
Feb 03 13:51:18 jhub python3[999]: File “/opt/tljh/hub/lib/python3.10/site-packages/jupyterhub/app.py”, line 2988, in launch_instance_async
Feb 03 13:51:18 jhub python3[999]: await self.initialize(argv)
Feb 03 13:51:18 jhub python3[999]: File “/opt/tljh/hub/lib/python3.10/site-packages/jupyterhub/app.py”, line 2522, in initialize
Feb 03 13:51:18 jhub python3[999]: self.init_db()
Feb 03 13:51:18 jhub python3[999]: File “/opt/tljh/hub/lib/python3.10/site-packages/jupyterhub/app.py”, line 1726, in init_db
Feb 03 13:51:18 jhub python3[999]: self.session_factory = orm.new_session_factory(
Feb 03 13:51:18 jhub python3[999]: File “/opt/tljh/hub/lib/python3.10/site-packages/jupyterhub/orm.py”, line 880, in new_session_factory
Feb 03 13:51:18 jhub python3[999]: check_db_revision(engine)
Feb 03 13:51:18 jhub python3[999]: File “/opt/tljh/hub/lib/python3.10/site-packages/jupyterhub/orm.py”, line 771, in check_db_revision
Feb 03 13:51:18 jhub python3[999]: current_table_names = set(inspect(engine).get_table_names())
Feb 03 13:51:18 jhub python3[999]: File “/opt/tljh/hub/lib/python3.10/site-packages/sqlalchemy/inspection.py”, line 111, in inspect
Feb 03 13:51:18 jhub python3[999]: ret = reg(subject)
Feb 03 13:51:18 jhub python3[999]: File “/opt/tljh/hub/lib/python3.10/site-packages/sqlalchemy/engine/reflection.py”, line 304, in _engine_insp
Feb 03 13:51:18 jhub python3[999]: return Inspector._construct(Inspector._init_engine, bind)
Feb 03 13:51:18 jhub python3[999]: File “/opt/tljh/hub/lib/python3.10/site-packages/sqlalchemy/engine/reflection.py”, line 237, in _construct
Feb 03 13:51:18 jhub python3[999]: init(self, bind)
Feb 03 13:51:18 jhub python3[999]: File “/opt/tljh/hub/lib/python3.10/site-packages/sqlalchemy/engine/reflection.py”, line 248, in _init_engine
Feb 03 13:51:18 jhub python3[999]: engine.connect().close()
Feb 03 13:51:18 jhub python3[999]: File “/opt/tljh/hub/lib/python3.10/site-packages/sqlalchemy/engine/base.py”, line 3245, in connect
Feb 03 13:51:18 jhub python3[999]: return self._connection_cls(self)
Feb 03 13:51:18 jhub python3[999]: File “/opt/tljh/hub/lib/python3.10/site-packages/sqlalchemy/engine/base.py”, line 174, in init
Feb 03 13:51:18 jhub python3[999]: self.dispatch.engine_connect(self)
Feb 03 13:51:18 jhub python3[999]: File “/opt/tljh/hub/lib/python3.10/site-packages/sqlalchemy/event/attr.py”, line 487, in call
Feb 03 13:51:18 jhub python3[999]: fn(*args, **kw)
Feb 03 13:51:18 jhub python3[999]: File “/opt/tljh/hub/lib/python3.10/site-packages/sqlalchemy/event/legacy.py”, line 100, in wrap_leg
Feb 03 13:51:18 jhub python3[999]: return fn(*conv(*args))
Feb 03 13:51:18 jhub python3[999]: File “/opt/tljh/hub/lib/python3.10/site-packages/jupyterhub/orm.py”, line 737, in ping_connection
Feb 03 13:51:18 jhub python3[999]: connection.scalar(select([1]))
Feb 03 13:51:18 jhub python3[999]: File “/opt/tljh/hub/lib/python3.10/site-packages/sqlalchemy/sql/_selectable_constructors.py”, line 493, in select
Feb 03 13:51:18 jhub python3[999]: return Select(*entities)
Feb 03 13:51:18 jhub python3[999]: File “/opt/tljh/hub/lib/python3.10/site-packages/sqlalchemy/sql/selectable.py”, line 5218, in init
Feb 03 13:51:18 jhub python3[999]: self._raw_columns = [
Feb 03 13:51:18 jhub python3[999]: File “/opt/tljh/hub/lib/python3.10/site-packages/sqlalchemy/sql/selectable.py”, line 5219, in
Feb 03 13:51:18 jhub python3[999]: coercions.expect(
Feb 03 13:51:18 jhub python3[999]: File “/opt/tljh/hub/lib/python3.10/site-packages/sqlalchemy/sql/coercions.py”, line 413, in expect
Feb 03 13:51:18 jhub python3[999]: resolved = impl._literal_coercion(
Feb 03 13:51:18 jhub python3[999]: File “/opt/tljh/hub/lib/python3.10/site-packages/sqlalchemy/sql/coercions.py”, line 652, in _literal_coercion
Feb 03 13:51:18 jhub python3[999]: self._raise_for_expected(element, argname)
Feb 03 13:51:18 jhub python3[999]: File “/opt/tljh/hub/lib/python3.10/site-packages/sqlalchemy/sql/coercions.py”, line 1143, in _raise_for_expected
Feb 03 13:51:18 jhub python3[999]: return super()._raise_for_expected(
Feb 03 13:51:18 jhub python3[999]: File “/opt/tljh/hub/lib/python3.10/site-packages/sqlalchemy/sql/coercions.py”, line 711, in _raise_for_expected
Feb 03 13:51:18 jhub python3[999]: super()._raise_for_expected(
Feb 03 13:51:18 jhub python3[999]: File “/opt/tljh/hub/lib/python3.10/site-packages/sqlalchemy/sql/coercions.py”, line 536, in _raise_for_expected
Feb 03 13:51:18 jhub python3[999]: raise exc.ArgumentError(msg, code=code) from err
Feb 03 13:51:18 jhub python3[999]: sqlalchemy.exc.ArgumentError: Column expression, FROM clause, or other columns clause element expected, got [1]. Did you >
Feb 03 13:51:18 jhub python3[999]:
Feb 03 13:51:18 jhub systemd[1]: jupyterhub.service: Main process exited, code=exited, status=1/FAILURE
Feb 03 13:51:18 jhub systemd[1]: jupyterhub.service: Failed with result ‘exit-code’.
Feb 03 13:51:18 jhub systemd[1]: jupyterhub.service: Scheduled restart job, restart counter is at 5.
Feb 03 13:51:18 jhub systemd[1]: Stopped jupyterhub.service.
Feb 03 13:51:18 jhub systemd[1]: jupyterhub.service: Start request repeated too quickly.
Feb 03 13:51:18 jhub systemd[1]: jupyterhub.service: Failed with result ‘exit-code’.
Feb 03 13:51:18 jhub systemd[1]: Failed to start jupyterhub.service.

Any chance someone could give me some advice?
Does it have to be ubuntu 20.4?

This thread provided the answer:

Do this:

sudo /opt/tljh/hub/bin/pip3 install --upgrade ‘SQLAlchemy<2.0.0’
sudo tljh-config reload hub

Could this be configured in the bootstrap.py so the next person doesn’t have to suffer?

There is already a pull request for this that is awaiting review

2 Likes