[STOR-954] StoRM backend should garbage collect requests that are stuck in SRM_IN_PROGRESS for a configurable amount of time Created: 29/Sep/17  Updated: 20/Feb/18  Due: 29/Oct/17  Resolved: 20/Oct/17

Status: Closed
Project: StoRM
Component/s: backend
Affects Version/s: 1.11.12
Fix Version/s: 1.11.13
Security Level: Public (Visbile by non-authn users.)

Type: Bug Priority: Major
Reporter: Andrea Ceccanti Assignee: Enrico Vianello
Resolution: Fixed Votes: 0
Labels: None
Σ Remaining Estimate: Not Specified Remaining Estimate: Not Specified
Σ Time Spent: Not Specified Time Spent: Not Specified
Σ Original Estimate: Not Specified Original Estimate: Not Specified

Sub-Tasks:
Key
Summary
Type
Status
Assignee
STOR-956 Document new variable Sub-task Closed  

 Description   

An investigation on StoRM databases @ CNAF has shown that there are many (thousands) PtP requests stuck in the IN_PROGRESS state for a long amount of time. StoRM currently lacks a mechanism to gargabe collect this requests, so administrators are forced to do the cleanup "by hand" by accessing the database.

The request GC mechanism should be extended to collect all requests that are stuck IN_PROGRESS for a configurable amount of time.



 Comments   
Comment by Enrico Vianello [ 12/Oct/17 ]

Test script that adds an expired request multisurl:

USE storm_db;

SET @surl1 := "srm://centos6-devel.cnaf.infn.it:8444/test.vo/test00001.dat";
SET @surl2 := "srm://centos6-devel.cnaf.infn.it:8444/test.vo/test00002.dat";
SET @r_token := "fea89716-ae54-11e7-bbec-525400a1c1b9";
SET @timestamp_rq := DATE_SUB(CURRENT_TIMESTAMP(), INTERVAL 2592000 SECOND);

INSERT INTO request_queue (pinLifetime, r_token, status, timeStamp, config_RequestTypeID)
VALUES (10000, @r_token, 18, @timestamp_rq, 'PTP');

SELECT @id_rq := LAST_INSERT_ID();

INSERT INTO request_Put (targetSURL, request_queueID)
VALUES (@surl1, @id_rq);

SELECT @id_rp := LAST_INSERT_ID();

INSERT INTO status_Put (request_PutID, statusCode)
VALUES (@id_rp, 18);

INSERT INTO request_Put (targetSURL, request_queueID)
VALUES (@surl2, @id_rq);

SELECT @id_rp := LAST_INSERT_ID();

INSERT INTO status_Put (request_PutID, statusCode)
VALUES (@id_rp, 18);
Comment by Enrico Vianello [ 11/Oct/17 ]

Pull request:
https://github.com/italiangrid/storm/pull/95

Generated at Thu Apr 17 17:16:26 CEST 2025 using Jira 10.3.4#10030004-sha1:d6812f2d35a143c1c5fc283d2f5a72582f40aaf1.