mirror of
https://github.com/jupyterhub/jupyterhub.git
synced 2025-10-17 15:03:02 +00:00
add explicit db rollback
add context manager/decorator for db rollback add db rollback in top level prepare method Co-authored-by: Sarath Babu <sbreached@gmail.com>
This commit is contained in:
@@ -85,6 +85,9 @@ class BaseHandler(RequestHandler):
|
||||
self.expanded_scopes = set()
|
||||
try:
|
||||
await self.get_current_user()
|
||||
except SQLAlchemyError:
|
||||
self.log.exception("Rolling back session due to database error")
|
||||
self.db.rollback()
|
||||
except Exception:
|
||||
self.log.exception("Failed to get current user")
|
||||
self._jupyterhub_user = None
|
||||
@@ -411,7 +414,9 @@ class BaseHandler(RequestHandler):
|
||||
if user and isinstance(user, User):
|
||||
user = await self.refresh_auth(user)
|
||||
self._jupyterhub_user = user
|
||||
except Exception:
|
||||
except Exception as e:
|
||||
if isinstance(e, SQLAlchemyError):
|
||||
raise SQLAlchemyError()
|
||||
# don't let errors here raise more than once
|
||||
self._jupyterhub_user = None
|
||||
self.log.exception("Error getting current user")
|
||||
|
Reference in New Issue
Block a user