From bfa59bdcea3518146e41f12d2c897e198db07c6f Mon Sep 17 00:00:00 2001 From: pako Date: Mon, 1 Apr 2024 14:20:25 +0200 Subject: [PATCH 1/2] release_lock --- db/routines/vn/procedures/collection_assign.sql | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/db/routines/vn/procedures/collection_assign.sql b/db/routines/vn/procedures/collection_assign.sql index 6d31fbc8f7..70c48bc384 100644 --- a/db/routines/vn/procedures/collection_assign.sql +++ b/db/routines/vn/procedures/collection_assign.sql @@ -1,8 +1,8 @@ -DELIMITER $$ +DELIMITER $$ CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`collection_assign`( vUserFk INT, OUT vCollectionFk INT -) +) proc:BEGIN /** * Comprueba si existen colecciones libres que se ajustan @@ -15,6 +15,15 @@ proc:BEGIN DECLARE vHasTooMuchCollections BOOL; DECLARE vLockTime INT DEFAULT 15; + DECLARE EXIT HANDLER FOR SQLEXCEPTION + BEGIN + IF 'collection_assign' IS NOT NULL THEN + DO RELEASE_LOCK('collection_assign'); + END IF; + + RESIGNAL; + END; + -- Si hay colecciones sin terminar, sale del proceso CALL collection_get(vUserFk); @@ -84,5 +93,5 @@ proc:BEGIN WHERE id = vCollectionFk; DO RELEASE_LOCK('collection_assign'); -END$$ -DELIMITER ; +END$$ +DELIMITER ; From cb745b0f4d146e38866b7a91cb45b08e81a9aa55 Mon Sep 17 00:00:00 2001 From: pako Date: Mon, 1 Apr 2024 14:21:34 +0200 Subject: [PATCH 2/2] release_lock --- db/routines/vn/procedures/collection_assign.sql | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/db/routines/vn/procedures/collection_assign.sql b/db/routines/vn/procedures/collection_assign.sql index 70c48bc384..49b4eb7bb4 100644 --- a/db/routines/vn/procedures/collection_assign.sql +++ b/db/routines/vn/procedures/collection_assign.sql @@ -17,10 +17,8 @@ proc:BEGIN DECLARE EXIT HANDLER FOR SQLEXCEPTION BEGIN - IF 'collection_assign' IS NOT NULL THEN - DO RELEASE_LOCK('collection_assign'); - END IF; - + DO RELEASE_LOCK('collection_assign'); + RESIGNAL; END;