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. Thanks, Eryu