forked from 3wordchant/capsul-flask
Limit the utilization of serializable transactions
A user encountered this error when deleting a vm: self.cursor.execute("UPDATE vms SET deleted = now() WHERE email = %s AND id = %s", ( email, id)) psycopg2.errors.SerializationFailure: could not serialize access due to read/write dependencies among transactions
This commit is contained in:
parent
107a5fc659
commit
c623c65fda
@ -13,7 +13,7 @@ class DBModel:
|
|||||||
def __init__(self, connection, cursor):
|
def __init__(self, connection, cursor):
|
||||||
self.connection = connection
|
self.connection = connection
|
||||||
self.cursor = cursor
|
self.cursor = cursor
|
||||||
self.cursor.execute("SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;")
|
|
||||||
|
|
||||||
|
|
||||||
# ------ LOGIN ---------
|
# ------ LOGIN ---------
|
||||||
@ -361,6 +361,7 @@ class DBModel:
|
|||||||
def claim_operation(self, operation_id: int, host_id: str) -> bool:
|
def claim_operation(self, operation_id: int, host_id: str) -> bool:
|
||||||
# have to make a new cursor to set isolation level
|
# have to make a new cursor to set isolation level
|
||||||
# cursor = self.connection.cursor()
|
# cursor = self.connection.cursor()
|
||||||
|
self.cursor.execute("SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;")
|
||||||
self.cursor.execute("""
|
self.cursor.execute("""
|
||||||
BEGIN TRANSACTION;
|
BEGIN TRANSACTION;
|
||||||
UPDATE host_operation SET assignment_status = 'assigned'
|
UPDATE host_operation SET assignment_status = 'assigned'
|
||||||
|
Loading…
Reference in New Issue
Block a user