[bug report] blktests nvme/047 failed due to /dev/nvme0n1 not created in time

Yi Zhang yi.zhang at redhat.com
Thu Aug 10 03:21:07 PDT 2023


Hi Daniel/Shinichiro
Thanks for looking into this issue, I checked the 047 code, and we are
missing _find_nvme_dev after the second connect, and the below change
could fix this issue now.

diff --git a/tests/nvme/047 b/tests/nvme/047
index 6a7599b..8c0a024 100755
--- a/tests/nvme/047
+++ b/tests/nvme/047
@@ -52,6 +52,8 @@ test() {
                --nr-write-queues 1 \
                --nr-poll-queues 1 || echo FAIL

+       nvmedev=$(_find_nvme_dev "${subsys_name}")
+
        _run_fio_rand_io --filename="/dev/${nvmedev}n1" --size="${rand_io_size}"

        _nvme_disconnect_subsys "${subsys_name}" >> "$FULL" 2>&1


On Thu, Aug 10, 2023 at 5:18 PM Daniel Wagner <dwagner at suse.de> wrote:
>
> On Thu, Aug 10, 2023 at 12:19:39AM +0000, Shinichiro Kawasaki wrote:
> > Yi, could you try and see if it avoids the failure?
> >
> > diff --git a/tests/nvme/rc b/tests/nvme/rc
> > index 4f3a994..005db80 100644
> > --- a/tests/nvme/rc
> > +++ b/tests/nvme/rc
> > @@ -740,7 +740,7 @@ _find_nvme_dev() {
> >               if [[ "$subsysnqn" == "$subsys" ]]; then
> >                       echo "$dev"
> >                       for ((i = 0; i < 10; i++)); do
> > -                             if [[ -e /sys/block/$dev/uuid &&
> > +                             if [[ -e /dev/$dev && -e /sys/block/$dev/uuid &&
> >                                       -e /sys/block/$dev/wwid ]]; then
> >                                       return
> >                               fi
>
> The path for uuid is not correct. It's needs to be something like
>
>         if [[ -e /dev/$dev && -e /sys/block/"${dev}n1"/uuid &&
>                 -e /sys/block/"${dev}n1"/wwid ]]; then
>                         return
>         fi
>


-- 
Best Regards,
  Yi Zhang




More information about the Linux-nvme mailing list