ref: try 3 times before giving up on new session

main
rrr-marble 5 years ago
parent a846ef6647
commit 20278eeee7

@ -16,7 +16,9 @@ cur = con.cursor() # NB! single is enough for now, we might require multiple la
async def new_session(): async def new_session():
"""Start a new session""" """Start a new session"""
# add session to the database # add session to the database
try: tries = 3 # something is very wrong with our random, if we miss 3 times
for i in range(tries):
try:
# generate a cookie # generate a cookie
cookie = uuid4().hex cookie = uuid4().hex
cur.execute( cur.execute(
@ -27,8 +29,13 @@ async def new_session():
) )
con.commit() con.commit()
except sqlite3.IntegrityError as e: except sqlite3.IntegrityError as e:
if str(e) == "UNIQUE constraint failed: sessions.cookie": if i < tries - 1 and str(e) == "UNIQUE constraint failed: sessions.cookie":
continue
else if str(e) == "UNIQUE constraint failed: sessions.cookie":
return {"cookie": "error"} return {"cookie": "error"}
else:
raise
break
# return new session cookie # return new session cookie
return {"cookie": cookie} return {"cookie": cookie}

Loading…
Cancel
Save