[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: |
|
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: |