Commit 54e7d8ed authored by Giuseppe Lo Presti's avatar Giuseppe Lo Presti
Browse files

Merge branch 'v2_1_14Version'

Conflicts:
	ReleaseNotes
	castor/db/oracleStager.sql
parents edee271a 58f7c872
......@@ -27,6 +27,32 @@
+ /etc/grid-security/castor-gridftp-dsi/castor-gridftp-dsi-key.pem
---------------
- 2.1.14-14-1 -
---------------
Summary
-------
This is a hot fix release that fixes the following bugs:
CASTOR-3400: Cleaning logic should be more resilient to constraint violation errors
CASTOR-4633: Draining does not use disks optimally
CASTOR-4734: Deadlock in storeReports
CASTOR-4735: Deadlock between dbms_alert and stageRm
CASTOR-4742: deletediskcopy does not take into account 0-size files
Upgrade Instructions from 2.1.14-14
-----------------------------------
Stager
------
The upgrade of the stager database to 2.1.14-14-1 can be performed online while the system is running.
Upgrade the STAGER database using the stager_2.1.14-14_to_2.1.14-14-1.sql script available from:
http://cern.ch/castor/DIST/CERN/savannah/CASTOR.pkg/2.1.14-*/2.1.14-14/dbupgrades.
-------------
- 2.1.14-14 -
-------------
......
......@@ -989,13 +989,6 @@ BEGIN
END;
/
CREATE OR REPLACE TRIGGER tr_SubRequest_informError AFTER UPDATE OF status ON SubRequest
FOR EACH ROW WHEN (new.status = 7) -- SUBREQUEST_FAILED
BEGIN
alertSignalNoLock('wakeUpErrorSvc');
END;
/
CREATE OR REPLACE FUNCTION selectRandomDestinationFs(inSvcClassId IN INTEGER,
inMinFreeSpace IN INTEGER,
inCfId IN INTEGER)
......
......@@ -2567,6 +2567,8 @@ BEGIN
inNumParams(8*i+4), ids_seq.nextval, inStrParams(2*i+2));
END IF;
END IF;
-- commit diskServer by diskServer, otherwise multiple reports may deadlock each other
COMMIT;
END LOOP;
END IF;
......@@ -2899,6 +2901,7 @@ CREATE OR REPLACE PROCEDURE internalDeleteDiskCopies(inForce IN BOOLEAN,
varNbRemaining INTEGER;
varStatus INTEGER;
varLogParams VARCHAR2(2048);
varFileSize INTEGER;
BEGIN
-- gather all remote Nameserver statuses. This could not be
-- incorporated in the INSERT query, because Oracle would give:
......@@ -2927,15 +2930,15 @@ BEGIN
FOR dc IN (SELECT dcId, fileId, fStatus FROM DeleteDiskCopyHelper) LOOP
BEGIN
-- get data and lock
SELECT castorFile, DiskCopy.status INTO varCfId, varStatus
SELECT castorFile, status, diskCopySize INTO varCfId, varStatus, varFileSize
FROM DiskCopy
WHERE DiskCopy.id = dc.dcId;
SELECT nsHost, lastKnownFileName INTO varNsHost, varFileName
FROM CastorFile
WHERE id = varCfId
FOR UPDATE;
varLogParams := 'FileName="' || varFileName || '" dcId='|| dc.dcId ||' status='
|| getObjStatusName('DiskCopy', 'status', varStatus);
varLogParams := 'FileName="'|| varFileName ||'"" fileSize='|| varFileSize
||' dcId='|| dc.dcId ||' status='|| getObjStatusName('DiskCopy', 'status', varStatus);
EXCEPTION WHEN NO_DATA_FOUND THEN
-- diskcopy not found in stager
UPDATE DeleteDiskCopyHelper
......@@ -3010,7 +3013,7 @@ BEGIN
-- similarly to stageRm, check that the deletion is allowed:
-- basically only files on tape may be dropped in case no data loss is provoked,
-- or files already dropped from the namespace. The rest is forbidden.
IF (varStatus = dconst.DISKCOPY_VALID AND (varNbRemaining > 0 OR dc.fStatus = 'm'))
IF (varStatus = dconst.DISKCOPY_VALID AND (varNbRemaining > 0 OR dc.fStatus = 'm' OR varFileSize = 0))
OR dc.fStatus = 'd' THEN
UPDATE DeleteDiskCopyHelper
SET rc = dconst.DELDC_NOOP,
......
This diff is collapsed.
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment