DPM SRMv2 Status

From GridPP Wiki
Revision as of 12:45, 8 May 2006 by Jiri mencak (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Overview

This page describes status of the DPM's 1.4.5 and 1.5.7 SRMv2 interfaces. Tests were performed by the s2 test client. Please visit s2 homepage at http://s-2.sourceforge.net. README files in s2 'testing/srm2/*' directories and coments within '*.s2' give more information describing the tests.

Basic tests

This section shows a commented output (srm2_basic.log) of running

make test

in the s2 'testing/scripts/srm2/basic' directory.

DPM 1.4.5

srmAbortFiles: KO: SRM_NOT_SUPPORTED 
srmAbortRequest: OK: SRM_FAILURE
srmChangeFileStorageType: KO: SRM_NOT_SUPPORTED 
srmCheckPermission: KO: SRM_SUCCESS^1
srmCompactSpace: KO: SRM_NOT_SUPPORTED 
srmCopy: KO: SRM_REQUEST_QUEUED^2
srmExtendFileLifeTime: OK: SRM_SUCCESS
srmGetRequestID: OK: SRM_SUCCESS
srmGetRequestSummary: OK: SRM_SUCCESS
srmGetSpaceMetadata: OK: SRM_SUCCESS
srmGetSpaceToken: OK: SRM_SUCCESS
srmLs: KO: SRM_NOT_SUPPORTED 
srmMkdir: OK: SRM_SUCCESS
srmMv: OK: SRM_SUCCESS
srmPrepareToGet: OK: SRM_REQUEST_QUEUED
srmPrepareToPut: OK: SRM_REQUEST_QUEUED
srmPutDone: OK: SRM_SUCCESS
srmReassignToUser: KO: SRM_NOT_SUPPORTED 
srmReleaseFiles: OK: SRM_SUCCESS
srmReleaseSpace: OK: SRM_SUCCESS
srmRemoveFiles: KO: SRM_NOT_SUPPORTED 
srmReserveSpace: OK: SRM_SUCCESS
srmResumeRequest: KO:  
srmRmdir: OK: SRM_SUCCESS
srmRm: OK: SRM_SUCCESS
srmSetPermission: KO: SRM_INVALID_REQUEST^3
srmStatusOfCopyRequest: OK: SRM_DONE
srmStatusOfGetRequest: OK: SRM_DONE
srmStatusOfPutRequest: OK: SRM_DONE^3
srmSuspendRequest: KO: SRM_NOT_SUPPORTED 
srmUpdateSpace: OK: SRM_SUCCESS
Legend:
=======
^1 however, no permissions are returned in the response => SRM_NOT_SUPPORTED
^2 files are not actually copied (srmStatusOfGetRequest returns SRM_INVALID_PATH) => SRM_NOT_SUPPORTED
^3 "certain" requests can crash SRMv2 => DoS

Note SRM_SUCCESS/SRM_REQUEST_QUEUED/SRM_DONE doesn't necessarily imply that a given function works as tests were very basic, and more thorough testing is necessary. Some methods methods have a database race condition. Author has been notified, said he understood the problem and fix was on the way.

DPM 1.5.7

 srmAbortFiles: OK: SRM_SUCCESS
 srmAbortRequest: OK: SRM_SUCCESS
 srmChangeFileStorageType: KO: SRM_NOT_SUPPORTED 
 srmCheckPermission: OK: SRM_SUCCESS
 srmCompactSpace: KO: SRM_NOT_SUPPORTED 
 srmCopy: KO: SRM_REQUEST_QUEUED request type mismatch
 srmExtendFileLifeTime: OK: SRM_SUCCESS
 srmGetRequestID: OK: SRM_SUCCESS
 srmGetRequestSummary: OK: SRM_SUCCESS
 srmGetSpaceMetadata: OK: SRM_SUCCESS
 srmGetSpaceToken: OK: SRM_SUCCESS
 srmLs: KO: SRM_NOT_SUPPORTED filtering by fileStorageType is not supported
 srmMkdir: OK: SRM_SUCCESS
 srmMv: OK: SRM_SUCCESS
 srmPrepareToGet: OK: SRM_REQUEST_QUEUED
 srmPrepareToPut: OK: SRM_REQUEST_QUEUED
 srmPutDone: OK: SRM_SUCCESS
 srmReassignToUser: KO: SRM_NOT_SUPPORTED 
 srmReleaseFiles: KO: SRM_INVALID_REQUEST Unknown request token^1
 srmReleaseSpace: OK: SRM_SUCCESS
 srmRemoveFiles: KO: SRM_NOT_SUPPORTED 
 srmReserveSpace: OK: SRM_SUCCESS
 srmResumeRequest: KO:  
 srmRmdir: OK: SRM_SUCCESS
 srmRm: OK: SRM_SUCCESS ; removed file couldn't be retrieved
 srmSetPermission: KO: SRM_INVALID_REQUEST 
 srmStatusOfCopyRequest: KO: SRM_INVALID_REQUEST request type mismatch
 srmStatusOfGetRequest: OK: SRM_DONE
 srmStatusOfPutRequest: OK: SRM_DONE
 srmSuspendRequest: KO: SRM_NOT_SUPPORTED 
 srmUpdateSpace: OK: SRM_SUCCESS
Legend:
=======
^1 note that the race condition hasn't been quite fixed yet, however, it doesn't
   seem to occur as often as in 1.4.5

Higher-level tests

This section has some comments on running running some higher-level SRMv2 tests by

make test

in the s2 'testing/scripts/srm2/usecase' directory. For more information, please run the tests and/or read the <TEST>.s2 scripts. Note that the results were exactly the same for DPM 1.4.5 and 1.5.7.

<TEST> Description SRMv2 functions used Result
Pin01

1) put a file on the server; 2) use srmExtendFileLifeTime to try to extend the pin time for the file; 3) use srmReleaseFiles to remove one file; 4) try to extend the pins again (this should result in failure).

srmPrepareToPut
srmStatusOfPutRequest
srmPutDone
srmExtendFileLifeTime
srmReleaseFiles
OK, but could extend lifetime of a file which has already been released!
PutGet01

transfer of a file to/from SRM server

srmPrepareToGet
srmPrepareToPut
srmPutDone
srmStatusOfGetRequest
srmStatusOfPutRequest
OK
PutGet02

transfer of two files in one go to/from SRM server

srmPrepareToGet
srmPrepareToPut
srmPutDone
srmStatusOfGetRequest
srmStatusOfPutRequest
OK
Rmdir01

1) create a new directory; 2) put a file into the newly created directory; 3) try to remove the entire directory non-recursively (should fail); 4) try to fetch the file (should succeed); 5) try to remove the entire directory recursively (should succeed); 6) try to fetch the file (should fail);

srmMkdir
srmRmdir
srmPrepareToGet
srmPrepareToPut
srmPutDone
srmStatusOfGetRequest
srmStatusOfPutRequest
OK, but recursive removal of a directory is not supported
Space01

1) call srmReserveSpace with a unique space token tag and defined size; 2) use srmGetSpaceToken to get the space token from the tag; 3) call srmGetSpaceMetadata to make sure the right amount of space was allocated 4) call srmUpdateSpace increasing the lifetime and size; 5) call srmGetSpaceMetadata again to check the update worked

srmReserveSpace
srmGetSpaceToken
srmGetSpaceMetaData
srmUpdateSpace
OK