NFSTEST_LOCK
Section: nfstest_lock 1.3 (1)
Updated: 19 July 2021
Index
Return to Main Contents
NAME
nfstest_lock - Locking tests
SYNOPSIS
nfstest_lock --server <server> [--client <client>] [options]
DESCRIPTION
Basic locking tests verify that a lock is granted using various arguments
to fcntl. These include blocking and non-blocking locks, read or write locks,
where the file is opened either for reading, writing or both. It also checks
different ranges including limit conditions.
Non-overlapping tests verity that locks are granted on both the client under
test and a second process or a remote client when locking the same file.
Overlapping tests verity that a lock is granted on the client under test
and a second process or a remote client trying to lock the same file will
be denied if a non-blocking lock is issue or will be blocked if a blocking
lock is issue on the second process or remote client.
OPTIONS
- --version
-
show program's version number and exit
- -h, --help
-
show this help message and exit
- -f FILE, --file=FILE
-
File where options are specified besides the system wide file
/etc/nfstest, user wide file $HOME/.nfstest or in the current
directory .nfstest file
NFS specific options:
- -s SERVER, --server=SERVER
-
Server name or IP address
- -e EXPORT, --export=EXPORT
-
Exported file system to mount [default: '/']
- --nfsversion=NFSVERSION
-
NFS version, e.g., 3, 4, 4.1, etc. [default: 4.1]
- -m MTPOINT, --mtpoint=MTPOINT
-
Mount point [default: '/mnt/t']
- -p PORT, --port=PORT
-
NFS server port [default: 2049]
- --proto=PROTO
-
NFS protocol name [default: 'tcp']
- --sec=SEC
-
Security flavor [default: 'sys']
- --nconnect=NCONNECT
-
Multiple TCP connections option [default: '1']
- -o MTOPTS, --mtopts=MTOPTS
-
Mount options [default: 'hard,rsize=4096,wsize=4096']
- --datadir=DATADIR
-
Data directory where files are created, directory is created on the
mount point [default: '']
Logging options:
- -v VERBOSE, --verbose=VERBOSE
-
Verbose level for debug messages [default: 'none']
- --tverbose=TVERBOSE
-
Verbose level for test messages [default: '1']
- --createlog
-
Create log file
- --rexeclog
-
Create rexec log files
- --warnings
-
Display warnings
- --tag=TAG
-
Informational tag, it is displayed as an INFO message [default: '']
- --notty
-
Do not use terminal colors on output
Packet trace options:
- --createtraces
-
Create a packet trace for each test
- --tbsize=TBSIZE
-
Capture buffer size for tcpdump [default: 192k]
- --trcdelay=TRCDELAY
-
Seconds to delay before stopping packet trace [default: 0.0]
- --keeptraces
-
Do not remove any trace files [default: remove trace files if no
errors]
- --rmtraces
-
Remove trace files [default: remove trace files if no errors]
- -i INTERFACE, --interface=INTERFACE
-
Device interface [default: automatically selected]
- --subtraces
-
Create a packet trace for each sub-test. Use it with caution since
it will create a lot of packet traces. Use --createtraces instead
unless trying to get a packet trace for a specific sub-test. Best if
it is used in combination with the --runtest option.
File options:
- --nfiles=NFILES
-
Number of files to create [default: 2]
- --filesize=FILESIZE
-
File size to use for test files [default: 64k]
- --rsize=RSIZE
-
Read size to use when reading files [default: 4k]
- --wsize=WSIZE
-
Write size to use when writing files [default: 4k]
- --iodelay=IODELAY
-
Seconds to delay I/O operations [default: 0.1]
- --offset-delta=OFFSET_DELTA
-
Read/Write offset delta [default: 4k]
Path options:
- --sudo=SUDO
-
Full path of binary for sudo [default: '/usr/bin/sudo']
- --kill=KILL
-
Full path of binary for kill [default: '/usr/bin/kill']
- --nfsstat=NFSSTAT
-
Full path of binary for nfsstat [default: '/usr/sbin/nfsstat']
- --tcpdump=TCPDUMP
-
Full path of binary for tcpdump [default: '/usr/sbin/tcpdump']
- --iptables=IPTABLES
-
Full path of binary for iptables [default: '/usr/sbin/iptables']
- --messages=MESSAGES
-
Full path of log messages file [default: '/var/log/messages']
- --trcevents=TRCEVENTS
-
Full path of tracing events directory [default:
'/sys/kernel/debug/tracing/events']
- --trcpipe=TRCPIPE
-
Full path of trace pipe file [default:
'/sys/kernel/debug/tracing/trace_pipe']
- --tmpdir=TMPDIR
-
Temporary directory [default: '/tmp']
Debug options:
- --nocleanup
-
Do not cleanup created files
- --notimestamps
-
Do not display timestamps in debug messages
- --bugmsgs=BUGMSGS
-
File containing test messages to mark as bugs if they failed
- --nomount
-
Do not mount server and run the tests on local disk space
- --basename=BASENAME
-
Base name for all files and logs [default: automatically generated]
- --nfsdebug=NFSDEBUG
-
Set NFS kernel debug flags and save log messages [default: '']
- --rpcdebug=RPCDEBUG
-
Set RPC kernel debug flags and save log messages [default: '']
- --tracepoints=TRACEPOINTS
-
List of trace points modules to enable [default: '']
- --nfsstats
-
Get NFS stats [default: 'False']
- --pktdisp
-
Display main packets related to the given test
- --nfserrors
-
Fail every NFS error found in the packet trace
- --client-ipaddr=CLIENT_IPADDR
-
IP address of localhost
Reporting options:
- --xunit-report
-
Generate xUnit compatible test report
- --xunit-report-file=XUNIT_REPORT_FILE
-
Path to xout report file
Test options:
- --runtest=RUNTEST
-
Comma separated list of tests to run, if list starts with a '^' then
all tests are run except the ones listed [default: 'all']
- --client=CLIENT
-
Remote NFS client and options used for conflicting lock tests.
Clients are separated by a ',' and each client definition is a list
of arguments separated by a ':' given in the following order if
positional arguments is used (see examples):
clientname:server:export:nfsversion:port:proto:sec:mtpoint
- --nfsopts=NFSOPTS
-
Local process NFS options used for conflicting lock tests. Processes
are separated by a ',' and each process definition is a list of
arguments separated by a ':' given in the following order if
positional arguments is used (see examples):
:server:export:nfsversion:port:proto:sec:mtpoint
- --offset=OFFSET
-
Offset of first lock granted [default: 4k]
- --length=LENGTH
-
Length of first lock granted [default: 4k]
- --unlock-delay=UNLOCK_DELAY
-
Time in seconds to unlock first lock [default: 2.0]
- --lockw-timeout=LOCKW_TIMEOUT
-
Time in seconds to wait for blocked lock after conflicting lock has
been released [default: 30]
- --opentype=OPENTYPE
-
List of open types to test [default: read,write,rdwr]
- --locktype=LOCKTYPE
-
List of lock types to test [default: read,write]
- --opentype2=OPENTYPE2
-
List of open types to test on remote client [default:
read,write,rdwr]
- --locktype2=LOCKTYPE2
-
List of lock types to test on remote client [default: read,write]
- --setlock=SETLOCK
-
List of set lock types to test [default: immediate,block]
TESTS
btest01
Basic locking tests
These tests verify that a lock is granted using various arguments
to fcntl. These include blocking and non-blocking locks, read or
write locks, where the file is opened either for reading, writing
or both. It also checks different ranges including limit conditions.
noverlap
Run all non-overlapping locking tests: nptest01, nptest02, nptest03,
nptest04, nctest01, nctest02, nctest03, nctest04
nptest
Run all non-overlapping locking tests using a second process: nptest01,
nptest02, nptest03, nptest04
nptest01
Locking non-overlapping range from a second process where end2 < start1
process1: |------------------|
process2: |--------|
nptest02
Locking non-overlapping range from a second process where end2 == start1 - 1
process1: |------------------|
process2: |------------------|
nptest03
Locking non-overlapping range from a second process where start2 > end1
process1: |------------------|
process2: |--------|
nptest04
Locking non-overlapping range from a second process where start2 == end1 + 1
process1: |------------------|
process2: |------------------|
nctest
Run all non-overlapping locking tests using a second client: nctest01,
nctest02, nctest03, nctest04
nctest01
Locking non-overlapping range from a second client where end2 < start1
client1: |------------------|
client2: |--------|
nctest02
Locking non-overlapping range from a second client where end2 == start1 - 1
client1: |------------------|
client2: |------------------|
nctest03
Locking non-overlapping range from a second client where start2 > end1
client1: |------------------|
client2: |--------|
nctest04
Locking non-overlapping range from a second client where start2 == end1 + 1
client1: |------------------|
client2: |------------------|
overlap
Run all overlapping locking tests: optest01, optest02, optest03,
optest04, optest05, optest06, optest07, optest08, optest09, octest01,
octest02, octest03, octest04, octest05, octest06, octest07, octest08,
octest09
optest
Run all overlapping locking tests using a second process: optest01,
optest02, optest03, optest04, optest05, optest06, optest07, optest08,
optest09
optest01
Locking same range from a second process
process1: |------------------|
process2: |------------------|
optest02
Locking overlapping range from a second process where start2 < start1
process1: |------------------|
process2: |------------------|
optest03
Locking overlapping range from a second process where end2 > end1
process1: |------------------|
process2: |------------------|
optest04
Locking overlapping range from a second process where range2 is entirely within range1
process1: |------------------|
process2: |--------|
optest05
Locking overlapping range from a second process where range1 is entirely within range2
process1: |------------------|
process2: |----------------------------|
optest06
Locking full file range from a second process
optest07
Locking overlapping range from a second process where end2 == start1
process1: |------------------|
process2: |------------------|
optest08
Locking overlapping range from a second process where start2 == end1
process1: |------------------|
process2: |------------------|
optest09
Locking overlapping range from multiple processes where range2 and
range3 are entirely within range1
process1: |-----------------------------|
process2: |--------|
process3: |--------|
octest
Run all overlapping locking tests using a second client: octest01,
octest02, octest03, octest04, octest05, octest06, octest07, octest08,
octest09
octest01
Locking same range from a second client
client1: |------------------|
client2: |------------------|
octest02
Locking overlapping range from a second client where start2 < start1
client1: |------------------|
client2: |------------------|
octest03
Locking overlapping range from a second client where end2 > end1
client1: |------------------|
client2: |------------------|
octest04
Locking overlapping range from a second client where range2 is entirely within range1
client1: |------------------|
client2: |--------|
octest05
Locking overlapping range from a second client where range1 is entirely within range2
client1: |------------------|
client2: |----------------------------|
octest06
Locking full file range from a second client
octest07
Locking overlapping range from a second client where end2 == start1
client1: |------------------|
client2: |------------------|
octest08
Locking overlapping range from a second client where start2 == end1
client1: |------------------|
client2: |------------------|
octest09
Locking overlapping range from multiple clients where range2 and
range3 are entirely within range1
client1: |-----------------------------|
client2: |--------|
client3: |--------|
all
Run all tests: btest01, nptest01, nptest02, nptest03, nptest04,
nctest01, nctest02, nctest03, nctest04, optest01, optest02, optest03,
optest04, optest05, optest06, optest07, optest08, optest09, octest01,
octest02, octest03, octest04, octest05, octest06, octest07, octest08,
octest09
EXAMPLES
Run the tests which use only the main client (no client option):
nfstest_lock --server 192.168.0.2 --export /exports
Use short options instead:
nfstest_lock -s 192.168.0.2 -e /exports
Use positional arguments with nfsversion=3 for extra client:
nfstest_lock -s 192.168.0.2 -e /exports --client 192.168.0.10:::3
Use named arguments instead:
nfstest_lock -s 192.168.0.2 -e /exports --client 192.168.0.10:nfsversion=3
Use positional arguments with nfsversion=3 for second process:
nfstest_lock -s 192.168.0.2 -e /exports --nfsopts :::3
Use named arguments instead:
nfstest_lock -s 192.168.0.2 -e /exports --nfsopts nfsversion=3
NOTES
The user id in the local host and the host specified by --client must
have access to run commands as root using the 'sudo' command without
the need for a password.
The user id must be able to 'ssh' to remote host without the need for
a password.
SEE ALSO
baseobj(3),
formatstr(3),
nfstest.test_util(3),
nfstest_alloc(1),
nfstest_cache(1),
nfstest_delegation(1),
nfstest_dio(1),
nfstest_fcmp(1),
nfstest_file(1),
nfstest_interop(1),
nfstest_io(1),
nfstest_pkt(1),
nfstest_pnfs(1),
nfstest_posix(1),
nfstest_rdma(1),
nfstest_sparse(1),
nfstest_ssc(1),
nfstest_xid(1),
packet.nfs.nfs3_const(3),
packet.nfs.nfs4_const(3),
packet.nfs.nlm4_const(3)
BUGS
No known bugs.
AUTHOR
Jorge Mora (mora@netapp.com)
Index
- NAME
-
- SYNOPSIS
-
- DESCRIPTION
-
- OPTIONS
-
- NFS specific options:
-
- Logging options:
-
- Packet trace options:
-
- File options:
-
- Path options:
-
- Debug options:
-
- Reporting options:
-
- Test options:
-
- TESTS
-
- btest01
-
- noverlap
-
- nptest
-
- nptest01
-
- nptest02
-
- nptest03
-
- nptest04
-
- nctest
-
- nctest01
-
- nctest02
-
- nctest03
-
- nctest04
-
- overlap
-
- optest
-
- optest01
-
- optest02
-
- optest03
-
- optest04
-
- optest05
-
- optest06
-
- optest07
-
- optest08
-
- optest09
-
- octest
-
- octest01
-
- octest02
-
- octest03
-
- octest04
-
- octest05
-
- octest06
-
- octest07
-
- octest08
-
- octest09
-
- all
-
- EXAMPLES
-
- NOTES
-
- SEE ALSO
-
- BUGS
-
- AUTHOR
-
This document was created by
man2html,
using the manual pages.
Time: 16:08:34 GMT, July 19, 2021