From bbd36d0dd86fd000f919894e464914a34ba75145 Mon Sep 17 00:00:00 2001 From: Ben Walker Date: Thu, 26 Aug 2021 12:39:07 -0700 Subject: [PATCH] test: Wait for 'nvme disconnect' operations to remove disks Use waitforserial_disconnect to wait for all nvme disconnect operations to actually finish. Signed-off-by: Ben Walker Change-Id: I91f410d9a84db33cf5d8e9d7ecdd4e7a7003aae0 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/9314 Tested-by: SPDK CI Jenkins Reviewed-by: Dong Yi Reviewed-by: Shuhei Matsumoto Reviewed-by: Tomasz Zawadzki --- test/nvmf/target/filesystem.sh | 1 + test/nvmf/target/fio.sh | 1 + test/nvmf/target/initiator_timeout.sh | 1 + test/nvmf/target/multiconnection.sh | 1 + test/nvmf/target/multipath.sh | 1 + test/nvmf/target/nmic.sh | 1 + test/nvmf/target/nvme_cli.sh | 1 + test/nvmf/target/rpc.sh | 3 +++ test/nvmf/target/srq_overwhelm.sh | 3 ++- 9 files changed, 12 insertions(+), 1 deletion(-) diff --git a/test/nvmf/target/filesystem.sh b/test/nvmf/target/filesystem.sh index 3df6badab..946dac101 100755 --- a/test/nvmf/target/filesystem.sh +++ b/test/nvmf/target/filesystem.sh @@ -84,6 +84,7 @@ function nvmf_filesystem_part() { sync nvme disconnect -n "nqn.2016-06.io.spdk:cnode1" || true + waitforserial_disconnect "$NVMF_SERIAL" $rpc_py nvmf_delete_subsystem nqn.2016-06.io.spdk:cnode1 diff --git a/test/nvmf/target/fio.sh b/test/nvmf/target/fio.sh index ad8248ad3..2c324bd45 100755 --- a/test/nvmf/target/fio.sh +++ b/test/nvmf/target/fio.sh @@ -67,6 +67,7 @@ fio_status=0 wait $fio_pid || fio_status=$? nvme disconnect -n "nqn.2016-06.io.spdk:cnode1" || true +waitforserial_disconnect "$NVMF_SERIAL" if [ $fio_status -eq 0 ]; then echo "nvmf hotplug test: fio successful - expected failure" diff --git a/test/nvmf/target/initiator_timeout.sh b/test/nvmf/target/initiator_timeout.sh index 9c937ab38..223ab9b46 100755 --- a/test/nvmf/target/initiator_timeout.sh +++ b/test/nvmf/target/initiator_timeout.sh @@ -51,6 +51,7 @@ fio_status=0 wait $fio_pid || fio_status=$? nvme disconnect -n "nqn.2016-06.io.spdk:cnode1" || true +waitforserial_disconnect "$NVMF_SERIAL" if [ $fio_status -eq 0 ]; then echo "nvmf hotplug test: fio successful as expected" diff --git a/test/nvmf/target/multiconnection.sh b/test/nvmf/target/multiconnection.sh index 43b24d404..bbee0ee07 100755 --- a/test/nvmf/target/multiconnection.sh +++ b/test/nvmf/target/multiconnection.sh @@ -33,6 +33,7 @@ $rootdir/scripts/fio-wrapper -p nvmf -i 262144 -d 64 -t randwrite -r 10 sync for i in $(seq 1 $NVMF_SUBSYS); do nvme disconnect -n "nqn.2016-06.io.spdk:cnode${i}" || true + waitforserial_disconnect SPDK$i $rpc_py nvmf_delete_subsystem nqn.2016-06.io.spdk:cnode${i} done diff --git a/test/nvmf/target/multipath.sh b/test/nvmf/target/multipath.sh index 73db12539..1c22bb080 100755 --- a/test/nvmf/target/multipath.sh +++ b/test/nvmf/target/multipath.sh @@ -116,6 +116,7 @@ check_ana_state "$subsys_id" "$ctrl2_id" "inaccessible" wait $fio_pid nvme disconnect -n "nqn.2016-06.io.spdk:cnode1" || true +waitforserial_disconnect "$NVMF_SERIAL" $rpc_py nvmf_delete_subsystem nqn.2016-06.io.spdk:cnode1 diff --git a/test/nvmf/target/nmic.sh b/test/nvmf/target/nmic.sh index dd3f7f381..46a7279b3 100755 --- a/test/nvmf/target/nmic.sh +++ b/test/nvmf/target/nmic.sh @@ -43,6 +43,7 @@ waitforserial "$NVMF_SERIAL" $rootdir/scripts/fio-wrapper -p nvmf -i 4096 -d 1 -t write -r 1 -v nvme disconnect -n "nqn.2016-06.io.spdk:cnode1" +waitforserial_disconnect "$NVMF_SERIAL" trap - SIGINT SIGTERM EXIT diff --git a/test/nvmf/target/nvme_cli.sh b/test/nvmf/target/nvme_cli.sh index 401f0d64f..baeb15d2e 100755 --- a/test/nvmf/target/nvme_cli.sh +++ b/test/nvmf/target/nvme_cli.sh @@ -60,6 +60,7 @@ done devs=($(get_nvme_devs)) nvme_num=${#devs[@]} nvme disconnect -n "nqn.2016-06.io.spdk:cnode1" +waitforserial_disconnect "$NVMF_SERIAL" if ((nvme_num <= nvme_num_before_connection)); then echo "nvme-cli connect target devices failed" exit 1 diff --git a/test/nvmf/target/rpc.sh b/test/nvmf/target/rpc.sh index afabae854..4d089fed3 100755 --- a/test/nvmf/target/rpc.sh +++ b/test/nvmf/target/rpc.sh @@ -59,6 +59,7 @@ $rpc_py nvmf_subsystem_add_host nqn.2016-06.io.spdk:cnode1 nqn.2016-06.io.spdk:h nvme connect -t $TEST_TRANSPORT -n nqn.2016-06.io.spdk:cnode1 -q nqn.2016-06.io.spdk:host1 -a "$NVMF_FIRST_TARGET_IP" -s "$NVMF_PORT" waitforserial "$NVMF_SERIAL" nvme disconnect -n nqn.2016-06.io.spdk:cnode1 +waitforserial_disconnect "$NVMF_SERIAL" # Remove the host and verify that the connect fails $rpc_py nvmf_subsystem_remove_host nqn.2016-06.io.spdk:cnode1 nqn.2016-06.io.spdk:host1 @@ -69,6 +70,7 @@ $rpc_py nvmf_subsystem_allow_any_host -e nqn.2016-06.io.spdk:cnode1 nvme connect -t $TEST_TRANSPORT -n nqn.2016-06.io.spdk:cnode1 -q nqn.2016-06.io.spdk:host1 -a "$NVMF_FIRST_TARGET_IP" -s "$NVMF_PORT" waitforserial "$NVMF_SERIAL" nvme disconnect -n nqn.2016-06.io.spdk:cnode1 +waitforserial_disconnect "$NVMF_SERIAL" $rpc_py nvmf_delete_subsystem nqn.2016-06.io.spdk:cnode1 @@ -83,6 +85,7 @@ for i in $(seq 1 $loops); do waitforserial "$NVMF_SERIAL" nvme disconnect -n nqn.2016-06.io.spdk:cnode1 + waitforserial_disconnect "$NVMF_SERIAL" $rpc_py nvmf_subsystem_remove_ns nqn.2016-06.io.spdk:cnode1 5 $rpc_py nvmf_delete_subsystem nqn.2016-06.io.spdk:cnode1 diff --git a/test/nvmf/target/srq_overwhelm.sh b/test/nvmf/target/srq_overwhelm.sh index 046df4cf1..0185a41f3 100755 --- a/test/nvmf/target/srq_overwhelm.sh +++ b/test/nvmf/target/srq_overwhelm.sh @@ -16,7 +16,7 @@ nvmfappstart -m 0xF $rpc_py nvmf_create_transport $NVMF_TRANSPORT_OPTS -u 8192 -s 1024 for i in $(seq 0 5); do - $rpc_py nvmf_create_subsystem nqn.2016-06.io.spdk:cnode$i -a -s SPDK00000000000001 + $rpc_py nvmf_create_subsystem nqn.2016-06.io.spdk:cnode$i -a -s "SPDK0000000000000${i}" $rpc_py bdev_malloc_create $MALLOC_BDEV_SIZE $MALLOC_BLOCK_SIZE -b Malloc$i $rpc_py nvmf_subsystem_add_ns nqn.2016-06.io.spdk:cnode$i Malloc$i $rpc_py nvmf_subsystem_add_listener nqn.2016-06.io.spdk:cnode$i -t $TEST_TRANSPORT -a $NVMF_FIRST_TARGET_IP -s $NVMF_PORT @@ -35,6 +35,7 @@ sync for i in $(seq 0 5); do nvme disconnect -n "nqn.2016-06.io.spdk:cnode${i}" + waitforserial_disconnect "SPDK0000000000000${i}" $rpc_py nvmf_delete_subsystem nqn.2016-06.io.spdk:cnode$i done