Message ID | 20171114123310.25286-2-eguan@redhat.com (mailing list archive) |
---|---|
State | Not Applicable, archived |
Headers | show |
On Tue, Nov 14, 2017 at 2:33 PM, Eryu Guan <eguan@redhat.com> wrote: > util-linux commit ea848180dd34 ("libmount: add > mnt_context_get_excode()") since v2.30 changed the error message on > EUCLEAN and ESTALE again (and maybe other errno too): > > - mount: <device> on <mountpoint> failed: Structure needs cleaning > + mount: <mountpoint>: mount(2) system call failed: Structure needs cleaning. > > and it causes xfs/005, overlay/037 to fail (and probably xfs/333 too, > but it's always _notrun for now). > > So let's filter out the changing parts and keep the error message > simple. > > Signed-off-by: Eryu Guan <eguan@redhat.com> > --- > common/filter | 23 +++++++++++++++++++++++ > tests/overlay/037 | 4 ++-- > tests/overlay/037.out | 4 ++-- > tests/xfs/005 | 7 +------ > tests/xfs/333 | 2 +- > tests/xfs/333.out | 2 +- > 6 files changed, 30 insertions(+), 12 deletions(-) > > diff --git a/common/filter b/common/filter > index 0cb458b0051f..d1bb94818e3d 100644 > --- a/common/filter > +++ b/common/filter > @@ -390,6 +390,13 @@ _filter_fstrim() > egrep -o "[0-9]+ bytes" | $AWK_PROG '{print $1}' > } > > +# Remove the ending dot appended to mount error message, util-linux 2.30 > +# starts to do so. > +_filter_ending_dot() > +{ > + sed -e "s/\.$//" > +} > + > # Older mount output referred to "block device" when mounting RO devices > # It's gone in newer versions > _filter_ro_mount() { > @@ -397,6 +404,22 @@ _filter_ro_mount() { > -e "s/mount: cannot mount block device/mount: cannot mount/g" > } > > +# Filter a failed mount output, util-linux changed the message several times. > +# > +# prior to v2.21: > +# mount: Structure needs cleaning So the mentioned tests are currently also broken with util-linux < v2.21? Maybe mention this is commit message. > +# v2.21 to v2.29: > +# mount: mount <device> on <mountpoint> failed: Structure needs cleaning > +# v2.30 and later: > +# mount: <mountpoint>: mount(2) system call failed: Structure needs cleaning. > +# Please document filtered format. Thanks, Amir. -- To unsubscribe from this list: send the line "unsubscribe linux-xfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Thu, Nov 23, 2017 at 11:04:57AM +0200, Amir Goldstein wrote: > On Tue, Nov 14, 2017 at 2:33 PM, Eryu Guan <eguan@redhat.com> wrote: > > util-linux commit ea848180dd34 ("libmount: add > > mnt_context_get_excode()") since v2.30 changed the error message on > > EUCLEAN and ESTALE again (and maybe other errno too): > > > > - mount: <device> on <mountpoint> failed: Structure needs cleaning > > + mount: <mountpoint>: mount(2) system call failed: Structure needs cleaning. > > > > and it causes xfs/005, overlay/037 to fail (and probably xfs/333 too, > > but it's always _notrun for now). > > > > So let's filter out the changing parts and keep the error message > > simple. > > > > Signed-off-by: Eryu Guan <eguan@redhat.com> > > --- > > common/filter | 23 +++++++++++++++++++++++ > > tests/overlay/037 | 4 ++-- > > tests/overlay/037.out | 4 ++-- > > tests/xfs/005 | 7 +------ > > tests/xfs/333 | 2 +- > > tests/xfs/333.out | 2 +- > > 6 files changed, 30 insertions(+), 12 deletions(-) > > > > diff --git a/common/filter b/common/filter > > index 0cb458b0051f..d1bb94818e3d 100644 > > --- a/common/filter > > +++ b/common/filter > > @@ -390,6 +390,13 @@ _filter_fstrim() > > egrep -o "[0-9]+ bytes" | $AWK_PROG '{print $1}' > > } > > > > +# Remove the ending dot appended to mount error message, util-linux 2.30 > > +# starts to do so. > > +_filter_ending_dot() > > +{ > > + sed -e "s/\.$//" > > +} > > + > > # Older mount output referred to "block device" when mounting RO devices > > # It's gone in newer versions > > _filter_ro_mount() { > > @@ -397,6 +404,22 @@ _filter_ro_mount() { > > -e "s/mount: cannot mount block device/mount: cannot mount/g" > > } > > > > +# Filter a failed mount output, util-linux changed the message several times. > > +# > > +# prior to v2.21: > > +# mount: Structure needs cleaning > > So the mentioned tests are currently also broken with util-linux < v2.21? > Maybe mention this is commit message. Yeah, I think so, just v2.21 is pretty old, the affected tests are usually _notrun on such old distributions that ship util-linux < v2.21, e.g. RHEL6, so no one noticed it. I'll mention it in commit log. > > > +# v2.21 to v2.29: > > +# mount: mount <device> on <mountpoint> failed: Structure needs cleaning > > +# v2.30 and later: > > +# mount: <mountpoint>: mount(2) system call failed: Structure needs cleaning. > > +# > > Please document filtered format. OK. Thanks, Eryu -- To unsubscribe from this list: send the line "unsubscribe linux-xfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/common/filter b/common/filter index 0cb458b0051f..d1bb94818e3d 100644 --- a/common/filter +++ b/common/filter @@ -390,6 +390,13 @@ _filter_fstrim() egrep -o "[0-9]+ bytes" | $AWK_PROG '{print $1}' } +# Remove the ending dot appended to mount error message, util-linux 2.30 +# starts to do so. +_filter_ending_dot() +{ + sed -e "s/\.$//" +} + # Older mount output referred to "block device" when mounting RO devices # It's gone in newer versions _filter_ro_mount() { @@ -397,6 +404,22 @@ _filter_ro_mount() { -e "s/mount: cannot mount block device/mount: cannot mount/g" } +# Filter a failed mount output, util-linux changed the message several times. +# +# prior to v2.21: +# mount: Structure needs cleaning +# v2.21 to v2.29: +# mount: mount <device> on <mountpoint> failed: Structure needs cleaning +# v2.30 and later: +# mount: <mountpoint>: mount(2) system call failed: Structure needs cleaning. +# +# This is also true for ESTALE error. So let's remove all the changing parts +# and keep the 'prior to v2.21' format. +_filter_error_mount() +{ + sed -e "s/mount:\(.*failed:\)/mount:/" | _filter_ending_dot +} + _filter_od() { BLOCK_SIZE=$(_get_block_size $SCRATCH_MNT) diff --git a/tests/overlay/037 b/tests/overlay/037 index 728732903358..6710ddaf4802 100755 --- a/tests/overlay/037 +++ b/tests/overlay/037 @@ -76,12 +76,12 @@ $UMOUNT_PROG $SCRATCH_MNT # Try to mount an overlay with the same upperdir and different lowerdir - expect ESTALE _overlay_scratch_mount_dirs $lowerdir2 $upperdir $workdir -oindex=on \ - 2>&1 | _filter_scratch + 2>&1 | _filter_error_mount $UMOUNT_PROG $SCRATCH_MNT 2>/dev/null # Try to mount an overlay with the same workdir and different upperdir - expect ESTALE _overlay_scratch_mount_dirs $lowerdir $upperdir2 $workdir -oindex=on \ - 2>&1 | _filter_scratch + 2>&1 | _filter_error_mount $UMOUNT_PROG $SCRATCH_MNT 2>/dev/null # Mount overlay with original lowerdir, upperdir, workdir and index=on - expect success diff --git a/tests/overlay/037.out b/tests/overlay/037.out index 786ef85c29e3..d6ad7cfad687 100644 --- a/tests/overlay/037.out +++ b/tests/overlay/037.out @@ -1,3 +1,3 @@ QA output created by 037 -mount: mount SCRATCH_DEV on SCRATCH_MNT failed: Stale file handle -mount: mount SCRATCH_DEV on SCRATCH_MNT failed: Stale file handle +mount: Stale file handle +mount: Stale file handle diff --git a/tests/xfs/005 b/tests/xfs/005 index fade4bbf282b..ebf4b15ec9b5 100755 --- a/tests/xfs/005 +++ b/tests/xfs/005 @@ -40,11 +40,6 @@ _cleanup() rm -f $tmp.* } -filter_mount() -{ - sed -e "s/mount .* failed: //" -} - # get standard environment, filters and checks . ./common/rc . ./common/filter @@ -64,7 +59,7 @@ _scratch_mkfs_xfs -m crc=1 >> $seqres.full 2>&1 || _fail "mkfs failed" $XFS_IO_PROG -c "pwrite 224 4" -c fsync $SCRATCH_DEV | _filter_xfs_io # should FAIL, the crc is bad; golden output contains mount failure -_scratch_mount 2>&1 | filter_mount +_scratch_mount 2>&1 | _filter_error_mount # success, all done status=0 diff --git a/tests/xfs/333 b/tests/xfs/333 index bf0c811d2435..2f394feda6c9 100755 --- a/tests/xfs/333 +++ b/tests/xfs/333 @@ -64,7 +64,7 @@ _scratch_unmount echo "Corrupt fs" _scratch_xfs_db -x -c 'sb 0' -c "write rrmapino $ino" >> $seqres.full -_scratch_mount 2>&1 | _filter_scratch +_scratch_mount 2>&1 | _filter_error_mount echo "Test done, mount should have failed" diff --git a/tests/xfs/333.out b/tests/xfs/333.out index f7518f46d900..b3c698750f8f 100644 --- a/tests/xfs/333.out +++ b/tests/xfs/333.out @@ -2,5 +2,5 @@ QA output created by 333 Format and mount Create some files Corrupt fs -mount: mount SCRATCH_DEV on SCRATCH_MNT failed: Structure needs cleaning +mount: Structure needs cleaning Test done, mount should have failed
util-linux commit ea848180dd34 ("libmount: add mnt_context_get_excode()") since v2.30 changed the error message on EUCLEAN and ESTALE again (and maybe other errno too): - mount: <device> on <mountpoint> failed: Structure needs cleaning + mount: <mountpoint>: mount(2) system call failed: Structure needs cleaning. and it causes xfs/005, overlay/037 to fail (and probably xfs/333 too, but it's always _notrun for now). So let's filter out the changing parts and keep the error message simple. Signed-off-by: Eryu Guan <eguan@redhat.com> --- common/filter | 23 +++++++++++++++++++++++ tests/overlay/037 | 4 ++-- tests/overlay/037.out | 4 ++-- tests/xfs/005 | 7 +------ tests/xfs/333 | 2 +- tests/xfs/333.out | 2 +- 6 files changed, 30 insertions(+), 12 deletions(-)