Re: [PATCH v7 1/9] rpcctl: Add a rpcctl.py tool

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hey Dave!

On 2/1/22 10:57, David Wysochanski wrote:
On Thu, Jan 27, 2022 at 2:50 PM <schumaker.anna@xxxxxxxxx> wrote:

Might want to rework some of the directory related code to ensure you
handle disappearing entries.  Got Tracebacks (see below) while running
a series of tests that would:
- mount
- run some IO
- umount
I guess I'm curious what your exception is...

Shouldn't rpcctl fail after a umount or is your
concern about how the command is failing?

steved.


[root@dwysocha-fedora-node1 nfs-utils]# while true; do
./tools/rpcctl/rpcctl.py xprt; done | grep -B 5 -A 5 Traceback
Traceback (most recent call last):
   File "/mnt/build/nfs-utils/./tools/rpcctl/rpcctl.py", line 230, in <module>
     args.func(args)
   File "/mnt/build/nfs-utils/./tools/rpcctl/rpcctl.py", line 112, in list_all
     xprts = [ Xprt(f) for f in (sunrpc / "xprt-switches").glob("**/xprt-*") ]
   File "/mnt/build/nfs-utils/./tools/rpcctl/rpcctl.py", line 112, in <listcomp>
     xprts = [ Xprt(f) for f in (sunrpc / "xprt-switches").glob("**/xprt-*") ]
   File "/usr/lib64/python3.10/pathlib.py", line 1032, in glob
     for p in selector.select_from(self):
   File "/usr/lib64/python3.10/pathlib.py", line 492, in _select_from
     for starting_point in self._iterate_directories(parent_path,
is_dir, scandir):
   File "/usr/lib64/python3.10/pathlib.py", line 482, in _iterate_directories
     for p in self._iterate_directories(path, is_dir, scandir):
   File "/usr/lib64/python3.10/pathlib.py", line 471, in _iterate_directories
     with scandir(parent_path) as scandir_it:
FileNotFoundError: [Errno 2] No such file or directory:
'/sys/kernel/sunrpc/xprt-switches/switch-4'
Traceback (most recent call last):
   File "/mnt/build/nfs-utils/./tools/rpcctl/rpcctl.py", line 230, in <module>
     args.func(args)
   File "/mnt/build/nfs-utils/./tools/rpcctl/rpcctl.py", line 112, in list_all
     xprts = [ Xprt(f) for f in (sunrpc / "xprt-switches").glob("**/xprt-*") ]
   File "/mnt/build/nfs-utils/./tools/rpcctl/rpcctl.py", line 112, in <listcomp>
     xprts = [ Xprt(f) for f in (sunrpc / "xprt-switches").glob("**/xprt-*") ]
   File "/usr/lib64/python3.10/pathlib.py", line 1032, in glob
     for p in selector.select_from(self):
   File "/usr/lib64/python3.10/pathlib.py", line 492, in _select_from
     for starting_point in self._iterate_directories(parent_path,
is_dir, scandir):
   File "/usr/lib64/python3.10/pathlib.py", line 482, in _iterate_directories
     for p in self._iterate_directories(path, is_dir, scandir):
   File "/usr/lib64/python3.10/pathlib.py", line 471, in _iterate_directories
     with scandir(parent_path) as scandir_it:
FileNotFoundError: [Errno 2] No such file or directory:
'/sys/kernel/sunrpc/xprt-switches/switch-2'




[root@dwysocha-fedora-node1 nfs-utils]# while true; do
./tools/rpcctl/rpcctl.py client; done | grep -B 10 -A 10 Traceback
Traceback (most recent call last):
   File "/mnt/build/nfs-utils/./tools/rpcctl/rpcctl.py", line 230, in <module>
     args.func(args)
   File "/mnt/build/nfs-utils/./tools/rpcctl/rpcctl.py", line 209, in list_all
     clients = [ RpcClient(f) for f in (sunrpc / "rpc-clients").iterdir() ]
   File "/mnt/build/nfs-utils/./tools/rpcctl/rpcctl.py", line 209, in <listcomp>
     clients = [ RpcClient(f) for f in (sunrpc / "rpc-clients").iterdir() ]
   File "/mnt/build/nfs-utils/./tools/rpcctl/rpcctl.py", line 195, in __init__
     self.switch = XprtSwitch(path / (path / "switch").readlink(), sep=",")
   File "/usr/lib64/python3.10/pathlib.py", line 1159, in readlink
     path = self._accessor.readlink(self)
FileNotFoundError: [Errno 2] No such file or directory:
'/sys/kernel/sunrpc/rpc-clients/clnt-3/switch'
Traceback (most recent call last):
   File "/mnt/build/nfs-utils/./tools/rpcctl/rpcctl.py", line 230, in <module>
     args.func(args)
   File "/mnt/build/nfs-utils/./tools/rpcctl/rpcctl.py", line 209, in list_all
     clients = [ RpcClient(f) for f in (sunrpc / "rpc-clients").iterdir() ]
   File "/mnt/build/nfs-utils/./tools/rpcctl/rpcctl.py", line 209, in <listcomp>
     clients = [ RpcClient(f) for f in (sunrpc / "rpc-clients").iterdir() ]
   File "/mnt/build/nfs-utils/./tools/rpcctl/rpcctl.py", line 195, in __init__
     self.switch = XprtSwitch(path / (path / "switch").readlink(), sep=",")
   File "/usr/lib64/python3.10/pathlib.py", line 1159, in readlink
     path = self._accessor.readlink(self)
FileNotFoundError: [Errno 2] No such file or directory:
'/sys/kernel/sunrpc/rpc-clients/clnt-7/switch'
Traceback (most recent call last):
   File "/mnt/build/nfs-utils/./tools/rpcctl/rpcctl.py", line 230, in <module>
     args.func(args)
   File "/mnt/build/nfs-utils/./tools/rpcctl/rpcctl.py", line 209, in list_all
     clients = [ RpcClient(f) for f in (sunrpc / "rpc-clients").iterdir() ]
   File "/mnt/build/nfs-utils/./tools/rpcctl/rpcctl.py", line 209, in <listcomp>
     clients = [ RpcClient(f) for f in (sunrpc / "rpc-clients").iterdir() ]
   File "/mnt/build/nfs-utils/./tools/rpcctl/rpcctl.py", line 195, in __init__
     self.switch = XprtSwitch(path / (path / "switch").readlink(), sep=",")
   File "/mnt/build/nfs-utils/./tools/rpcctl/rpcctl.py", line 148, in __init__
     self.xprts = [ Xprt(p) for p in self.path.iterdir() if p.is_dir() ]
   File "/mnt/build/nfs-utils/./tools/rpcctl/rpcctl.py", line 148, in <listcomp>
     self.xprts = [ Xprt(p) for p in self.path.iterdir() if p.is_dir() ]
   File "/mnt/build/nfs-utils/./tools/rpcctl/rpcctl.py", line 49, in __init__
     self.read_state()
   File "/mnt/build/nfs-utils/./tools/rpcctl/rpcctl.py", line 81, in read_state
     self.state = ','.join(f.readline().split()[1:])
OSError: [Errno 19] No such device
Traceback (most recent call last):
   File "/mnt/build/nfs-utils/./tools/rpcctl/rpcctl.py", line 230, in <module>
     args.func(args)
   File "/mnt/build/nfs-utils/./tools/rpcctl/rpcctl.py", line 209, in list_all
     clients = [ RpcClient(f) for f in (sunrpc / "rpc-clients").iterdir() ]
   File "/mnt/build/nfs-utils/./tools/rpcctl/rpcctl.py", line 209, in <listcomp>
     clients = [ RpcClient(f) for f in (sunrpc / "rpc-clients").iterdir() ]
   File "/mnt/build/nfs-utils/./tools/rpcctl/rpcctl.py", line 195, in __init__
     self.switch = XprtSwitch(path / (path / "switch").readlink(), sep=",")
   File "/mnt/build/nfs-utils/./tools/rpcctl/rpcctl.py", line 148, in __init__
     self.xprts = [ Xprt(p) for p in self.path.iterdir() if p.is_dir() ]
   File "/mnt/build/nfs-utils/./tools/rpcctl/rpcctl.py", line 148, in <listcomp>
     self.xprts = [ Xprt(p) for p in self.path.iterdir() if p.is_dir() ]
   File "/usr/lib64/python3.10/pathlib.py", line 1015, in iterdir
     for name in self._accessor.listdir(self):
FileNotFoundError: [Errno 2] No such file or directory:
'/sys/kernel/sunrpc/rpc-clients/clnt-9/../../xprt-switches/switch-2'
Traceback (most recent call last):
   File "/mnt/build/nfs-utils/./tools/rpcctl/rpcctl.py", line 230, in <module>
     args.func(args)
   File "/mnt/build/nfs-utils/./tools/rpcctl/rpcctl.py", line 209, in list_all
     clients = [ RpcClient(f) for f in (sunrpc / "rpc-clients").iterdir() ]
   File "/mnt/build/nfs-utils/./tools/rpcctl/rpcctl.py", line 209, in <listcomp>
     clients = [ RpcClient(f) for f in (sunrpc / "rpc-clients").iterdir() ]
   File "/mnt/build/nfs-utils/./tools/rpcctl/rpcctl.py", line 195, in __init__
     self.switch = XprtSwitch(path / (path / "switch").readlink(), sep=",")
   File "/usr/lib64/python3.10/pathlib.py", line 1159, in readlink
     path = self._accessor.readlink(self)
FileNotFoundError: [Errno 2] No such file or directory:
'/sys/kernel/sunrpc/rpc-clients/clnt-5/switch'
^C





[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux