Message ID | 20200819151601.18526-1-yi.zhang@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [blktests] common/multipath-over-rdma: fix warning ignored null byte in input | expand |
On 2020-08-19 08:16, Yi Zhang wrote: > [blktests]# nvme_trtype=rdma ./check nvme/004 > nvme/004 (test nvme and nvmet UUID NS descriptors) > runtime 1.238s ... > nvme/004 (test nvme and nvmet UUID NS descriptors) [failed]ignored null byte in input > runtime 1.238s ... 1.237s 410: warning: command substitution: ignored null byte in input > --- tests/nvme/004.out 2020-08-18 08:11:08.496809985 -0400 > +++ /root/blktests/results/nodev/nvme/004.out.bad 2020-08-19 10:43:02.193885685 -0400 > @@ -1,4 +1,5 @@ > Running nvme/004 > +common/multipath-over-rdma: line 409: warning: command substitution: ignored null byte in input > 91fdba0d-f87b-4c25-b80f-db7be1418b9e > uuid.91fdba0d-f87b-4c25-b80f-db7be1418b9e > NQN:blktests-subsystem-1 disconnected 1 controller(s) > > manually to reproduce: > Update one network interface with 15 chars: > [blktests]# ip a s enp0s29u1u7u3c2 > 5: enp0s29u1u7u3c2: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000 > link/ether f0:d4:e2:e6:e1:e3 brd ff:ff:ff:ff:ff:ff > [blktests]# modprobe rdma_rxe > [blktests]# echo enp0s29u1u7u3c2 >/sys/module/rdma_rxe/parameters/add > [blktests]# cat /sys/class/infiniband/rxe0/parent > enp0s29u1u7u3c2[blktests]# f="/sys/class/infiniband/rxe0/parent" > [blktests]# echo $(<"$f") > -bash: warning: command substitution: ignored null byte in input > enp0s29u1u7u3c2 > [blktests]# echo $(tr -d '\0' <"$f") > enp0s29u1u7u3c2 > > Signed-off-by: Yi Zhang <yi.zhang@redhat.com> > --- > common/multipath-over-rdma | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/common/multipath-over-rdma b/common/multipath-over-rdma > index 355b169..86e7d86 100644 > --- a/common/multipath-over-rdma > +++ b/common/multipath-over-rdma > @@ -406,7 +406,7 @@ has_rdma_rxe() { > local f > > for f in /sys/class/infiniband/*/parent; do > - if [ -e "$f" ] && [ "$(<"$f")" = "$1" ]; then > + if [ -e "$f" ] && [ "$(tr -d '\0' <"$f")" = "$1" ]; then > return 0 > fi > done sysfs reads should not yield '\0' bytes. Please fix the kernel code that yields a string including '\0' when reading from sysfs. Thanks, Bart.
I've send the fix to linux-rdma, thanks. Best Regards, Yi Zhang ----- Original Message ----- From: "Bart Van Assche" <bvanassche@acm.org> To: "Yi Zhang" <yi.zhang@redhat.com>, linux-block@vger.kernel.org Cc: sagi@grimberg.me, osandov@osandov.com Sent: Thursday, August 20, 2020 12:51:12 AM Subject: Re: [PATCH blktests] common/multipath-over-rdma: fix warning ignored null byte in input On 2020-08-19 08:16, Yi Zhang wrote: > [blktests]# nvme_trtype=rdma ./check nvme/004 > nvme/004 (test nvme and nvmet UUID NS descriptors) > runtime 1.238s ... > nvme/004 (test nvme and nvmet UUID NS descriptors) [failed]ignored null byte in input > runtime 1.238s ... 1.237s 410: warning: command substitution: ignored null byte in input > --- tests/nvme/004.out 2020-08-18 08:11:08.496809985 -0400 > +++ /root/blktests/results/nodev/nvme/004.out.bad 2020-08-19 10:43:02.193885685 -0400 > @@ -1,4 +1,5 @@ > Running nvme/004 > +common/multipath-over-rdma: line 409: warning: command substitution: ignored null byte in input > 91fdba0d-f87b-4c25-b80f-db7be1418b9e > uuid.91fdba0d-f87b-4c25-b80f-db7be1418b9e > NQN:blktests-subsystem-1 disconnected 1 controller(s) > > manually to reproduce: > Update one network interface with 15 chars: > [blktests]# ip a s enp0s29u1u7u3c2 > 5: enp0s29u1u7u3c2: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000 > link/ether f0:d4:e2:e6:e1:e3 brd ff:ff:ff:ff:ff:ff > [blktests]# modprobe rdma_rxe > [blktests]# echo enp0s29u1u7u3c2 >/sys/module/rdma_rxe/parameters/add > [blktests]# cat /sys/class/infiniband/rxe0/parent > enp0s29u1u7u3c2[blktests]# f="/sys/class/infiniband/rxe0/parent" > [blktests]# echo $(<"$f") > -bash: warning: command substitution: ignored null byte in input > enp0s29u1u7u3c2 > [blktests]# echo $(tr -d '\0' <"$f") > enp0s29u1u7u3c2 > > Signed-off-by: Yi Zhang <yi.zhang@redhat.com> > --- > common/multipath-over-rdma | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/common/multipath-over-rdma b/common/multipath-over-rdma > index 355b169..86e7d86 100644 > --- a/common/multipath-over-rdma > +++ b/common/multipath-over-rdma > @@ -406,7 +406,7 @@ has_rdma_rxe() { > local f > > for f in /sys/class/infiniband/*/parent; do > - if [ -e "$f" ] && [ "$(<"$f")" = "$1" ]; then > + if [ -e "$f" ] && [ "$(tr -d '\0' <"$f")" = "$1" ]; then > return 0 > fi > done sysfs reads should not yield '\0' bytes. Please fix the kernel code that yields a string including '\0' when reading from sysfs. Thanks, Bart.
diff --git a/common/multipath-over-rdma b/common/multipath-over-rdma index 355b169..86e7d86 100644 --- a/common/multipath-over-rdma +++ b/common/multipath-over-rdma @@ -406,7 +406,7 @@ has_rdma_rxe() { local f for f in /sys/class/infiniband/*/parent; do - if [ -e "$f" ] && [ "$(<"$f")" = "$1" ]; then + if [ -e "$f" ] && [ "$(tr -d '\0' <"$f")" = "$1" ]; then return 0 fi done
[blktests]# nvme_trtype=rdma ./check nvme/004 nvme/004 (test nvme and nvmet UUID NS descriptors) runtime 1.238s ... nvme/004 (test nvme and nvmet UUID NS descriptors) [failed]ignored null byte in input runtime 1.238s ... 1.237s 410: warning: command substitution: ignored null byte in input --- tests/nvme/004.out 2020-08-18 08:11:08.496809985 -0400 +++ /root/blktests/results/nodev/nvme/004.out.bad 2020-08-19 10:43:02.193885685 -0400 @@ -1,4 +1,5 @@ Running nvme/004 +common/multipath-over-rdma: line 409: warning: command substitution: ignored null byte in input 91fdba0d-f87b-4c25-b80f-db7be1418b9e uuid.91fdba0d-f87b-4c25-b80f-db7be1418b9e NQN:blktests-subsystem-1 disconnected 1 controller(s) manually to reproduce: Update one network interface with 15 chars: [blktests]# ip a s enp0s29u1u7u3c2 5: enp0s29u1u7u3c2: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000 link/ether f0:d4:e2:e6:e1:e3 brd ff:ff:ff:ff:ff:ff [blktests]# modprobe rdma_rxe [blktests]# echo enp0s29u1u7u3c2 >/sys/module/rdma_rxe/parameters/add [blktests]# cat /sys/class/infiniband/rxe0/parent enp0s29u1u7u3c2[blktests]# f="/sys/class/infiniband/rxe0/parent" [blktests]# echo $(<"$f") -bash: warning: command substitution: ignored null byte in input enp0s29u1u7u3c2 [blktests]# echo $(tr -d '\0' <"$f") enp0s29u1u7u3c2 Signed-off-by: Yi Zhang <yi.zhang@redhat.com> --- common/multipath-over-rdma | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)