mirror of
https://github.com/jupyterhub/jupyterhub.git
synced 2025-10-13 04:53:01 +00:00
fix possible loss of port info due to mixed db sessions
This commit is contained in:
@@ -123,7 +123,7 @@ class Server(Base):
|
|||||||
if e.errno == errno.ECONNREFUSED:
|
if e.errno == errno.ECONNREFUSED:
|
||||||
return False
|
return False
|
||||||
else:
|
else:
|
||||||
raise
|
raise
|
||||||
else:
|
else:
|
||||||
return True
|
return True
|
||||||
elif e.errno == errno.ECONNREFUSED:
|
elif e.errno == errno.ECONNREFUSED:
|
||||||
|
@@ -85,6 +85,7 @@ class User(HasTraits):
|
|||||||
if self.orm_user:
|
if self.orm_user:
|
||||||
id = self.orm_user.id
|
id = self.orm_user.id
|
||||||
self.orm_user = new.query(orm.User).filter(orm.User.id==id).first()
|
self.orm_user = new.query(orm.User).filter(orm.User.id==id).first()
|
||||||
|
self.spawner.db = self.db
|
||||||
|
|
||||||
orm_user = None
|
orm_user = None
|
||||||
spawner = None
|
spawner = None
|
||||||
@@ -177,6 +178,8 @@ class User(HasTraits):
|
|||||||
# wait for spawner.start to return
|
# wait for spawner.start to return
|
||||||
try:
|
try:
|
||||||
f = spawner.start()
|
f = spawner.start()
|
||||||
|
# commit any changes in spawner.start (always commit db changes before yield)
|
||||||
|
db.commit()
|
||||||
yield gen.with_timeout(timedelta(seconds=spawner.start_timeout), f)
|
yield gen.with_timeout(timedelta(seconds=spawner.start_timeout), f)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
if isinstance(e, gen.TimeoutError):
|
if isinstance(e, gen.TimeoutError):
|
||||||
|
Reference in New Issue
Block a user