nvme list-subsys fails to error out if invalid device is passed to it via the <device> option. For e.g. suppose one has a single subsystem with two namespaces in it:
# nvme list
Node Generic SN Model Namespace Usage Format FW Rev
--------------------- --------------------- -------------------- ---------------------------------------- ---------- -------------------------- ---------------- --------
/dev/nvme1n1 /dev/ng1n1 81CYrBSoKGRJAAAAAAAN NetApp ONTAP Controller 0x2 219.47 MB / 10.74 GB 512 B + 0 B 9.18.1
/dev/nvme1n2 /dev/ng1n2 81CYrBSoKGRJAAAAAAAN NetApp ONTAP Controller 0x1 330.56 MB / 10.74 GB 4 KiB + 0 B 9.18.1
# nvme list-subsys /dev/nvme1n1
nvme-subsys1 - NQN=nqn.1992-08.com.netapp:sn.48391d66c0a611ecaaa5d039ea165514:subsystem.subsys_CLIENT116_0
hostnqn=nqn.2014-08.org.nvmexpress:uuid:e6550026-173e-4959-ba74-be367844bd8a
\
+- nvme1 tcp traddr=192.168.2.116,trsvcid=4420,host_traddr=192.168.1.6,src_addr=192.168.1.6 live optimized
+- nvme2 tcp traddr=192.168.1.116,trsvcid=4420,host_traddr=192.168.1.6,src_addr=192.168.1.6 live optimized
+- nvme3 tcp traddr=192.168.2.117,trsvcid=4420,host_traddr=192.168.1.6,src_addr=192.168.1.6 live non-optimized
+- nvme4 tcp traddr=192.168.1.117,trsvcid=4420,host_traddr=192.168.1.6,src_addr=192.168.1.6 live non-optimized
But I also see a similar list-subsys output even for an invalid device like say nvme1n3, when ideally it should have errored out with an invalid device output:
# nvme list-subsys /dev/nvme1n3
nvme-subsys1 - NQN=nqn.1992-08.com.netapp:sn.48391d66c0a611ecaaa5d039ea165514:subsystem.subsys_CLIENT116_0
hostnqn=nqn.2014-08.org.nvmexpress:uuid:e6550026-173e-4959-ba74-be367844bd8a
\
+- nvme1 tcp traddr=192.168.2.116,trsvcid=4420,host_traddr=192.168.1.6,src_addr=192.168.1.6 live
+- nvme2 tcp traddr=192.168.1.116,trsvcid=4420,host_traddr=192.168.1.6,src_addr=192.168.1.6 live
+- nvme3 tcp traddr=192.168.2.117,trsvcid=4420,host_traddr=192.168.1.6,src_addr=192.168.1.6 live
+- nvme4 tcp traddr=192.168.1.117,trsvcid=4420,host_traddr=192.168.1.6,src_addr=192.168.1.6 live
And one can also see a blank output if a different invalid device with a different subsys number is passed to it. For e.g.
# nvme list-subsys /dev/nvme2n1
# echo $?
0
So obviously list-subsys is broken while handling invalid or non-existent NVMe devices.
nvme list-subsys fails to error out if invalid device is passed to it via the
<device>option. For e.g. suppose one has a single subsystem with two namespaces in it:But I also see a similar list-subsys output even for an invalid device like say nvme1n3, when ideally it should have errored out with an invalid device output:
And one can also see a blank output if a different invalid device with a different subsys number is passed to it. For e.g.
So obviously list-subsys is broken while handling invalid or non-existent NVMe devices.