diff mbox series

[blktests,v1] nvme/040: Free loop back resources

Message ID 20230612142945.10969-1-dwagner@suse.de (mailing list archive)
State New, archived
Headers show
Series [blktests,v1] nvme/040: Free loop back resources | expand

Commit Message

Daniel Wagner June 12, 2023, 2:29 p.m. UTC
The tests does not cleanup all resources after it has finished. This
leads to rm not being able to remove the TMPDIR cleanly:

  + rm -rf blktests/results/tmpdir.nvme.040.m2J
  rm: cannot remove 'blktests/results/tmpdir.nvme.040.m2J': Directory not empty

Signed-off-by: Daniel Wagner <dwagner@suse.de>
---
 tests/nvme/040 | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

Comments

Shinichiro Kawasaki June 14, 2023, 11:13 a.m. UTC | #1
On Jun 12, 2023 / 16:29, Daniel Wagner wrote:
> The tests does not cleanup all resources after it has finished. This
> leads to rm not being able to remove the TMPDIR cleanly:
> 
>   + rm -rf blktests/results/tmpdir.nvme.040.m2J
>   rm: cannot remove 'blktests/results/tmpdir.nvme.040.m2J': Directory not empty
> 
> Signed-off-by: Daniel Wagner <dwagner@suse.de>

Hi Daniel, thanks for the patch. It looks good to me. Now the test case leaves a
loop device. This patch avoids it. Good.

Question, I do not observe the rm command failure in my test environments. Do
you have insight why you were able to find the failure?
Daniel Wagner June 14, 2023, 11:27 a.m. UTC | #2
On Wed, Jun 14, 2023 at 11:13:18AM +0000, Shinichiro Kawasaki wrote:
> On Jun 12, 2023 / 16:29, Daniel Wagner wrote:
> > The tests does not cleanup all resources after it has finished. This
> > leads to rm not being able to remove the TMPDIR cleanly:
> > 
> >   + rm -rf blktests/results/tmpdir.nvme.040.m2J
> >   rm: cannot remove 'blktests/results/tmpdir.nvme.040.m2J': Directory not empty
> > 
> > Signed-off-by: Daniel Wagner <dwagner@suse.de>
> 
> Hi Daniel, thanks for the patch. It looks good to me. Now the test case leaves a
> loop device. This patch avoids it. Good.
> 
> Question, I do not observe the rm command failure in my test environments. Do
> you have insight why you were able to find the failure?

I am running the tests inside a VM and I am sharing a part of my host filesystem
via NFS which contain the blktests. If I understood it correctly, the NFS server
is behaving slightly differently here. I can't observe it either with xfs or
btrfs.
Shinichiro Kawasaki June 15, 2023, 2:30 a.m. UTC | #3
On Jun 14, 2023 / 13:27, Daniel Wagner wrote:
> On Wed, Jun 14, 2023 at 11:13:18AM +0000, Shinichiro Kawasaki wrote:
> > On Jun 12, 2023 / 16:29, Daniel Wagner wrote:
> > > The tests does not cleanup all resources after it has finished. This
> > > leads to rm not being able to remove the TMPDIR cleanly:
> > > 
> > >   + rm -rf blktests/results/tmpdir.nvme.040.m2J
> > >   rm: cannot remove 'blktests/results/tmpdir.nvme.040.m2J': Directory not empty
> > > 
> > > Signed-off-by: Daniel Wagner <dwagner@suse.de>
> > 
> > Hi Daniel, thanks for the patch. It looks good to me. Now the test case leaves a
> > loop device. This patch avoids it. Good.
> > 
> > Question, I do not observe the rm command failure in my test environments. Do
> > you have insight why you were able to find the failure?
> 
> I am running the tests inside a VM and I am sharing a part of my host filesystem
> via NFS which contain the blktests. If I understood it correctly, the NFS server
> is behaving slightly differently here. I can't observe it either with xfs or
> btrfs.

I see, the NFS sounds triggering the failure. I've applied the patch. Thanks!
diff mbox series

Patch

diff --git a/tests/nvme/040 b/tests/nvme/040
index b6ab34d611ba..688a0939a376 100755
--- a/tests/nvme/040
+++ b/tests/nvme/040
@@ -18,6 +18,7 @@  requires() {
 
 test() {
 	local subsys="blktests-subsystem-1"
+	local file_path="${TMPDIR}/img"
 	local port
 	local loop_dev
 	local nvmedev
@@ -26,8 +27,8 @@  test() {
 	echo "Running ${TEST_NAME}"
 
 	_setup_nvmet
-	truncate -s "${nvme_img_size}" "$TMPDIR/img"
-	loop_dev="$(losetup -f --show "$TMPDIR/img")"
+	truncate -s "${nvme_img_size}" "${file_path}"
+	loop_dev="$(losetup -f --show "${file_path}")"
 
 	port="$(_create_nvmet_port "${nvme_trtype}")"
 	_create_nvmet_subsystem "${subsys}" "${loop_dev}"
@@ -57,5 +58,9 @@  test() {
 	_remove_nvmet_subsystem "${subsys}"
 	_remove_nvmet_port "${port}"
 
+	losetup -d "${loop_dev}"
+
+	rm -f "${file_path}"
+
 	echo "Test complete"
 }