Re: [PATCH] generic/442: add sync before dmsetup remove

[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]




在 2019/9/26 13:51, Eryu Guan 写道:
On Thu, Sep 26, 2019 at 11:05:13AM +0800, Su Yanjun wrote:
在 2019/9/25 21:08, Eryu Guan 写道:
On Wed, Sep 25, 2019 at 04:29:18PM +0800, Su Yanjun wrote:
This test case sometime fails. Because "dmsetup remove error-test" may
fail when some writeback is going on.

This patch adds sync before dmsetup remove operation.

Signed-off-by: Su Yanjun<suyj.fnst@xxxxxxxxxxxxxx>
---
   tests/generic/442 | 1 +
   1 file changed, 1 insertion(+)

diff --git a/tests/generic/442 b/tests/generic/442
index fe6d460..d48ca36 100755
--- a/tests/generic/442
+++ b/tests/generic/442
@@ -43,6 +43,7 @@ $here/src/fsync-err -d $here/src/dmerror $DMERROR_DEV
fsync-err should have flipped $DMERROR_DEV to working mode and fsync
each open fd before exit if fsync-err didn't report any failure. So
there should be no on-going writeback.
   # success, all done
   _dmerror_load_working_table
+sync
   _dmerror_cleanup
And _dmerror_cleanup umount $DMERROR_DEV first, then tear down the dm
device. Could you check if fsync-err returns successfully and umount
succeeds as well?
I cant find any mount info for $DMERROR_DEV in this test. fsync-err  just
does write or sync test with the raw logical dm device.

Am i missing something?
Ah, sorry, I missed that the test uses raw block device..

mkfs.xfs: cannot open /dev/sda11: Device or resource busy
device-mapper: remove ioctl on error-test  failed: Device or resource busy
Command failed.
_check_xfs_filesystem: filesystem on /dev/sda11 has dirty log
*** xfs_logprint -t output ***
xfs_logprint: logprint.c:230: main: Assertion `x.logBBsize <= 0x7fffffff'
failed.
*** end xfs_logprint output

 From above log, dmsetup remove failed with "Device or resource busy".
I can't reproduce above failure with v5.3 kernel, neither xfs nor ext4.
Does ext4 pass in your setup? I suspect it's a kernel bug that still
holds the block device.

Yes, ext4 can pass. Only in RHEL release it tests failed.

Maybe "sync" is only a workaround for the the case, the root cause is unknown.

It may need more time to analysis.

Thanks

Thanks,
Eryu







[Index of Archives]     [Linux Filesystems Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux