Recall delegation tests verify the delegation is recalled when a conflicting operation is sent to the server from a different client. Conflicting operations are reading, writing, removing, renaming and changing the permissions on the same file. Note that reading a file from a different client can only recall a write delegation. Removing the delegated file from a different client recalls the delegation and the server may or may not allow any more writes from the client after the delegation has been returned. Renaming either the delegated file (as source) or into the delegated file (as target) recalls the delegation. In the case where the delegated file is the target of rename, the existing target is removed before the rename occurs, therefore the server may or may not allow nay more writes from the client after the delegation has been removed just like in the case when removing the delegated file.
Also, verify that a read delegation is not recalled when a different client is granted a read delegation. After a delegation is recalled, the client may send an OPEN with CLAIM_DELEGATE_CUR before returning the delegation specially when there is a open pending on the client. In addition, the stateid returned by the new open should be the same as the original OPEN stateid. Also, a delegation should not be granted when re-opening the file before returning the delegation. The client may flush all written data before returning the WRITE delegation. The LOCK should be sent as well before returning a delegation which has been recalled. Finally, a delegation should not be granted on the second client who cause the delegation recall on the first client.
Run all basic delegation tests: basic01, basic02, basic03, basic04, basic05, basic06, basic07, basic08, basic09, basic10, basic11, basic12
Run all basic delegation tests with file stat: basic03, basic04, basic09, basic10
Run all basic delegation tests with file lock: basic05, basic06, basic11, basic12
Basic read delegation test
Basic write delegation test
Basic read delegation test with file stat
Basic write delegation test with file stat
Basic read delegation test with file lock
Basic write delegation test with file lock
Basic write delegation test using RDWR open while reading
Basic write delegation test using RDWR open while writing
Basic write delegation test using RDWR open while reading with file stat
Basic write delegation test using RDWR open while writing with file stat
Basic write delegation test using RDWR open while reading with file lock
Basic write delegation test using RDWR open while writing with file lock
Run all recall delegation tests: recall01, recall02, recall03, recall04, recall05, recall06, recall07, recall08, recall09, recall10, recall11, recall12, recall13, recall14, recall15, recall16, recall17, recall18, recall19, recall20, recall21, recall22, recall23, recall24, recall25, recall26, recall27, recall28, recall29, recall30, recall31, recall32, recall33, recall34, recall35, recall36, recall37, recall38, recall39, recall40, recall41, recall42, recall43, recall44, recall45, recall46, recall47, recall48, recall49, recall50, recall51, recall52, recall53, recall54
Run all tests using SETATTR to recall the delegation: recall07, recall08, recall09, recall10, recall35, recall36, recall37, recall38
recall11, recall12, recall13, recall14, recall39, recall40, recall41, recall42
recall15, recall16, recall17, recall18, recall19, recall20, recall21, recall22, recall43, recall44, recall45, recall46, recall47, recall48, recall49, recall50
Run all recall delegation tests having a pending open: recall23, recall24, recall25, recall26, recall51, recall52, recall53, recall54
Recall read delegation by writing from a second client
Recall write delegation by writing from a second client
Recall read delegation by writing from a second client with file lock
Recall write delegation by writing from a second client with file lock
Recall write delegation by reading from a second client
Recall write delegation by reading from a second client with file lock
Recall read delegation by changing the permissions to the file
Recall write delegation by changing the permissions to the file
Recall read delegation by changing the permissions to the file with file lock
Recall write delegation by changing the permissions to the file with file lock
Recall read delegation by removing the file
Recall write delegation by removing the file
Recall read delegation by removing the file with file lock
Recall write delegation by removing the file with file lock
Recall read delegation by renaming the file
Recall write delegation by renaming the file
Recall read delegation by renaming the file with file lock
Recall write delegation by renaming the file with file lock
Recall read delegation by renaming into the file
Recall write delegation by renaming into the file
Recall read delegation by renaming into the file with file lock
Recall write delegation by renaming into the file with file lock
Recall read delegation by writing from a second client with file lock, having a pending read open
Recall read delegation by writing from a second client with file lock, having a pending write open. Delegation is returned by the client when the second open is done so there is no delegation recall
Recall write delegation by writing from a second client with file lock, having a pending read open
Recall write delegation by writing from a second client with file lock, having a pending write open
Recall write delegation by reading from a second client using RDWR open while reading
Recall write delegation by reading from a second client using RDWR open while writing
Recall write delegation by writing from a second client using RDWR open while reading
Recall write delegation by writing from a second client using RDWR open while writing
Recall write delegation by reading from a second client using RDWR open while reading with file lock
Recall write delegation by reading from a second client using RDWR open while writing with file lock
Recall write delegation by writing from a second client using RDWR open while reading with file lock
Recall write delegation by writing from a second client using RDWR open while writing with file lock
Recall write delegation by changing the permissions to the file from a second client using RDWR open while reading
Recall write delegation by changing the permissions to the file from a second client using RDWR open while writing
Recall write delegation by changing the permissions to the file from a second client using RDWR open while reading with file lock
Recall write delegation by changing the permissions to the file from a second client using RDWR open while writing with file lock
Recall write delegation by removing the file from a second client using RDWR open while reading
Recall write delegation by removing the file from a second client using RDWR open while writing
Recall write delegation by removing the file from a second client using RDWR open while reading with file lock
Recall write delegation by removing the file from a second client using RDWR open while writing with file lock
Recall write delegation by renaming the file from a second client using RDWR open while reading
Recall write delegation by renaming the file from a second client using RDWR open while writing
Recall write delegation by renaming the file from a second client using RDWR open while reading with file lock
Recall write delegation by renaming the file from a second client using RDWR open while writing with file lock
Recall write delegation by renaming the file from a second client using RDWR open while reading
Recall write delegation by renaming the file from a second client using RDWR open while writing
Recall write delegation by renaming the file from a second client using RDWR open while reading with file lock
Recall write delegation by renaming the file from a second client using RDWR open while writing with file lock
Recall write delegation by writing from a second client using RDWR open while reading with file lock, having a pending read open
Recall write delegation by writing from a second client using RDWR open while reading with file lock, having a pending write open
Recall write delegation by writing from a second client using RDWR open while writing with file lock, having a pending read open
Recall write delegation by writing from a second client using RDWR open while writing with file lock, having a pending write open
Run all read delegation tests: basic01, basic03, basic05, recall01, recall03, recall07, recall09, recall11, recall13, recall15, recall17, recall19, recall21, recall23, recall24
Run all write delegation tests: basic02, basic04, basic06, basic07, basic08, basic09, basic10, basic11, basic12, recall02, recall04, recall05, recall06, recall08, recall10, recall12, recall14, recall16, recall18, recall20, recall22, recall25, recall26, recall27, recall28, recall29, recall30, recall31, recall32, recall33, recall34, recall35, recall36, recall37, recall38, recall39, recall40, recall41, recall42, recall43, recall44, recall45, recall46, recall47, recall48, recall49, recall50, recall51, recall52, recall53, recall54
Run all tests: basic01, basic02, basic03, basic04, basic05, basic06, basic07, basic08, basic09, basic10, basic11, basic12, recall01, recall02, recall03, recall04, recall05, recall06, recall07, recall08, recall09, recall10, recall11, recall12, recall13, recall14, recall15, recall16, recall17, recall18, recall19, recall20, recall21, recall22, recall23, recall24, recall25, recall26, recall27, recall28, recall29, recall30, recall31, recall32, recall33, recall34, recall35, recall36, recall37, recall38, recall39, recall40, recall41, recall42, recall43, recall44, recall45, recall46, recall47, recall48, recall49, recall50, recall51, recall52, recall53, recall54
Use short options instead:
nfstest_delegation -s 192.168.0.2 -e /exports
Run both the basic and recall tests using positional arguments with
nfsversion=3 for the second client:
nfstest_delegation -s 192.168.0.2 -e /exports --client 192.168.0.10:::3
Use named arguments instead:
nfstest_delegation -s 192.168.0.2 -e /exports --client 192.168.0.10:nfsversion=3
The user id must be able to 'ssh' to remote host without the need for a password.